标签 Java 下的文章

宇托 Java, Time 0 条

之前有一下项目,用到了Java中的定时执行方法。也就是Time中的scheduleAtFixedRate方法。在看代码时发现Time中的还有一个schedule方法也可以实现定时执行。于是我在网上找了一下两者异同。两者的相同点没什么多话,都可以实现定时执行两者的区别两者的区别主要在两面这两个方法开始执行时间schedule的开始时间是以第一次执行时间为基准,scheduleAtFixedRate是以指定开始时间为基准的。比如,指定...

宇托 Java, MyBatis 1 条

最近一个项目,要用到多个数据库,也有可能同时使用不同的数据库(参考:MyBaits多数据源的设置和切换方法),比如同时使用Oracle和PostgreSQL。因为有时Oracle和PostgreSQL的SQL是不一样的,我们就需要在XML定义判断当前数据库是Oracle还是PostgreSQL。有些文章里介绍可以使用_databaseId来判断使用什么数据库,但那种情况只能用于使用单数据库的情况,当然也不是说多数据库就不能用,设置...

宇托 Java, MyBatis, DataSource 0 条

最近一个项目,要用到多个数据库,具体一点的需求就是把分析好的数据同时保存到多个数据库。如果没有用MyBaits的话,应该还是不难的,用代码切换一下就行。MyBaits的多数据源切换不太会,在网上找了一堆资料,然后自己实验,总算是成功了。根据我测试的结果,MyBaits的多数据源切换是以事务为单位的,也就说,如果想切换数据源,必须选提交前一个事务,并开启下一下事务。下面用代码来说明一下。首先,是Java文件一个DynamicData...

宇托 Apache, Java, PHP, Cache, Disable 0 条

最近做一个修改CSS的小项目,每次修改都需要删除浏览器缓存才能更新,于是就想把Apache设置一下,禁止浏览器缓存。在网上找了一下,其实就是在响应头里添加禁止浏览器缓存的内容就行。其基本内容如下:Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Expires: 0其中,Cache-Control用于HTTP1.1(包括1.1)以上;Pragma...

宇托 Java, Spring, MyBatis 0 条

最近一个项目用到MyBatis,因为是Batch,处理的数据量比较大,所以分批处理,一次1000件。发现处理的数据到20万件左右,内存就受不了了,以为是Java内存死锁了,结果用Jmap一看内存,发现是MyBatis的缓存。然后,我在网上找了一下,把设置值的cacheEnabled设置为false,发现结果还是一样。我项目中用到的是Spring+MyBatis。发现这种方法不行之后,在Spring的设置文件也改了一下,发现还是不行...

宇托 Apache, Java, Perl, PHP, Ruby, HTTPS 0 条

最近HTTPS越来越流行了,所以经常需要设置非HTTPS直接跳转到HTTPS的代码。关于Apache的设置方法,之前在用mod_rewrite实现HTTP和HTTPS之间的强制转换也写过。它也是使用301跳转。下面介绍其它语言的301跳转方法。Apache这是非HTTPS直接跳转到HTTPS的代码<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / ...

宇托 Java, UnitTest, Maven 0 条

最近一个项目中用到Maven,在单元测试时,测试还未通过时,想打包成Jar文件。但发现用mvn clean package打包时,总是要先单体测试,然后再打包。因为单体失败,所以也就无法打包。在网上找了一下,有以下几个方法。方法一:在命令行加参数可以使用的参数有两个:-DskipTests、-Dmaven.test.skip=true。两者区别如下。-DskipTests:编译测试用例代码,但不进行测试。-Dmaven.test....

宇托 Java, Maven, Spring 0 条

在有一个项目中,在打包时不需要把资源文件放到包里。在网上查了一下,发现用下面的方法可以实现。<build> <resources> <resource> <directory>src/main/resources</directory> <excludes> <exclude...

宇托 Java, Maven 0 条

最近一个项目中使用了Maven,发现Maven的确是很方便。但有时候引入一个企业内部包里,会出错。或者有些包在Maven远程仓库里没有,比如Oralce。在网上找了一下,其实可以自己把Jar包安装到Maven本地仓库。比如,要安装一个test.jar的包到本地仓库,其groupId是net.yutuo、artifactId是test、版本号是0.0.1。安装方法如下:mvn install:install-file -Dfile=...

宇托 Java 0 条

结论:在Java中,如果多个包里有相同的类(包和类名都相同),优先加载ClassPath里最前面的。JVM查找类,不仅仅是按名字找,还有包,如果包不同,也视为为同的class,如果包和类名都相同,则根据classpath的设置顺序,前面的优先加载,一旦前面的被加载,后面的就再也不会被加载了。同理,如果要覆盖Jar包里的设置文件,也只需要在ClassPath的最前面设置好Jar的文件,即可要内容上覆盖Jar包里的设置文件。

宇托 Java, Unicode 0 条

有些人喜欢在字符串中,使用\uXXXX的写法,但用这种写法时,要注意一点。Java中,不是在编译时转换\uXXXX的,而时在编译前把\uXXXX转换为对应字符,然后再编译的。正是因为这样的原因,在Java中如果把换行符(\r\n)写成Unicode\u000A\u000D的形式,就会有一些不可思议的结果。比如下面一段代码:public class Test { public static void main(String[...

宇托 Java, Version 0 条

有时候得到一个编译好的class文件或者Jar包,但不知道它的JDK版本是什么。这时候我们可以直接查看class文件的二进制内容来得到class文件的JDK版本。用二进制编辑或查看工具(例:UE,WinHex,SublimeText)打开class文件,取得最前面的八个字节。例如:CA FE BA BE 00 00 00 32。前四个字节CA FE BA BE是class文件的固定标识。后四个字节表示版本号,后四个字节中的第一个字...

宇托 Java, Tools 0 条

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用、正在使用或将来一定会用到的高效工具。这份列表名单包括集成开发环境、集成工具、测试和质量工具等。1、集成开发环境Eclipse是最有名也最广泛使用的Java集成开发环境(IDE),允许开发者结合语言支持和其他功能到任何的默认包中,而且Eclips...

宇托 Java 0 条

写在前面:三目运算符是我们经常在代码中使用的,java#a = (b == null ? 0 : 1);这样一行代码可以代替一个 if-else可以使代码变得清爽易读。但是,三目运算符也是有一定的语言规范的。在运用不恰当的时候会导致意想不到的问题。前段时间遇到(一个由于使用三目运算符导致的问题,其实是因为有三目运算符和自动拆箱同时使用(虽然自动拆箱不是我主动用的)。一、三目运算符对于条件表达式b ? x : y,先计算条件b,然后...

宇托 Java 0 条

之前好像对Java项目的工程目录要求没什么,但自从Maven开始流行之后,大家基本上约定俗成用Maven的默认工程目录了。其代码的目录结构如下:对于普通的Java项目来说,其代码的目录结构如下:src ├── main │ ├── java │ └── resources └── test ├── java └── resources 对于Web的Java项目来说,其代码的目录结...