关于bean的注入方法,spring提供了三种方法:
1.构造函数注入
2.setter注入
3.方法注入(省略)
在一般情况下使用前两种方式。基于构造器的DI通过调用带参数的构造器来实现,每个参数代表一个依赖。此外还可以通过给stiatic工厂方法传参数来构造bean。
对应的Class代码:
public class LayerData
{
private YYHYGenericData dataService;
private List<Object> RecordList = new ArrayList<Object>();
public List<Object> getRecordList()
{
return RecordList;
}
public LayerData(String LayerName,YYHYGenericData dbservice,String SQL )
{
this.dataService=dbservice;
System.out.println("图层:"+LayerName+"开始加载缓存");
RecordList= dataService.getAll( SQL);
}
}
对应的bean配置:
<bean id="outcrop"
class="com.yyhy.Webgis.WFSLayer.LayerData">
<constructor-arg index="0">
<value>outcrop</value>
</constructor-arg>
<constructor-arg index="1">
<ref bean="YYHYGenericData"/>
</constructor-arg>
<constructor-arg index="2">
<value>select id,name,objlevel,objtype,the_geom,fontangle,fontcolor,fonttransparence,objdataprecision,fontsize,centerpoint_51000 as centerpoint,enddate,begindate,fillsymbolstyle,filltransparence,wkt_51000 as WKT from outcrop where wkt_51000 is not null</value>
</constructor-arg>
</bean>
这种方式是直接通过传入构造函数参数值的方式注入的,多个参数之间通过 index属性进行区别。
<bean id="YyhytablesnamedicDAOBean"
class="com.yyhy.Baseclass.db.YYHYGenericManagerImpl">
<constructor-arg>
<bean class="com.yyhy.Baseclass.db.YYHYGenericDaoHibernate">
<constructor-arg value="com.yyhy.hx.tablesinformation.Yyhytablesnamedic"/>
<property name="sessionFactory"
ref="sessionFactory"/>
</bean>
这是一个嵌套配置构造函数的bean,类YYHYGenericManagerImpl的构造函数参数是bean对象,而这个bean对象所对应的class的构造函数则需要一个bean 的reference来注入。
setter注入方式:
<bean id="YyhytablesnamedicDAOBean"
class="com.yyhy.Baseclass.db.YYHYGenericManagerImpl">
<property name="*DAO"
ref="BeanDAO">
</bean>
其中的seeter注入可是value的值类型,也可以是上面的引用类型。
是构造函数注入还是setter注入?
由于大量的构造器函数可能使程序变得笨拙,特别是当某些属性是可选的时候,因此通常情况下,提倡使用setter注入。而且setter DI在以后的某个时候还可以重新实例配置。
分享到:
相关推荐
这种方式需要Bean有对应的setter方法,以便Spring进行依赖注入。 ```xml <bean id="student" class="test.Student"> 张三"/> </bean> <bean id="teacher" class="test.Teacher"> 李四"/> </bean> ``` 2....
首先,我们来了解Spring中的bean注入主要有以下四种方式: 1. **设值注入(Setter Injection)**:这是最常见的一种注入方式,通过setter方法来设置bean的属性。在XML配置文件中,我们可以通过`<property>`标签来...
@Autowired 是 Spring 中最常用的注入方法之一,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。@Autowired 的工作原理是,在启动 Spring IoC 时,容器自动装载了一个 ...
Spring 框架的核心特性之一就是依赖注入(Dependency Injection,简称 DI),这是一种设计模式,它允许我们控制组件之间的耦合,而不是让组件自行创建它们所依赖的对象。这有助于提高代码的可测试性、可维护性和灵活...
在Spring框架中,Bean的注入是其核心特性之一,它允许开发者通过声明式的方式管理对象的依赖关系。本文将深入探讨如何在Spring中通过XML配置文件对Bean进行值的注入,包括List、Set和Map等集合类型的注入。 首先,...
除了以上三种方式,Spring还提供了基于注解的元数据注入,如`@Resource`、`@Qualifier`等,以及XML配置文件中的`<bean>`标签等方式进行依赖注入。在实际开发中,可以根据需求选择合适的方式,通常推荐使用构造器注入...
1. **类型匹配**:Spring首先尝试按类型匹配bean,找到最适合的bean注入到目标字段或构造函数。 2. **按名称匹配**:如果存在多个相同类型的bean,Spring会检查目标字段或构造函数是否有`@Qualifier`注解,如果有,...
Spring支持通过属性值、构造器参数、setter方法等多种方式进行注入。 6. **运行环境与构建工具**: 题目描述中提到的运行环境是Eclipse,这是一个流行的Java集成开发环境,提供了便捷的代码编辑、调试等功能。而...
在Spring框架中,Bean的属性注入是核心功能之一,它允许开发者在不编写代码的情况下配置对象的依赖关系。本文将详细讲解使用注解方式进行Bean属性注入的方法,以及相关的源码和工具应用。 首先,让我们了解Spring中...
Spring 中控制 2 个 bean 的初始化顺序 在 Spring 框架中,控制多个 bean 的初始化顺序是一个常见的问题。本篇文章将详细介绍如何控制 2 个 bean 的初始化顺序,提供了多种实现方式,并分析了每种方式的优缺。 ...
在`doCreateBean()`方法中,Spring会创建Bean的实例,`createBeanInstance(beanName, mbd, args)`执行Bean实例的创建,而`populateBean(beanName, mbd, instanceWrapper)`则负责填充Bean的属性,将依赖注入到Bean中...
本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 首先,我们来看构造器注入。构造器注入是在创建对象时,通过构造器传递依赖对象。这种方式强制了对象在创建时就必须提供所有必要的依赖...
综上所述,Spring的Bean配置是其核心机制之一,它涉及到IoC和DI原则的应用,以及多种配置方式的选择,如XML、注解和Java配置。理解并熟练掌握这些概念和实践,对于有效管理Java应用的复杂性至关重要。在实际项目中,...
在这里,`userService` bean的`userDao`属性通过`setter`方法被`userDao` bean注入。`name`属性对应于setter方法参数的字段名,`ref`属性引用了需要注入的bean的ID。 ### 二、setter注入的优点与缺点 **优点:** 1...
3. **Spring注入Bean到Job**:在Job执行时,我们可以直接注入其他由Spring管理的Bean,无需在Job中创建这些对象,从而减少了代码的复杂性,增强了可重用性。 4. **JobFactory的自定义**:Quartz默认使用...
- **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...
在`spring_test`项目中,你可能会发现各种注入方式的示例代码,包括如何在Spring配置文件中定义bean,以及如何在Java类中使用这些注入方式来管理依赖。通过实践和理解这些例子,你可以更好地掌握Spring的依赖注入...
Spring bean 一般通过配置文件和注解进行加载,如果要实现jar或class文件,动态实现spring bean 的动态加载,并通过UrlClassLoader完成jar和class文件的加载。可以实现jar的热替换。spring的bean动态加载则需要对...
在Spring框架中,Bean的属性注入是核心功能之一,它允许我们通过配置文件或注解来设置Bean实例的属性值,使得对象的初始化更加灵活。本文将深入探讨Spring中的"名称空间p",这是一种用于配置Bean属性注入的方式,...