利用java将xml转化为json

首先是要处理一个多层嵌套的xml文档。 <?xml version="1.0" encoding="UTF-8"?> <病案首页> <中医住院病案首页> <医疗机构>黄家湖医院</医疗机构> <病人基本信息> <姓名>张三</姓名> <新生儿> <月年龄></月年龄> <新生儿出生体重></新生儿出生体重> <新生儿入院体重></新生儿入院体重> </新生儿> </病人基本信息> </中医住院病案首页> <中医住院病案首页> </中医住院病案首页> <中医住院病案首页> </中医住院病案首页> </病案首页> ...

January 23, 2015

Intellij IDEA创建第一个Maven工程

我为什么要用到Maven? 为了解决java各个框架的依赖问题。不用再到处找框架,找jar包下载。现在越来越多的框架已经默认是提供Maven的地址而不是提供jar下载了,比如 spring framework 越来越多的paas支持直接git或者svn来自动编译运行Maven工程了。注 ...

January 23, 2015

Maven的Tomcat插件

前言 在上一篇日志中已经说明了如何在本地跑Maven的项目,缺点在于每次都需要手动添加lib包到本机运行环境里面去。其实可以用Maven的插件来完成这以过程。 资料 戳这儿 It’s Over

November 20, 2014

Windows下架设OpenVPN的完整过程

前言 因为坛服务器放在学校机房里面。可能是网络中心的老师为了省事,在防火墙层面封掉了几乎所有端口。 学校机房——(只开放20,21,22,23,80,443端口)——校园网————(只开放80,443端口)————普通学生 就是这么丧心病狂。平常对服务器有什么改动,非常麻烦。 对于我来说,只有两个端口(80和443)是可用的,80端口是不能占用的,这个得留给http,443端口,由于我们用不到https,就征用了吧。FTP,远程桌面两个只能选一个。各种搜索,最后决定用VPN来解决。 VPN分很多种,大致看了下,满足条件只需要一个端口的,好像只有OpenVPN,于是开始了折腾。 ...

June 14, 2014

成绩查询,这次应该不会失效了

再次更新:再次失效,服务器更新时,管理员顺手把老师查询学生成绩的功能关闭了。对我来说是无解了。失效的真正原因是,地址中间那个随机部分会在一定时间后失效。当通过那个随机地址登陆,再次通过那个地址的时候,就无需验证,直接查询即可。 拿到老师的账号密码之后,就开始着手如何在网页实现登陆并查询获取。首先用浏览器模拟一遍: ...

May 7, 2013

讲讲xulog.com的来历吧

由4.30临时需要修改一个页面代码,登录到学校论坛服务器上失败后,就感觉很受伤,怎么说我现在也能用php写个“hello world”了,却还连自己的空间都没有,这正常么?(不正常!) 当天晚上就开始考虑,买域名,买空间,尼玛都是钱啊,上万网看了下价格,又想了想备案,顿时觉得,其实,在本机测试一下就够了,何必浪费钱呢? 第二天又觉得心有不甘,又看了各种云,新浪云,阿里云,盛大云神马的,觉得都不太符合我要求,老老实实用空间+域名吧,为了省钱,想到了免费的TK域名,和乱七八糟的免费空间。但是,人生难得这么有激情,用这种东西凑合,划得来么?开始了寻找主机与域名,我曾经买过hostours的空间,价格不贵,一年75,挺便宜的,300M其实够我用,每月4GB流量也够,但是,人生难得这么有激情,用这种东西凑合,划得来么?起码要买个大点的啊!!! 5.2号晚上上床,开始仔细搜寻,最后基本敲定godaddy, 价格便宜,名声还不错,但是尼玛,前几天活动,12美刀/年送顶级域名,现在翻倍了,虽说比万网要良心一万倍,但是我还是不爽,就先找了network solutions注册了一个0.99刀的顶级域名(注册地址戳我),过程比较纠结,他不认财付通的虚拟AE卡,更加别谈支付宝了,最后用财付通配合paypal拿下,花了6.12元。此时已经是5.3号凌晨了,马不停碲的把域名托管到Dnspod,关了电脑,准备来日再战,可越想越心急,没办法,重开电脑,开始买空间,最后决定买godaddy三个月的,人民币36.8。中途等更好的活动,到时候再换套餐! PS:有空间域名需求的童鞋可以在这几个网站上看看,很多优惠码,价格良心(第一个,第二个,第三个)。还有海外购买可能要用到的(财付通虚拟AE) 要去做早操了 T_T

