- 浏览: 11995 次
- 性别:
- 来自: 杭州
最新评论
文章列表
在线上Java程序中经常遇到进程程挂掉,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码。Java中得ShutdownHook提供了比较好的方案。 JDK在1.3之后提供了Java Runtime.addShutdownHook(Thread hook)方法,可以注册一个JVM关闭的钩子,这个钩子可以在以下几种场景被调用:
1)程序正常退出
2)使用System.exit()
3)终端使用Ctrl+C触发的中断
4)系统关闭
5)使用Kill pid命令干掉进程
注:在使用kill -9 pid是不会JVM注册的钩子不会被调用。在JDK中方法的 ...
转的别人的文章,记录下,挺好的。
在使用spring容器的web应用中,业务对象间的依赖关系都可以用context.xml文件来配置,并且由spring容器来负责依赖对象 的创建。如果要在filter或者servlet中使用spring容器管理业务对象,通常需要使用
WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext())来获得
觉得这篇文章讲的非常好,转载过来,解除了自己的疑惑。
http://www.cnblogs.com/xiaoluo501395377/p/3383130.html
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于 Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是 java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。
在java的动态代理机制中,有两个重要的类或接口,一个是 Invocati ...
1、首先说说悲观锁,就是数据库层面直接采用类似for update的读法,锁住读取的记录,那么别人再读取时就不能进行更新,如果这条记录不存在并发操作的可能性,那没问题,可是如果有并发的修改,那么后面一个人的修改就必须等待前一个修改完成释放后才可以(普通的select不受影响),那么大并发下就不能采用这种方式了
(如果mysql测试需要关闭自动提交功能set autocommit=0;)
2、乐观锁,并发下,每个事物都可以进行更新,但是是条件的更新,比如数据库表有个字段version,进行干呢更新时+1进行提交,where语句中判断数据库中的这个字段的值是否小于提交的值,小于的情况下 ...
sshd服务中设置了UseDNS yes,当配置的DNS服务器出现无法访问的问题,可能会造成连接该服务器需要等待10到30秒的时间。由于使用UseDNS,sshd服务器会反向解析连接客户端的ip,即使是在局域网中也会。
当平时连接都是很快,突然变的异常的慢,可能是sshd服务的服务器上配置的DNS失效,例如DNS配置的是外网的,而此时外面故障断开。终极解决方案是不要使用UseDNS,在配置文件/etc/sshd_config(有些linux发行版在/etc/ssh/sshd_config)中找到UseDNS 设置其值为 no,如果前面有#号,需要去掉,重启sshd服务器即可。
http://blog.csdn.net/xh16319/article/details/14545065
1、更改tomcat远程调试端口(1).更改Linux系统上的Tomcat启动文件远程调试端口,登录服务器,找到Tomcat安装路径,进入到bin目录(2).打开目录下的catalina.sh文件,找到JPDA_ADDRESS=”8000”,8000代表远程调试端口,可以更改成其他没有被占用的端口,更改完成后保存退出。2.以debug模式启动Tomcat(1).进入tomcat的bin目录,输入./catalina.sh jpda run或者./catalina.sh jpda ...
通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果反向解析不顺畅, 估计就会延迟很多, 给人的感觉是连接速度N慢!) 在网上搜索了下解决办法, 发现有两种: 一. 两边机器配置的resolve.conf不一样, 把resolve.conf配置成速度比较快的DNS就OK 二. 把mysql配置中的DNS反向解析关掉, 也OK 我用的是第一种办法, 修改resolve.con ...
引用了http://topmanopensource.iteye.com/blog/1833001这篇博客上的方法,可是怎么也取不到,说主键为空,无奈自己断点看源代码:
private void processGeneratedKeys(Executor executor, MappedStatement ms, Object parameter) {
try {
//parameter就是要 ...
利用cxf发布了restful的服务,接收post请求
@POST
@Path("/reveivePayInfo")
public void reveivePayInfo(@Context HttpServletRequest request,
@Context HttpServletResponse response) {
request.getParameter("memberID");
当我利用jquery来异步请求这个post时,传递 ...
unwinding now
java.lang.IllegalStateException: WRITER
web容器生成的servlet代码中有out.write(””),这个和JSP中调用的response.getOutputStream()产生冲突. 即 Servlet规范说明,不能既调用 response.getOutputStream(),又调用response.getWriter(),无论先调用哪一个,在调用第二个时候应会抛出 IllegalStateException,因为在jsp中,out变量是通过response.getWriter得到的,在程序中既用了 respons ...
Jocky混淆编译器是在Sun JDK中提供的Java编译器(javac)的基础上完成的,修改了其中的代码生成过程,对编译器生成的中间代码进行混淆,最后再生成class文件,这样编译和混淆只需要一个步骤就可以完成。另外可以在源程序中插入 ...