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注解


猜你喜欢

转载自blog.csdn.net/qingpengshan/article/details/80574974
今日推荐