这次我们来介绍spring的另一种自动装配方式byName,首先我们单独的看它应该跟名字有什么直接或者间接的联系。为了例证我们的推断,我们当然要看其定义了。
1. byName:在容器中寻找和需要自动装配的属性名相同的Bean(或ID),如果没有找到相符的Bean,该属性就没有被装配上。
大概就是我们的理解根据属性的名字到xml中寻找相应的bean,那么在具体实现中我们应该怎样去实现总动封装呢
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
>
<!--根据id检索-->
<bean id="greetingDaoImpl"
class="cn.csdn.dao.GreetingDaoImpl" scope="singleton">
<property name="say">
<value>Longmanfei</value>
</property>
</bean>
<bean id="greetingServiceImpl"
class="cn.csdn.service.GreetingServiceImpl"
scope="singleton" autowire="byName"/>
</beans>
//GreetingDaoImpl
public class GreetingDaoImpl implements GreetingDao {
private String say;
public void say() {
System.out.println("我打了这个招呼"+say);
}
public void setSay(String say) {
this.say = say;
}
}
//GreetingServiceImpl
public class GreetingServiceImpl implements GreetingService{
private GreetingDaoImpl greetingDaoImpl;//注意属性名称和xml里的id
public void say() {
greetingDaoImpl.say();
}
public void setGreetingDaoImpl(GreetingDaoImpl gdi) {
System.out.println("我调用了set方法");
this.greetingDaoImpl = gdi;
}
public GreetingServiceImpl() {
super();
System.out.println("我调用了空的构造器");
}
public GreetingServiceImpl(GreetingDaoImpl greetingDaoImpl) {
super();
System.out.println("我调用了有参的构造器");
this.greetingDaoImpl = greetingDaoImpl;
}
}
//junit测试
@Test
public void test1(){
/*加载spring容器可以解析多个配置文件采用数组方式传递*/
ApplicationContext
ac=New ClassPathXmlApplicationContext("classpath:LongmanfeibyName.xml");
//直接转换成接口便于日后修改数据/*Ioc控制反转体现*/
GreetingService
gs=(GreetingService) ac.getBean("greetingServiceImpl");
gs.say();
}
<!--EndFragment-->
分享到:
相关推荐
Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(Dependency Injection,简称DI)特性而闻名,其中自动装配(Auto-Wiring)是DI的一种实现方式。自动装配允许开发者减少手动配置bean之间的依赖关系...
Spring框架是Java开发中广泛应用的一个轻量级容器,它的核心特性之一就是依赖注入(Dependency Injection,简称DI),而Spring的自动装配(Auto-Wiring)则是DI的一种实现方式。本篇文章将深入探讨Spring自动装配的...
ean的自动装配,有4种 (1)no:不做任何操作 (2)byName:根据属性 名 自动装配,设值注入 <bean id="xxx" class="xxx" ></bean> (3)byType:根据属性 类型 自动装配,相同类型多个会抛出异常,设值注入 ...
标题中的“Spring自动装配”指的是Spring框架中的一个重要特性,它允许开发者在不显式配置Bean依赖的情况下,由Spring容器自动管理Bean之间的依赖关系。这一特性极大地简化了代码,提高了可维护性和可测试性。 在...
自动装配是Spring框架的核心特性之一,它允许框架自动管理对象之间的依赖关系,无需在代码中显式地创建或查找依赖对象。Spring提供了多种自动装配方式,如byType、byName等,可以根据配置或注解来实现。在项目中,...
spring的自动装配
byType是指根据Bean对象的类型来进行自动装配,constructor是指使用构造方法来进行自动装配,autodetect是指自动选择byType或constructor的自动装配方式,no是指不支持自动装配功能,default是指默认采用上一级标签...
在Spring框架中,自动装配(Auto-Wiring)是一种简化依赖注入(Dependency Injection,DI)配置的方式,它允许Spring容器自动管理Bean之间的依赖关系。本文将深入探讨如何通过注解(Annotation)和`@Resource`来实现...
在Spring框架中,自动装配(Autowiring)是一种机制,它允许Spring容器自动为bean提供其依赖,而无需显式配置。自动装配极大地简化了应用的配置,使得开发者可以更专注于业务逻辑。本文将深入探讨Spring自动装配的...
在Spring框架中,自动装配(Auto-Wiring)是一种便捷的方式来管理bean之间的依赖关系,它能够自动将所需的bean注入到目标bean中,而无需显式配置。然而,自动装配并非适用于所有场景,它存在一些限制。以下是一些...
在Spring框架中,“自动装配”(Autowiring)是一项核心特性,它允许Spring容器自动为bean注入所需的依赖,而无需显式配置。本篇将深入探讨自动装配的概念、类型以及如何在Spring应用中使用。 自动装配是Spring IoC...
Spring自动装配的方式和举例、以及@Qualifier、@Autowire、@Resource的使用。
在Spring框架中,自动装配是一种非常实用的功能,可以简化Bean的依赖注入过程。Spring提供了多种自动装配模式,每种模式都有其适用场景。本文将详细介绍Spring框架中的五种自动装配模式:`no`、`byName`、`byType`、...
在Spring框架中,自动装配(Auto-Wiring)是一种简化配置的方式,它允许Spring容器自动为Bean提供依赖。这种特性使得开发者无需显式地在XML配置文件中声明Bean之间的依赖关系,从而减少了配置工作量,提高了代码的可...
在Spring框架中,`@Autowired`注解是用于自动装配bean的一种方式,它可以根据类型匹配找到合适的bean进行注入。然而,当存在多个相同类型的bean时,Spring可能无法确定应该注入哪一个。这时,`@Qualifier`注解就派上...
在本章中,我们将深入探讨Spring框架的核心特性之一——自动装配和方法注入。Spring作为一款广泛应用的Java企业级开发框架,极大地简化了依赖管理,提高了代码的可测试性和可维护性。自动装配和方法注入是Spring实现...
当有多个 Bean 匹配同一个结果时,Spring 就不知道选择哪个实现类来装配,从而导致自动装配失败。 例如,在一个 sweet 接口中,存在多个实现类,如 Cookies 和 Cake。当使用 @Autowired 将sweet 接口注入到构造参数...
在Spring框架中,集合(List, Map, Set)的自动装配是一项重要的功能,它极大地简化了对象之间的依赖关系处理。本文将深入探讨如何在Spring中对List、Map和Set类型的集合进行自动装配,以及这一特性对初学者的意义。 ...
在Spring框架中,自动装配(Auto-Wiring)是一种简化依赖注入的方式,它允许Spring容器自动为bean找到并设置其依赖。本篇文章将深入探讨两种主要的自动装配方式:byName和byType,以及它们在实际应用中的实例。 **1...