Bean配置、属性配置、自动装配

一、配置Bean概述

1、配置形式:

①基于xml文件

②基于注解

 

2、配置方式:

①通过全类名(反射)

②通过工厂方法(静态工厂方法、实例工厂方法)

③FactoryBean

 

3、依赖注入方式:

①属性注入

②构造器注入

 

二、Spring配置Bean

 

1、基于xml、通过全类名(反射)、属性注入配置Bean

 

 

2、基于xml、通过全类名(反射)、构造器注入

 

3、基于xml、通过工厂方法配置

① 通过静态工厂方法配置Bean:

即不需要创建工厂实例就可以创建Bean的实例。

 

② 通过实例工厂方法配置Bean:
创建工厂实例,通过调用工厂实例的方法创建Bean实例。

 

4、基于xml,通过FactoryBean配置Bean

 

5、基于注解配置Bean

 

①   注解依赖aop包,所以需要导入aop包。

②   Spring 能够从 classpath 下自动扫描(需要配置 context:component-scan )具有特定注解的组件。

    特定的组件包括:

    @Component:基本注解,标识一个受Spring管理的组件。

    @Repository:标识持久层组件。

    @Service:标识业务层组件。

    @Controller:标识控制层组件。

 Spring 对扫描到的组件有默认的命名规则:使用非限定类名,第一个字母小写 (也可以使用value属性指定组件的名称)。

 

③ 配置<context:component-scan>,其中 base-package 属性指定Spring扫描的包,Spring将扫描该包及其所有子包,如有多个包,使用逗号隔开

 

④ 可以使用 resource-pattern 来过滤特定的类。

 

⑤ 使用 <context:exclude-filter> 子节点指定排除哪些类。

 

⑥ 使用 <context:include-filter> 子节点指定只包含哪些类。

 

⑦ 使用 @Autowired 注解自动装配Bean。

 

 

三、Spring配置Bean的属性

 

1、Spring Bean配置中的字面值

 

① 字面值:可用字符串表示的值,可以通过<value>元素标签或value属性进行注入。

② 基本数据类型及其封装类、String等类型都可以采用字面值注入方式。

③ 若字面值包含特殊字符,可以使用<![CDATA[]]>把字面值包裹起来。

 

 

2、Bean之间的引用

 

 

3、Bean配置集合属性

 

① 配置List类型属性: Set类似

 

 

② 配置Map类型属性:

 

③ 配置java.util.Properties属性:

 

 

④配置独立的集合Bean:

 

 

⑤ 使用p命名空间:Spring 从 2.5 版本开始引入了一个新的 p 命名空间

 

 

 

 

 

 

四、自动装配

1、使用 @Autowired 注解自动装配Bean,使用@Autowired注解自动装配具有类型兼容的单个Bean属性。

可以在构造器、普通字段一切具有参数的方法上使用 @Autowired 注解。

 

 

2、默认情况下,当使用 @Autowired 注解的属性,如果在IOC容器中找不到匹配的Bean来装配属性时,会抛出异常。

可以使用 required=false 设置某一属性不被设置(即IOC容器不配置匹配的Bean)。

 

3、使用@Autowired注解的属性,当 IOC 容器中存在多个类型匹配的 Bean 时,默认情况下会匹配与属性

相同名称的 Bean,若匹配不到则抛出异常。也可以使用 @Qualifier(“Bean名称”) 注解指定注入的Bean。

 

 

4、@Autowired也可以用在数组上,Spring会将所有匹配的Bean自动装配进数组。

     @Autowired也可以用在集合上,Spring会判断该集合的类型,然后自动装配所有类型兼容的Bean。

     @Autowired也可以用在Map上,若key为String类型,Spring将Bean的名称作为key,Bean本身作为值自动装配所有类型兼容的的Bean。

 

5、也可以使用 @Resource@Inject 自动装配Bean,功能与 @Autowired 类似,建议使用@Autowired注解

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值