您的位置:首页 > 编程语言 > Java开发

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

2015-11-30 21:35 423 查看
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");
//得到其被注入的类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: