Spring 自动装配

Spring中的自动装配

配置中使用bean标签的autowire属性设置

<bean id="cat" class="com.xxx.cat" autowire="byType"/>

autowire取值:byType, byName

注意:

  1. 需要提供setter方法才能自动装配;
  2. 自动装配用于引用类型的依赖注入,不能对简单类型进行操作;
  3. 使用按类型装配时(byType)必须保障容器中相同类型的bean唯一,推荐使用;
  4. 使用按名称装配时(byName)必须保障容器中具有指定名称的bean,因变量名和配置耦合,不推荐使用;
  5. 自动装配优先级低于setter注入与构造器注入,同时出现时自动装配失效。

使用注解的方式通过@Autowired 实现。

@Autowired:注入引用类型,自动装配模式,默认按类型装配,按类型注入不成功,就会按名注入

@Qualifier(value):自动装配bean时按bean名称(value)装配

注意:

  1. 注解自动装配是基于反射设计创建对象并暴力反射对应属性,为私有属性初始化数据,因此无需提供setter方法。
  2. 注解自动装配建议使用无参构造方法创建对象(默认), 如果不提供对应构造方法,请提供唯一的构造方法。

@Value简单类型注入

@Repository("bookDao")
public class BookDaoImpl implements BookDao {
    //@Value:注入简单类型(无需提供set方法)
    @Value("book1")
    private String name;
}

@Value的值可以从外部配置文件中加载

posted @ 2023-08-31 10:03  凉白茶  阅读(18)  评论(0编辑  收藏  举报