spring之IOC详解三

spring之IOC详解三注解注入

1.组件扫描

        指定一个包路径,Spring会自动扫描该包及其子包所有组件
        类,当发现组件类定义前有特定的注解标记时,就将该组件纳
        入到Spring容器。等价于原有XML配置中的<bean>定义功能。

      组件扫描可以替代大量XML配置的<bean>定义。


2.如何使用

        step1,在配置文件当中,添加
        <context:component-scan base-package=""/>

        让容器扫描指定的包及其子包下面的类。

        step2,在类前面添加
            @Component
            注1:
                默认情况下,bean的id是首字母小写之后的类名,如果想重新
                命名id,可以使用@Component("")形式。
            注2:
                @Repository:用于持久层组件
                @Service:用于业务层组件

                @Controller:用于控制器组件


3.生命周期相关的几个标注

                @PostConstruct 初始化方法

                @PreDestroy    销毁方法


4.作用域

                @Scope("prototype")

                注: 缺省值是"singleton"


5.延迟加载(了解)

                @Lazy(true)
                注: 缺省值是false。
                在默认情况下,容器启动之后,会将所有作用域
                为"singleton"的bean实例化。如果延迟加载,则不会将

                这些bean实例化。


6.依赖注入相关的几个标注               

                @Autowired和@Qualifier
                @Autowired可以用于构造器注入,也可以用于set方式注入。

                1)构造器注入

                    a. @Autowired加在构造器前面。
                    b. @Qualifier加在参数前面,用于
                        指定要注入的bean的id。
                        注:
                            注入的对象单例时,@Qualifier可省略。
                        此时,Spring按照类型匹配参数。

                2)set方式注入

                    a.@Autowired加在set方法前面。
                    b. @Qualifier加在参数前面,用于指定要注入的bean的id。
                        注:
                            注入的对象单例时,@Qualifier可省略。
                        此时,Spring按照类型匹配参数。
                    c.@Autowired也可以直接添加到属性前面,
                        此时,可以不写set方法。
                @Resource
                    a.该标注只支持set方式注入
                    b.可以将该标注加到set方法前面,name属性用于指定要
                    注入的bean的id。

                    c.该标注也可以直接添加到属性前,此时,可以不写set方法。   


7.使用spring表达式的标注

                @Value
                用法一
                        @Value("#{spring表达式}")
                用法二
                        @Value("基本类型的值")
                注:

                    @Value可以用在属性前,也可以用在set方法前面。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值