文章标题Spring的依赖注入和反转

1.导入jar包
2.添加spring的配置文件applicationContext.xml其中代码如下

<bean name="teacher" class="cn.entity.Teacher"/>
<bean name="student" class="cn.entity.Student"/>
<bean name="useraction1" class="cn.action.UserAction">
<property name="person" ref="student"/>
<property name="name" value="xx"/>
<property name="address" value="洛阳"/>
<property name="age" value="30"/>
<property name="list">
<list>
<value>hello</value>
<value>goodbye</value>
<value>nice</value>
</list>
</property>
<property name="map">
<map>
<entry>
<key>
<value>china</value>
</key>
<value>中国</value>
</entry>
<entry>
<key>
<value>usa</value>
</key>
<value>美国</value>
</entry>
</map>
</property>
</bean>

 <!--构造方法方法注入 
 <bean name="useraction2" class="cn.action.UserAction">
 <constructor-arg ref="teacher"/>
 <constructor-arg value="xx"/>
 <constructor-arg  value="洛阳"/>
   <constructor-arg value="30"/>
 </bean>
  -->
  <!-- 
  <bean name="useraction3" class="cn.action.UserAction" p:name="xx" p:address="洛阳" p:age="30" p:person-ref="teacher"/>
   -->
</beans>

3.spring是面向接口编程在dao层编写接口代码如下

public interface Person {

    public void say();
}

则其实现类为teacher和student类如下

package cn.entity;

import java.util.Map;

public class Student implements Person{


    public void say() {
        System.out.println("老师好");

    }

}
package cn.entity;

import java.util.List;

public class Teacher implements Person {


    public void say() {
        System.out.println("同学们好");

    }

}

在action层可以添加useraction如下

public class UserAction {

    Person person;
    String name;
    String address;
    Integer age;
    List list;
    Map map;
    String s[];
    public List getList() {
        return list;
    }
    public Map getMap() {
        return map;
    }
    public String[] getS() {
        return s;
    }
    public void setList(List list) {
        this.list = list;
    }
    public void setMap(Map map) {
        this.map = map;
    }
    public void setS(String[] s) {
        this.s = s;
    }
    public Person getPerson() {
        return person;
    }
    public String getName() {
        return name;
    }
    public String getAddress() {
        return address;
    }
    public Integer getAge() {
        return age;
    }
    public void setPerson(Person person) {
        this.person = person;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public void setAge(Integer age) {
        this.age = age;
    }

    public UserAction(String name, String address, Integer age) {
        super();
        this.name = name;
        this.address = address;
        this.age = age;
    }
    public UserAction() {
        super();
    }
    public UserAction(Person person, String name, String address, Integer age) {
        super();
        this.person = person;
        this.name = name;
        this.address = address;
        this.age = age;
    }
    public UserAction(String name, Integer age) {
        super();
        this.name = name;
        this.age = age;
    }
    public void say(){
        person.say();
    }

其中需要注入的需要实现其set方法。可以注入对象,字段,集合等。则实现其依赖注入。
在其实现中的代码如下

ApplicationContext ac=new ClassPathXmlApplicationContext("/applicationContext.xml");//读取xml文档。
        UserAction ua=(UserAction)ac.getBean("useraction1");
        //得到其被注入的类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值