Spring学习笔记(三)

    xiaoxiao2021-12-14  22

    1、构造器注入

    这种方式的注入是指带有参数的构造函数注入。

    2、实例

    (1)PersonDao.java

    public interface PersonDao { public void add(); }

    (2)PersonDaoBean.java

    public class PersonDaoBean implements PersonDao { public void add() { System.out.println("PersonDaoBean add"); } }

    (3)PersonService.java

    public interface PersonService { public void save(); }

    (4)PersonServiceBean.java

    public class PersonServiceBean implements PersonService { private PersonDao personDao; private String name; public PersonServiceBean(PersonDao personDao, String name) { this.personDao = personDao; this.name = name; } public void save() { System.out.println(name); personDao.add(); } }

    (5)beans.xml

    <?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"> <bean id="personDao" class="com.spring.dao.impl.PersonDaoBean"></bean> <bean id="personService1" class="com.spring.service.impl.PersonServiceBean"> <!-- 依赖注入:使用构造器注入 --> <constructor-arg index="0" type="com.spring.dao.PersonDao" ref="personDao"/> <constructor-arg index="1" value="Tom"/> </bean> <bean id="personService2" class="com.spring.service.impl.PersonServiceBean"> <constructor-arg index="0" type="com.spring.dao.PersonDao"> <bean class="com.spring.dao.impl.PersonDaoBean"/> </constructor-arg> <constructor-arg index="1" value="Jerry"/> </bean> </beans>

    (6)Test.java

    public class Test { @org.junit.Test public void test1() { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); PersonService personService = (PersonService)ctx.getBean("personService1"); personService.save(); } @org.junit.Test public void test2() { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); PersonService personService = (PersonService)ctx.getBean("personService2"); personService.save(); } }

    3、结果

    test1()运行结果:

    Tom PersonDaoBean add

    test2()运行结果:

    Jerry PersonDaoBean add

    转载请注明原文地址: https://ju.6miu.com/read-969852.html

    最新回复(0)