一、Spring注入方式总结
1.属性setter注入(当前类需拥有无参构造方法)
- name:当前类的属性名称 
- ref:注入类型为对象 
- value:注入类型为字符串或整型数值 

属性注入

内部bean
 🍖 特殊的注入形式:使用P命名空间:
<!-- 首先加入命名空间配置 -->
xmlns:p="http://www.springframework.org/schema/p"
<bean id="dataServiceBean" class="com.apesource.service.DataService"
                               p:num="2" p:repository-ref="excelRepositoryBean">
</bean>


集合类型的注入
2.构造器Constructor注入
- value:注入类型为字符串或整型数值
- ref:注入类型为对象
- type:注入元素的类型
- name:注入元素所对应的属性名称
- index:注入元素在构造方法参数列表的下标位置

构造器注入

构造器注入
3.接口注入
二、Spring注入类型总结
- value:字符串或整型数值
- ref:对象
- list、set、map、props集合,采用标签
三、Spring常用注解总结(注解名称,使用位置,作用)
- 
@Autowired:按照类型自动注入。 1.用于所要注入的组件属性的上方,可以省略setter方法。 @Autowired private IRepository repository;2.用于setter方法上方 @Autowired public void setRepository(IRepository repository) { this.repository = repository; }
- 
@Qualifier:与Autowired搭配使用,按照名称自动注入 @Autowired @Qualifier(value = "excelRepository") private IRepository repository;
- 
@Resource:javax包下的注解,默认按照类型自动注入 @Resource private IRepository repository;使用name属性按照名称注入 @Resource(name = "fileRepository") private IRepository repository;
- @Component:声明当前类为一个Spring Bean 
- @Controller:声明当前类为一个Spring Bean,同时具有控制层组件的身份 
- @Service:声明当前类为一个Spring Bean,同时具有业务层组件的身份 
- @Repository:声明当前类为一个Spring Bean,同时具有数据访问层组件的身份 
- @Primary:用于声明当前类为主要的Bean 
- @Configuration:用于声明当前类为Spring的配置类 
- @Bean:该注解用于标注创建bean的方法 
- @Scope:设置当前Bean的作用域 
四、Spring Bean元数据的配置方式
1.基于XML
2.基于注解
3.基于JavaConfig配置类
// 该注解用于标注创建bean的方法
@Bean
public MaterialController materialControllerBean(){
    MaterialController materialController = new MaterialController();
    // 使用属性注入(属性注入业务层组件)
    materialController.setMaterialService(materialServiceBean());
    return materialController;
}
@Bean
public MaterialController materialControllerBean(){
    // 使用构造器注入
    return new MaterialController(materialServiceBean());
}