首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

5 依赖注入

2012-11-16 
五 依赖注入五 依赖注入1set注入方式1 对象注入 先看接口 PersonDao.javapackage cn.itcast.servicepubl

五 依赖注入

五 依赖注入1>set注入方式1 对象注入 先看接口 PersonDao.javapackage cn.itcast.service;public interface PersonDao {public void add();}PersonServicepackage cn.itcast.service;public interface PersonService {public void save();}实现类 PersonDaoBean.javapackage cn.itcast.service.impl;import cn.itcast.service.PersonDao;public class PersonDaoBean implements PersonDao {    /* (non-Javadoc) * @see cn.itcast.service.impl.PersonDao#add() */    public void add(){    System.out.println("我是PersonDaoBean里的add方法");    }}PersonServiceBean.javapackage cn.itcast.service.impl;import cn.itcast.service.PersonDao;import cn.itcast.service.PersonService;public class PersonServiceBean implements PersonService {    private PersonDao persondao;public PersonDao getPersondao() {return persondao;}public void setPersondao(PersonDao persondao) {this.persondao = persondao;}public void save(){System.out.println("我是在PersonServiceBean中的save()方法");persondao.add();}public void init(){System.out.println("我是在PersonServiceBean中的初始化的方法");}public void destroy(){System.out.println("我是在PersinServiceBean中的释放资源的方法");}}配置文件 <?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">      <!-- 依赖对象 -->      <!-- 方式一 set方法注入  -->      <!--        <bean id="persondao" init-method="init" destroy-method="destroy">      <property name="persondao" ref="persondao"></property>      </bean>      -->              <!-- 方式二(使用内部bean,但该bean不能被其他bean使用) -->        <bean id="personservice" init-method="init" destroy-method="destroy">        <property name="persondao">        <bean init-method="init" destroy-method="destroy"> <property name="persondao"> <bean value="itcast"></property>    </bean> 实现类修改 package cn.itcast.service.impl;import cn.itcast.service.PersonDao;import cn.itcast.service.PersonService;public class PersonServiceBean implements PersonService {    private PersonDao persondao;    private String name;public PersonDao getPersondao() {return persondao;}public void setPersondao(PersonDao persondao) {this.persondao = persondao;}public void save(){System.out.println("我是在PersonServiceBean中的save()方法");System.out.println("name="+name);persondao.add();}public String getName() {return name;}public void setName(String name) {this.name = name;}public void init(){System.out.println("我是在PersonServiceBean中的初始化的方法");}public void destroy(){System.out.println("我是在PersinServiceBean中的释放资源的方法");}}测试 AbstractApplicationContext tx=new ClassPathXmlApplicationContext("beans.xml");PersonService personservie=(PersonService)tx.getBean("personservice");personservie.save();tx.close();3 集合属性注入Set集合属性注入 <!-- 集合注入 -->         <property name="set">         <set>         <value>第一个</value>         <value>第二个</value>         <value>第三个</value>         </set>         </property>         <property name="list">         <list>           <value>list集合1</value>           <value>list集合2</value>           <value>list集合3</value>         </list>         </property>         <property name="p">         <props>         <prop key="who is he?">我是谁</prop>         <prop key="do you know">你懂吗</prop>         <prop key="that's goodidear">好主意</prop>         </props>         </property>         <property name="map">         <map>         <entry key="xuchunrong" value="许春荣"></entry>         <entry key="huhuan" value="huhuan"></entry>         <entry key="nihao" value="李好"></entry>         </map>         </property>2>构造器注入方式1 利用构造器注入方式注入属性和对象值配置  <bean id="persondao" ref="persondao"></constructor-arg>          <constructor-arg index="1" value="xuchunrong"></constructor-arg></bean>接口package cn.itcast.service;public interface PersonDao {public void add();}package cn.itcast.service;public interface PersonService {public void save();}实现类package cn.itcast.service.impl;import cn.itcast.service.PersonDao;public class PersonDaoBean implements PersonDao {    /* (non-Javadoc) * @see cn.itcast.service.impl.PersonDao#add() */    public void add(){    System.out.println("我是PersonDaoBean里的add方法");    }}package cn.itcast.service.impl;import cn.itcast.service.PersonDao;import cn.itcast.service.PersonService;public class PersonServiceBean implements PersonService {    private PersonDao persondao;    private String name;public void save(){System.out.println("我是save()方法");this.persondao.add();System.out.println("name----------->"+name);}public PersonServiceBean(PersonDao persondao, String name) {this.persondao = persondao;this.name = name;}}测试类AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");PersonService personService = (PersonService)ctx.getBean("personService");personService.save();3>使用Field注入(用于注解方式)

?

热点排行