日期:2014-05-16  浏览次数:20439 次

JSR标准

????? JCPJava Community Process )成立于1998年 ,是使有兴趣的各方参与定义Java 的特征和未来版本的正式过程。JCP使用JSR (Java规范请求,Java Specification Requests )作为正式规范文档,描述被提议加入到Java体系中的的规范和技术。

????? JSR变为final 状态前需要正式的公开审查,并由JCP Executive Committee 投票决定。 最终的JSR会提供一个参考实现,它是免费而且公开源代码 的;还有一个验证是否符合API规范的 Technology Compatibility Kit


JSR标准和Spring


????? Spring支持JSR-250中定义的@Resource和JSR-330中定义的@Inject注解,但是这两个注解功能没有@Autowired丰富,Spring在2.5中就引用@Autowired注解。这两个标准注解和@Autowired注解的功能类似,都是对类变更及方法注入参数提供自动注入功能。


@Autowired:默认按类型匹配方式注入,默认request属性为true,当查找不到对应的bean时就抛出异常。如果有多个同类型的bean时,可以通过@Qualifier注解指定bean。@Autowired还可以对集合类进行注解。

@Resource:按名称匹配注入,如@Resource("xxx"),如果名称为空,则自动采用标注处的变量名或方法名作为bean的名称。如果按名称找不到相应的Bean,则自动按照类型注入相应Bean。

@Inject:跟@Autowired一样,也是按类型注入,但是没有request属性。


Spring从2.5开始支持JSR-250中定义的@PostConstruct和@PreDestory注解,相当于Spring中定义的init-method和destory-method的功能。同一个bean中可以定义多个@PostConstruct和@PreDestory,按照定义顺序分别执行。