george

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  12 Posts :: 0 Stories :: 17 Comments :: 0 Trackbacks

2009年12月7日 #

spring注解使用了有一段时间了,现做几个就简单的记录,具体是使用方式不用多说网上很多,这里便于记忆简单整理一下。
1.注入的属性有2种方式
   1.1 @Autowired(按类型type注入)
   1.2 @Resource(按名字name注入),
    另:如果遇到重复使用@Qualifer标注别名
           如果不需要某些属性注入可以设置Autowired或resources的required属性为false
2.将bean纳入spring容器有4种方式
    2.1 @Component(表示是spring容器中的bean,比较中立,没有其他含义)
    2.2 @Controller ,@Service ,@Repository,这3种和@Compnent功能一样,只是用于三层架构中的控制,业务及持久层。目前只是命名不同。
    另:@Scope可以定义bean的作用范围。
3.对于注解需要配置context:component-scan定义初始化容器扫描的目录。
<context:component-scan base-package="com.blog">
    
<context:include-filter type="regex" 
        expression
="com\.blog\.service\..*"/>
    
<context:exclude-filter type="aspectj" 
        expression
="com.blog.util..*"/>
</context:component-scan>

4.注释配置和 XML 配置的适用场合

    4.1注释配置不一定在先天上优于 XML 配置。如果 Bean 的依赖关系是固定的,(如 Service 使用了哪几个 DAO 类),这种配置信息不会在部署时发生调整,那么注释配置优于 XML 配置;反之如果这种依赖关系会在部署时发生调整,XML 配置显然又优于注释配置,因为注释是对 Java 源代码的调整,您需要重新改写源代码并重新编译才可以实施调整。
    4.2如果 Bean 不是自己编写的类(如 JdbcTemplate、SessionFactoryBean 等),注释配置将无法实施,此时 XML 配置是唯一可用的方式。
    4.3注释配置往往是类级别的,而 XML 配置则可以表现得更加灵活。比如相比于 @Transaction 事务注释,使用 aop/tx 命名空间的事务配置更加灵活和简单。
    4.4所以在实现应用中,我们往往需要同时使用注释配置和 XML 配置,对于类级别且不会发生变动的配置可以优先考虑注释配置而对于那些第三方类以及容易发生调整的配置则应优先考虑使用 XML 配置
参考资料: 
http://kdboy.javaeye.com/blog/419159
http://www.ibm.com/developerworks/cn/java/j-lo-spring25-ioc/

posted @ 2009-12-07 23:21 georgeliu 阅读(712) | 评论 (0)编辑 收藏