Spring自动装配模式二:byName的解析
自己简述:byName,就是要设置自动装载为byName的Bean,如果该BEAN中有某一个属性,那么,它就会在该配置文件XML中,找到与之相同ID或者NAME的BEAN,让这个BEAN装载原BEAN。
根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。例如,在bean定义中将autowire设置为byName,而该bean包含homeAddressServiceImpl属性(同时提供setHomeAddressServiceImpl(..)方法),Spring就会查找名为homeAddressServiceImpl的bean定义,并用它来装配给homeAddressServiceImpl属性。
配置文件如下:
<bean id="homeAddressServiceImpl" class="cn.csdn.service.HomeAddressServiceImpl"
scope="singleton">
<property name="address">
<value>北京海淀上地软件园</value>
</property>
</bean>
<bean id="empServiceImpl" class="cn.csdn.service.EmpServiceImpl"
scope="singleton" autowire="byName" />
cn.csdn.service.HomeAddressServiceImpl代码
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;
}
}
cn.csdn.service.EmpServiceImpl 代码
package cn.csdn.service;
public class EmpServiceImpl {
private HomeAddressServiceImpl homeAddressServiceImpl;
public void setHomeAddressServiceImpl(
HomeAddressServiceImpl homeAddressServiceImpl) {
this.homeAddressServiceImpl = homeAddressServiceImpl;
}
}
分享到:
相关推荐
- byName:根据bean的属性名自动装配。如果bean的属性名为其他bean的id,那么Spring会尝试将这个bean注入。 - byType:根据属性的类型自动装配。Spring会查找与该属性类型匹配的bean,并将其注入。 - constructor:...
Spring自动装配提供了几种模式来处理这些依赖,如`byName`、`byType`、`constructor`、`autodetect`和`default`。这些模式帮助Spring容器识别并注入合适的依赖。 - `byName`模式:根据属性名寻找匹配的Bean名称进行...
其中,byName是指根据Bean对象的名称来进行自动装配,byType是指根据Bean对象的类型来进行自动装配,constructor是指使用构造方法来进行自动装配,autodetect是指自动选择byType或constructor的自动装配方式,no是指...
- `getAutowireMode()`:返回自动装配模式,如BY_NAME、BY_TYPE等。 - `getInitMethodName()` 和 `getDestroyMethodName()`:获取bean的初始化和销毁方法名,用于调用bean的生命周期方法。 除此之外,Bean...
Spring提供了多种自动装配模式,如`byName`、`byType`、`constructor`、`autodetect`等。 2. **byType自动装配** 文件名`spring_autowrire_byType`表明我们将重点讨论的是`byType`自动装配。在这种模式下,Spring...
例如,我们可以在bean定义中使用`<autowire>`标签来指定自动装配的方式,如`byType`或`byName`。但这种方式相对繁琐,需要手动编写大量的XML配置。 随着Spring的发展,@Autowired注解应运而生,这是Annotation版本...
- **按名称装配(byName)**:Spring容器查找与依赖对象属性名称相同ID的Bean,并将其注入到该属性中。 - **构造器装配(constructor)**:通过Bean的构造器来实现自动装配,必须保证每个构造参数的类型都有一个唯一...
在这种情况下,如果我们没有为特定的Bean组件指定自动装配的方式,那么Spring框架将使用`byName`方式来自动装配依赖关系。 四、自动装配的优缺点 使用自动装配可以简化配置工作量和提高开发效率,但是它也存在一些...
- byName:根据属性的名称来自动装配。 - byType:根据属性的类型来自动装配。 - constructor:通过构造函数来自动装配。 - autodetect:使用简单的启发式算法来决定是使用byType还是constructor方式。 24、自动...
首先,@Autowired 注解是 Spring 框架中最常用的自动装配注解之一,它可以应用于构造器、setter 方法、任意方法和字段上,以实现自动装配的功能。@Autowired 注解可以按类型装配,默认情况下必须要求依赖对象必须...
22. 不同方式的自动装配:包括byName、byType、constructor等。 23. Spring 在加载过程中Bean有哪几种形态?:包括实例化、初始化、销毁等。 24. Spring框架中bean的生命周期:包括实例化、初始化、销毁等。 25. ...
- **byName**:当Bean的ID与需要注入属性的名字相同时,可以自动装配。 - **byType**:当Bean的类型与需要注入属性的类型相匹配时,可以自动装配。 #### 五、总结 通过本教程的学习,您不仅了解了Spring框架的...
2. `byName`:Spring会尝试查找具有相同名称的Bean来装配。 3. `byType`:Spring会查找类型匹配的Bean进行装配。 4. `constructor`:与`byType`类似,但应用于构造函数参数,若有匹配的Bean则自动装配。 5. `auto...
7. **spring_autowrire_byName**:这部分是关于Spring的自动装配(Auto-Wiring)功能,特别是通过名字(byName)进行自动装配的配置和使用。 综合以上信息,这组Spring笔记应该是一个全面的学习资源,涵盖了Spring...
- **自动装配**:byName根据bean的名称匹配,byType根据类型匹配,需要谨慎使用以避免意外的依赖注入。 - **生命周期**:包括初始化方法(init-method)和销毁方法(destroy-method),以及懒加载(lazy-init)特性...
- **byName**:根据属性名自动装配。 - **byType**:根据类型自动装配。 - **constructor**:根据构造函数参数自动装配。 - **autodetect**:尝试使用 constructor,如果不可行则使用 byType。 - **no**:不使用自动...
21. 自动装配方式:有byName、byType、constructor、autodetect和default,以及基于注解的@Autowired。 22. 基于注解的容器配置:通过在类或方法上使用如@Service、@Repository、@Component、@Autowired等注解,...
- **byName**:根据Bean的名称进行装配。 - **byType**:根据Bean的类型进行装配。 - **constructor**:使用构造函数进行装配。 - **autodetect**:自动检测装配模式。 **3.14 自动装配有哪些限制?** 自动装配...
- **根据名称自动装配**:使用`autowire="byName"`属性。 - **根据类型自动装配**:使用`autowire="byType"`属性。 ### 五、Bean的作用域 - **singleton**:单例模式,每个容器只有一个bean实例。 - **prototype**...