spring注解

来源:互联网 发布:软件著作权版权局 编辑:程序博客网 时间:2024/05/16 03:50
属性的注入:@Value注解
                    此种方式需要配合 Spring的组件标识注解使用:@Component       通过扫描的方式获取值
        
自动注入
        传统配置的自动载入:
            在bean节点中属性 autowire="byName"
            在Beans 节点中的属性default-autowire="byName"

        注解自动载入:

1、@Autowired——构造器, 普通字段(即使是非 public), 一切具有参数的方法都可以应用@Authwired 注解 ;

2、@Resource——默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入。

      @Resource注解是又J2EE提供,而@Autowired是由Spring提供,故减少系统对spring的依赖建议使用 @Resource的方式;
3、@Inject——Inject 和 @Autowired 注解一样也是按类型匹配注入的 Bean, 但没有 reqired 属性(此方法极少使用)

自动注入:1、byType —— 根据接口/类的实现或子类匹配  、需要注意的是:当spring容器中不存在或者存在一个以上的子类时 该机制失效。2、byName—— 根据类中属性/跟spring 容器中的组件标识名(id)

这种机制可以通过两种方式得到,分别是:在xml中配置,也可以通过注解;下面操作介绍:

                   1:  xml形式
                           autowire <bean>
                           default-autowire <beans>
                        
                   2:  注解形式
                            @Component 基本注解
                                相当于 你在配置中添加了<bean class="xxx.xxx"></bean>
                           
                            @Autowired spring提供的,默认按类型匹配,也可以指定名称
                                       但是要配合另外一个注解使用@Qualifier("userService")
                            
                            @Resource JavaEE提供
                                        默认按名称匹配,没有的时候按类型匹配
                                        注意这里的名称指的是 属性的名字与注解表示的名字是否匹配
                                        也可以直接使用参数标识使用哪一个如@Resource(name="userService2")