4、Bean的自动装配

  • 自动装配是Spring满足bean依赖的一种方式
  • Spring会在上下文中自动寻找,并自动给Bean装配属性

Spring中有三种装配bean的方式

1.在XML文件中显示的配置(前面用的就是)

2.在Java中显示的配置(还没有遇到)

3.隐式的自动装配bean【重点】

4.1byName方式

需要保证所有bean的id唯一,并且该bean需要和自动注入对象的属性的set方法的值一致

<bean id="cat" class="com.dong.pojo.Cat">
       <property name="name" value="小米"/>
</bean>
<bean id="dog" class="com.dong.pojo.Dog">
       <property name="name" value="大米"/>
</bean>
    <!--第一种自动装配方式,
        byName:会自动在容器上下文找和自己对象set方法后面值所对应的bean的id
        第二种自动装配方式,
        byType:会自动在容器上下文找和自己对象属性类型相同的bean,id都可以省略
        -->
<bean id="people" class="com.dong.pojo.People" autowire="byName">
       <property name="name" value="乐多"/>
</bean>

4.2byType方式

需要保证所有的bean的class唯一,并且该bean需要和自动注入对象的属性的类型一致

<bean class="com.dong.pojo.Cat">
       <property name="name" value="小米"/>
</bean>
<bean class="com.dong.pojo.Dog">
       <property name="name" value="大米"/>
</bean>
    <!--第二种自动装配方式,
        byType:会自动在容器上下文找和自己对象属性类型相同的bean,id都可以省略
        -->
<bean id="people" class="com.dong.pojo.People" autowire="byType">
       <property name="name" value="乐多"/>
</bean>

4.3注解方式(@Autowried 、@Resource)

二者的异同点: 都是用来自动装配的,都可以放在属性字段上

                        前者通过byType的方式实现,必须要求这个对象存在(常用)

                         后者默认通过byName的方式实现,如果找不到name,则通过byType的方式实现,如果两个都没有,则报错。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容