- 博客(16)
- 资源 (3)
- 收藏
- 关注
原创 spring的context:property-placeholder属性
问题: 把一些经常改动的配置属性写死是件很Low的事, 那么问题来了, 有什么简单方便的方式呢, 用纯Java去读取配置文件已经显得繁杂。答案: Spring3提供了很简单的方式context:property-placeholder只需要在spring的配置文件里添加一句:一下子, 世界就美好了, 上一句是Windows中的配置, 下一句是Linux的配置。
2014-12-31 16:14:05 1121
翻译 为什么内部类使用的局部变量必须是final而全局变量可以是no-final
原因在于局部变量和全局变量的区别。 一个全局变量的生命周期伴随该类对象一直存在, 所以可以被内部类所引用。 但是, 一个局部变量的生命周期仅限于方法内部, 而且编译器对它们的处理不一样。 因为内部类隐式复制变量作为它的参数, 如果没有将局部变量声明为final, 则变量一旦被改变, 由于内部类还在引用原始的变量从而导致不易发现的错误。 原文:StackOverflow
2014-12-27 22:01:13 2202
原创 Spring封装的JavaMail配置及异常处理
编码过程遇到的问题:1. 错误:javax.mail.AuthenticationFailedException: 错误码(400 ~ 599) 这是最经常看到的, 原因可能有: -- 用户名密码错误 -- 防火墙或杀毒软件屏蔽SMTP协议 -- 邮箱本身没有开启SMTP/POP协议支持(默认都是关闭的)2. 错误:Could not send email: Could not convert socket to TLS 原因: 所使用的邮件服务器不支持通过
2014-12-24 15:38:23 4050
原创 Quartz源码解析 ---- 触发器按时启动原理
从线程开始, 我们来看下QuartzSchedulerThread类(负责执行触发的Trigger的工作) : @Override public void run() { boolean lastAcquireFailed = false; while (!halted.get()) { try {
2014-12-22 17:55:36 10904
原创 不同类型Trigger的选择
1.SimpleTrigger 一般用于实现每隔一定时间执行任务,以及重复多少次,如每 60 秒执行一次,重复执行 6 次。问题:(1) 在使用过程中发现设置执行6次其实是执行7次, 有一次是在开始执行的第 0 秒执行了一次, 然后根据执行间隔再执行给定的执行次数。 (2) 当有 misfired 的任务并且恢复执行时,该执行时间是随机的(取决于何时执行 mis
2014-12-22 15:08:38 1655
翻译 Tomcat ClassLoader
Tomcat中的类加载机制和JDK中的委托模型略有不同(缺少了JDK的ExtClassLoader)。Tomcat Server在启动的时候将构造一个ClassLoader树,以保证模块的类库是私有(在Java类加载器体系结构中定义到:被引用类默认由依赖类的ClassLoader加载,而这样设计的原因是,运行时相同层次的ClassLoader所加载的类无法看到其他ClassLoader所加载的类--安全机制)
2014-12-19 11:46:40 1155
原创 Spring容器初始化后执行的方法
在项目中, 会遇到要在容器加载完就做一些初始化, 例如Quartz的监听器重新注册(Quartz监听器在RAM中的, Web容器重启或关闭会丢失)等需求。 import org.springframework.context.ApplicationListener;import org.springframework.context.event.ContextRefreshedEvent
2014-12-18 13:45:44 1892
原创 Quartz--Listener
监听器方便在Trigger执行完毕,Trigger执行错误等地方进行监听处理。下面代码举个SchedulerListener的例子: 在Trigger最后一次执行的时候监听import javax.annotation.Resource;import org.quartz.JobDetail;import org.quartz.JobKey;import org.quartz.Sch
2014-12-17 20:00:23 1450
转载 全角半角转换
最原始的来源没找到.. 只能感谢原创者了..public class Snippet { public static void main(String[] args) { String QJstr = "wenniuwuren"; String QJstr1 = ";;;"; String resu
2014-12-17 19:12:21 962
转载 有序UUID
import java.net.InetAddress;import java.util.Map;/** * 从org.hibernate.id.UUIDHexGenerator.java中搬来 * 与java.util.UUID生成的uuid的不同:本类生成id有序,java.util.UUID无序 * uuid * * A UUIDGenerator that returns
2014-12-17 17:38:27 3986
原创 MySQL----删除B表中A表不存在的记录
SQL: DELETE FROM B WHERE NOT EXISTS( SELECT 1 FROM A WHERE B.id=A.id )B.id = A.id 就是A, B表主外键关系的字段。
2014-12-16 20:24:12 5092
原创 RESTful
表现性(Representational) -- REST资源可以用各种形式来表现,如XML, JSON等最合适资源使用者的任意形式状态(State)-- 当 使用REST的时候, 我们更关注资源状态而不是对资源的行为转移(Transfer) -- 以一种表现性形式从一个应用转移到另一个REST简单来说是将资源的状态以最合适的形式从服务器端转移到客户端(或反
2014-12-10 11:10:03 849
原创 SpringMVC入门详解
1. SpringMVC控制流程(1) 浏览器发起请求(如表单提交等..)(2) 由DispatcherServlet转发给Handler mapping, 由Handler mapping根据URL映射到哪个方法执行。(这步和Struts2在,然后在XML里面配置“youMethod”对应的处理类和处理方法类似)(3)--(4) 处理完成后, 返回ModelAndView (
2014-12-07 13:31:01 697
原创 Spring入门详解
Spring的4种关键策略:1. 基于POJO的轻量级和最小入侵编程;2. 通过依赖注入和面向接口来实现送耦合;3. 基于切面和惯例进行声明式编程;4. 通过切面和模版减少样板式代码。
2014-12-02 18:23:07 858
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人