`
琼海溜
  • 浏览: 18661 次
  • 性别: Icon_minigender_1
  • 来自: 海口
社区版块
存档分类
最新评论
文章列表
情况大概是这样:项目中使用Oracle的Sequence来生成流水号,并设置cache为20,。然后通过测试环节后交付给客户上生产。然后一段时间后,客户反馈说有bug。拿到生产环境的数据库dump部署后一查,发现相关数据确实有问题: 1)如果按照流水号从小到大,数据入库时间不连续,并且流水号跳号,比如从1000、1001直接到1020,中间丢了1002~1019。 2)如果按照数据入库时间从小到大,流水号跳号并且是穿插,比如从1000、1001直接到1020,然后是1002,、1003、然后是1021。   通过查找资料以及结合生产环境的Oracle使用RAC推断,上面的2)才是数据 ...
Java异常体系很庞大(eclipse,选中Exception,按下ctrl+T可看到),在实际运用中,我们会根据需要定义自己的异常。每个自定义异常一般从名字上就能看出所要表达的类型,比如业务异常BusinessException,任务异常JobException等。异常类的主要属性一般是异常号码和异常信息参数;其中异常号码应全局唯一,通过该号码可找到对应的异常信息(异常号码和异常信息的映射可配置到properties、xml文件,枚举类或是存储到数据库,异常信息可带有占位符);而异常信息参数在运行时传入,按顺序替换异常信息中的占位符,生成最终提示信息。   自定义异常如下:   @ ...
之前项目中需要分开部署,使用hessian(4.0.7)交互,而项目本身就是用Spring(3.2.5),已提供相关组件,因此使用起来很容易。如果是作为服务端,暴露服务,使用的是org.springframework.remoting.caucho.HessianServiceExporter,已提供有debug属性,方便开发时调试。但提供给客户端用于代理指定接口的org.springframework.remoting.caucho.HessianProxyFactoryBean并没有提供debug属性。HessianProxyFactoryBean继承自org.springframewo ...
接上一篇,如果没有Servlet代理类,而又想在Servlet(或其他非同一Spring容器管理的对象)中获取目标bean,可以实现接口org.springframework.context.ApplicationContextAware,然后将实现类作为bean,然后可以正常使用,一般是将常用的getBean、getBeansOfType等包装成类方法,一是方便作为工具方法调用,二来可以自己捕获异常,再抛出项目中的指定异常。实际上,ApplicationContextAware的类型层次结构中,有一个实现类org.springframework.context.support.Applic ...
有时在Spring(3.2.5)项目中,如果使用到Servlet,可能希望Servlet实例作为bean受Spring容器管理,这样也能自动注入其他需要的bean,查了下,发现只针对过滤器提供了代理类org.springframework.web.filter.DelegatingFilterProxy,并没有提供针对Servlet的代理类,于是模仿着写了下面的代理类:  package org.springframework.web.servlet; import java.io.IOException;import javax.servlet.Servlet;import javax.s ...

忽然有感

2012年毕业至今,感觉自己还是喜欢搞技术,平时没事经常上来转转,也从中获益良多,感觉自己也应该写下平时遇到的问题,既是日记也是总结!
Java的代理框架经常接触,但实际中我们看不到运行时生成的代理类,使用的代理框架是默认不会保存,如果想要查看,需要显式打开开关,可以通过以下2段代码做到。 1、Java动态代理。让下面代码在代理类执行前执行,然后刷新项目,在其根目录下可以看到形如"$Proxy0.class" 文件,再使用反编译工具解析即可。 /** * 设置保存Java动态代理生成的类文件。 * * @throws Exception */ public static void saveGeneratedJdkProxyFiles() throws Exception {     Field fi ...
网上看到很多对关键字synchronized继承性的描述只有一句"关键字synchronized不能被继承",并没有描述具体场景,于是自己做了以下测试。   //父类 public class Super {     static Logger logger = Logger.getLogger(Super.class);     // 同步方法    @SuppressWarnings("static-access")    public synchronized void testMothed() {         try {      ...
Global site tag (gtag.js) - Google Analytics