1.2 Spring框架 --Bean的装配方式、Bean属性注入、Bean作用域

Spring中主要的Bean装配方式可以分为 基于XML文件的装配和Annotation注解装配两种:

1.装配Bean

1.1 XML文件装配:

XML文件的根元素是beans,包含多个bean子元素。

每个bean子元素 包含id、name、class、scope(分别是Bean的唯一标识、Bean的名称供getBean获取、Bean的具体实现类、Bean实例的作用域)等属性。

若Bean没指定name和id属性,则Spring会将class值当做id使用;

基于XML配置文件装配Bean又可以分为:构造器实例化、静态工厂实例化、实例工厂实例化 3 种方式(构造器最常用):

构造器实例化demo:

1.2 Spring框架 --Bean的装配方式、Bean属性注入、Bean作用域

静态工厂实例化demo:

1.2 Spring框架 --Bean的装配方式、Bean属性注入、Bean作用域

实例工厂实例化demo:

1.2 Spring框架 --Bean的装配方式、Bean属性注入、Bean作用域

1.2 Annotation装配

(避免XML文件装配Bean,导致XML文件过于臃肿)

@Component:用于表示Spring中的一个Bean,比较泛化;
@Repository: 用于将数据访问层Dao层的类标识为一个Bean;
@Service: 用于将服务层Service层的类标识为一个Bean;
@Controller:用于将控制层Controller的类标识为一个Bean;
@Autowired:用于对Bean的属性注入(借助于构造函数、对应属性的setter方法);
@Resource: 与Autowired作用一致,有name、type两个属性,分别解析为Bean的实例名称和Bean的实例数据类型;

demo:

1.2 Spring框架 --Bean的装配方式、Bean属性注入、Bean作用域

2. Bean的属性注入:

2.1 通过配置Bean的autowire属性,自动注入:

1.2 Spring框架 --Bean的装配方式、Bean属性注入、Bean作用域

2.2 添加子节点

通过在XML配置文件 对应bean节点添加子节点constructor-arg或property来注入Bean的属性:
1.2 Spring框架 --Bean的装配方式、Bean属性注入、Bean作用域

3.Bean的作用域

通过Bean 的 scope属性来配置bean的作用域,常用的作用域:singleton、prototype:

1.2 Spring框架 --Bean的装配方式、Bean属性注入、Bean作用域