May 3, 2013

List 该接口继承了Collection,有部分函数是直接override的,但也没有给default实现,用意不明。 int size(); boolean isEmpty(); ...... 也加上了一些额外的函数 default void replaceAll(UnaryOperator<E> operator);//采用listIterator实现 default void sort(Comparator<? super E> c);//先使用toArray,再对array排序,最后使用listIterator挨个set进去 //一些对下标的操作,掠过 ListIterator<E> listIterator();//返回一个列表迭代器 ListIterator<E> listIterator(int index);//返回从指定位置开始的列表迭代器 AbstractList 继承了AbstractCollection,实现了List ,和AbstractCollection类似,使用接口中已有函数来实现部分接口,与存储细节无关。例如 public int indexOf(Object o) { ListIterator<E> it = listIterator(); if (o==null) { while (it.hasNext()) if (it.next()==null) return it.previousIndex(); } else { while (it.hasNext()) if (o.equals(it.next())) return it.previousIndex(); } return -1; } ModCount 提供了一个快速失败的策略,内部存储了一个modCount,在Itr 与SubList中,均有对此值进行校验,如果在迭代的过程中,值发生变化,就会抛ConcurrentModificationException。 Itr 内部类实现了Iterator,采用了游标cursor与lastRet实现功能。 ListItr 内部内,继承了Itr,添加了一些额外的函数。(双向移动和Set 默认的迭代器的remove,额外的set,add 均使用AbstractList中的函数进行实现。例如 public void remove() { if (lastRet < 0) throw new IllegalStateException(); checkForComodification(); try { AbstractList....

Kotlin 协程超简版笔记 [TOC] 基础 启动第一个协程 import kotlinx.coroutines.* fun main() { GlobalScope.launch { // launch new coroutine in background and continue delay(1000L) // non-blocking delay for 1 second (default time unit is ms) println("World!") // print after delay } println("Hello,") // main thread continues while coroutine is delayed Thread.sleep(2000L) // block main thread for 2 seconds to keep JVM alive } 在CoroutineScope中使用coroutine builder启动协程。 连接阻塞与非阻塞 协程里的一些操作,必须要在非阻塞的环境里执行。可以使用runBlocking,阻塞住当前线程,直至runBlocking内部协程完成。 使用Job 启动一个协程后会返回Job,可以用job.join()以非阻塞的方式等待工作完成。...

Intellij IDEA Debug Java in Docker

Intellij IDEA Debug Java in Docker Run -> Edit Configuration -> Add New Configuration -> Remote 选择JDK版本,复制好JVM参数,类似于 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 启动Docker,如果endpoint是java,直接加上参数,记得开放对应端口。 如果endpoint不是java,而是Maven之类的,需要使用其他方法。以Maven为例,添加一个Docker image的env MAVEN_OPTS

生成独立可运行的java程序

标题有些拗口,反正就是生产可以双击运行的exe就对了。 java当然是maven工程了。在pom.xml中加入 首先让maven打包成jar <packaging>jar</packaging> 然后让其把所有依赖都打包进去 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>your main class </mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build> 然后通过maven进行组装 mvn assembly:assembly 就会在target目录下生产文件,看文件名就知道是xxxxx -with-dependencies.jar 然后下载 launch4j ,然后就照着用就好了……