spring中DI配置的三种方式
2018年7月3日星期二随笔 笔记 --- spring的依赖注入Spring装配bean有三种方式:1. 自动化配置(最推荐,避免显示配置带来的维护成本)1.1 组件扫描:spring自动发现容器所创建的bean。开启组件扫描,默认情况下自动扫描配置类相同包(以及子包)下所有带有@component注解的类,并为其自动创建一个bean。那么,如何开启组件扫描呢?答:有两种方式,基于java配置(
2018年7月3日星期二
随笔 笔记 --- spring的依赖注入
Spring装配bean有三种方式:
1. 自动化配置(最推荐,避免显示配置带来的维护成本)
1.1 组件扫描:spring自动发现容器所创建的bean。开启组件扫描,默认情况下自动扫描配置类相同包(以及子包)下所有带有@component注解的类,并为其自动创建一个bean。
那么,如何开启组件扫描呢?
答:有两种方式,基于java配置(推荐)和xml配置
Java配置:在配置类上添加@componentScan注解
Xml配置:利用<context:component-scan base-package=”...”/>
1.2 自动装配:spring自动满足bean之间的依赖。使用@Autowired(推荐)或@Inject注解添加在构造、setter还是其他方法上,实现bean的自动注入,无需手动去new。
2. Java配置(推荐,基于java语言,类型安全易于重构)
利用@Bean注解来声明(创建)一个bean,同时还可以注入另外依赖的bean(利用构造器和setter方法)
3. Xml配置
3.1利用<bean>标签声明一个bean。
举例 <bean id = “peoson” class=”soundsystem.Person” />
3.2 如何注入bean(构造器和setter方法)
构造器注入bean,举例
<bean id = “cdPlayer” class= “com.CDPlayer” >
<constructor-arg ref=”cd” />
</bean>
构造器注入字面量,举例
<bean id = “...” class= “...”>
<constructor-arg value=”...” />
</bean>
c命名空间注入bean,举例
<bean id = “...” class= “...”c:cd-ref=”...” />
c命名空间注入字面量,举例
<bean id = “...” class= “...” c:_...=”...” />
利用<list>、<set>等标签,构造器注入方式可以用来装配集合,而c命名空间不行。
Setter方法注入bean,举例
<bean id = “cdPlayer” class= “com.CDPlayer” >
<property name = “...” ref = “...” />
</bean> 或者使用p命名空间
<bean id = “cdPlayer” class= “com.CDPlayer” p: cd-ref = “...” />
Setter方法注入字面量,举例
<bean id = “cdPlayer” class= “com.CDPlayer” >
<property name = “...” value = “...” />
</bean> 或者使用p命名空间
<bean id = “cdPlayer” class= “com.CDPlayer” p: ... = “...” />
更多推荐
所有评论(0)