Bean的自动装配---ByType
ByType模式
如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配。如果存在多个该类型的bean,那么将会抛出异常,并指出不能使用byType方式进行自动装配。若没有找到相匹配的bean,则什么事都不发生,属性也不会被设置。如果你不希望这样,那么可以通过设置dependency-check="objects"让Spring抛出异常。
案例:
EmpServiceImpl .java
public class EmpServiceImpl {
//封装了AddressServiceImpl类的对象
private AddressServiceImpl companyAddress;
public void setCompanyAddress(AddressServiceImpl companyAddress) {
this.companyAddress = companyAddress;
}
}
AddressServiceImpl.java
public class AddressServiceImpl {
//定义一个address属性
private String address;
public void setAddress(String address) {
this.address = address;
}
}
HomeAddressServiceImpl.java
public class HomeAddressServiceImpl extends AddressServiceImpl{
private String address;
public void setAddress(String address) {
this.address = address;
}
public HomeAddressServiceImpl() {
super();
}
public HomeAddressServiceImpl(String address) {
this.address = address;
}
}
Xml中的bean
<bean id="homeAddressServiceImpl" class="cn.csdn.service.HomeAddressServiceImpl"
scope="singleton">
<property name="address">
<value>石家庄</value>
</property>
<constructor-arg index="0">
<value>北京</value>
</constructor-arg>
解析:若不写此构造器,代码中也没有写无参构造方法则运行会出现bug 此段构造器的设置和代码中的无参构造方法必须出现一个。
</bean>
<bean id="addressServiceImpl" class="cn.csdn.service.AddressServiceImpl"
scope="singleton">
<property name="address">
<value>北京中关村</value>
</property>
</bean>
解析:addressServiceImpl与homeAddressServiceImpl不能同时出现 因为这两个类中都含有address属性即出现两个相同类型的bean 则将会出现异常。
<bean id="empServiceImpl" class="cn.csdn.service.EmpServiceImpl"
scope="singleton" autowire="byType" dependency-check="objects" />
分享到:
相关推荐
(2)byName:根据属性 名 自动装配,设值注入 <bean id="xxx" class="xxx" ></bean> (3)byType:根据属性 类型 自动装配,相同类型多个会抛出异常,设值注入 <bean class="xxx" ></bean> (4)constructor:与 ...
1.4 装配Bean-自动装配(重要!) Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean。 自动装配(autowiring):Spring自动满足bean之间的依赖。 1 ...
解决IDEA中自动装配,找不到类型的bean问题
众所周知Spring里面的bean就类似是定义的一个组件,而这个组件的作用就是实现某个功能的,下面这篇文章主要给大家介绍了关于spring入门教程之bean继承与自动装配的相关资料,需要的朋友可以参考借鉴,下面随着小编来...
文章目录一、注解实现bean自动装配二、注解开发 一、注解实现bean自动装配 自动装配是Spring满足bean依赖一种方式!Spring会在上下文中自动寻找,并自动给bean装配属性! 下面我们来做以下实验 建立如下测试环境:一...
使用mindmaster打开
表单数据与bean的属性映射的原理,对Struts2模型驱动的理解有帮助。
主要介绍了Spring自动装配Bean实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
本篇文章主要介绍了 Spring的自动装配Bean的三种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本篇文章主要介绍了浅谈Spring装配Bean之组件扫描和自动装配,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
今天小编就为大家分享一篇关于在Spring中自动装配Bean的属性,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
自动装配就是开发人员不必知道具体要装配哪个bean的引用,这个识别的工作会由spring来完成。与自动装配配合的还有“自动检测”,这 个动作会自动识别哪些类需要被配置成bean,进而来进行装配。这样我们就明白了,...
自动装配的原理自动装配的含义:自动将Bean装配到IOC容器当中核心注解@SpringBootApplication* Indicates a {@link C
Spring 自动装配及其注解 博客:https://blog.csdn.net/u010476739/article/details/76735241
主要介绍了Spring 自动装配的二义性实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
SpringBoot 打成jar包供第三方引用自动装配方案实现 每天多学一点点~ 话不多说,这就开始吧… 文章目录SpringBoot 打成jar包供第三方引用自动装配方案实现1.前言2.使用者手动配置 basePackages3.使用者通过注解方式...
主要介绍了JSP Spring 自动化装配Bean实例详解的相关资料,需要的朋友可以参考下
spring中的自动装配的形式byType、byName、no、construtor、autodetect和default(beans标签中没有,而bean标签中有该属性)共6种装配的方式的举例说明
使用autowire属性指定自动装配的方式byName根据bean的名字和当前bean的setter风格属性名进行自动装配若有匹配,则自动转配若无匹配,则不装配
在此基础上,又提供了spi机制,用spring.factories可以完成一个小组件的自动装配功能。 在一般业务场景,可能你不大关心一个bean是如何被注册进spring容器的。只需要把需要注册进容器的bean声明为@Component即可,...