首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring依赖注入的模式

2012-08-21 
Spring依赖注入的方式Spring依赖注入的方式:1.构造函数注入public class PersonServiceBean implements Pe

Spring依赖注入的方式

Spring依赖注入的方式:

1.构造函数注入

public class PersonServiceBean implements PersonService {private String name;private PersonDAO personDAO;public PersonServiceBean(PersonDAO personDAO, String name) {this.personDAO = personDAO;this.name = name;}}

?

<bean id="personDAO" ref="personDAO"></constructor-arg><constructor-arg index="1" value="spring"></constructor-arg></bean>

?

index属性用来显示指定构造构造参数的索引,通过使用索引属性不但可以解决多个简单属性的混淆问题,还可以解决有可能有相同类型的2个构造参数的混淆问题了,注意index是从0开始。但是当使用简单类型时,Spring将无法知道该值的类型,不借助其他帮助,他将无法仅仅根据参数类型进行匹配,比如下面的这个例子:

public class ExampleBean {    private int age;    private String name;    public ExampleBean(int age, String name) {        this.age= age;        this.name= name;    }}

这时可以通过使用'type'属性来显式指定那些简单类型的构造参数的类型,比如:??

<bean id="exampleBean" value="18"/>  <constructor-arg type="java.lang.String" value="zhangsan"/></bean>

?

?

?2.Setter注入:?

通过调用无参构造器或无参static工厂方法实例化bean之后,调用该bean的setter方法,即可实现基于setter的DI。

package com.spring.service.impl;import com.spring.dao.PersonDAO;import com.spring.service.PersonService;public class PersonServiceBean implements PersonService {private PersonDAO personDAO;public PersonDAO getPersonDAO() {return personDAO;}public void setPersonDAO(PersonDAO personDAO) {this.personDAO = personDAO;}}

???

<bean id="personDAO" ref="personDAO"></property></bean>

property中的name属性的含义是PersonServiceBean类中有一个setPersonDAO方法??

?

最常用就是构造函数和Setter这两种注入方法,对于不常用接口方式的注入,这里不予介绍

?

热点排行