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

(5) Spring 如何装配 集合类 以及 【第二种 依赖注入 方式】使用 构造器 注入

2012-06-11 19:56 1016 查看
[java]
view plaincopyprint?

package cn.itm.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;

import java.util.Properties;

import java.util.Set;

import cn.itm.service.PersonService;

public class PersonServiceBeanimplements PersonService{

private Set<String> sets =new HashSet<String>();

private List<String> lists =new ArrayList<String>();

private Properties properties =new Properties();

private Map<String, String> maps =new HashMap<String, String>();

public Map<String, String> getMaps() {
return maps;
}

public void setMaps(Map<String, String> maps) {
this.maps = maps;
}

public Properties getProperties() {
return properties;
}

public void setProperties(Properties properties) {
this.properties = properties;
}

public List<String> getLists() {
return lists;

}

public void setLists(List<String> lists) {
this.lists = lists;

}

public Set<String> getSets() {
return sets;
}

public void setSets(Set<String> sets) {
this.sets = sets;
}

}

[java]
view plaincopyprint?

import java.util.List;

import java.util.Map;
import java.util.Properties;
import java.util.Set;

public interface PersonService {

public Set<String> getSets();

public List<String> getLists();

public Properties getProperties();

public Map<String, String> getMaps() ;

}

import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public interface PersonService {

public Set<String> getSets();

public List<String> getLists();

public Properties getProperties();

public Map<String, String> getMaps() ;

}


配置 Spring容器:

[html]
view plaincopyprint?

<?xmlversion="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">
<beanid="personService"class="cn.itm.service.impl.PersonServiceBean">

<propertyname="sets">
<set>
<value>第一个</value>
<value>第二个</value>
<value>第三个</value>
</set>
</property>

<propertyname="lists">
<list>
<value>第一个list</value>
<value>第二个list</value>
<value>第三个list</value>
</list>
</property>

<propertyname="properties">
<props>
<propkey="key1">value1</prop>
<propkey="key2">value2</prop>
<propkey="key3">value3</prop>
</props>
</property>

<propertyname="maps">
<map>
<entrykey="key1"value="value1"/>
<entrykey="key2"value="value2"/>
<entrykey="key3"value="value3"/>
</map>
</property>

</bean>

</beans>

[java]
view plaincopyprint?

package junit.test;

import org.junit.BeforeClass;

import org.junit.Test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.itm.service.PersonService;

public class SpringTest {

@BeforeClass

public staticvoid setUpBeforeClass()
throws Exception {
}

// 专门用来实例化  Spring 容器的。
@Test publicvoid instanceSpring(){

ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
PersonService personService = (PersonService) ctx.getBean("personService");

for(String value: personService.getSets()){
System.out.println(value);
}
System.out.println("-------------------------------");
for(String value: personService.getLists()){
System.out.println(value);
}
System.out.println("-------------Properties()------------------");
for(Object key: personService.getProperties().keySet()){
System.out.println(key + "=" + personService.getProperties().getProperty((String)key));
}

System.out.println("-------------map------------------");
for(Object key: personService.getMaps().keySet()){
System.out.println(key + "=" + personService.getMaps().get(key));
}
}
}

package junit.test;

import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.itm.service.PersonService;

public class SpringTest {

@BeforeClass
public static void setUpBeforeClass() throws Exception {
}

// 专门用来实例化  Spring 容器的。
@Test public void instanceSpring(){

ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
PersonService personService = (PersonService) ctx.getBean("personService");

for(String value: personService.getSets()){
System.out.println(value);
}
System.out.println("-------------------------------");
for(String value: personService.getLists()){
System.out.println(value);
}
System.out.println("-------------Properties()------------------");
for(Object key: personService.getProperties().keySet()){
System.out.println(key + "=" + personService.getProperties().getProperty((String)key));
}

System.out.println("-------------map------------------");
for(Object key: personService.getMaps().keySet()){
System.out.println(key + "=" + personService.getMaps().get(key));
}
}
}


二:使用 使用构造器注入

[java]
view plaincopyprint?

package cn.itm.service.impl;

import cn.itm.dao.PersonDao;
import cn.itm.service.PersonService;

public class PersonServiceBeanimplements PersonService{

private PersonDao personDao;

private String name;

public PersonServiceBean(PersonDao personDao, String name) {
this.personDao = personDao;
this.name = name;
}

public PersonDao getPersonDao() {
return personDao;
}

public void setPersonDao(PersonDao personDao) {
this.personDao = personDao;
}

public String getName() {

return name;

}

public void setName(String name) {
this.name = name;
}

public void save(){
personDao.add();
System.out.println(name);
}

}

[java]
view plaincopyprint?

package cn.itm.service;

public interface PersonService {

public void save();
}

package cn.itm.service;

public interface PersonService {

public void save();
}


[java]
view plaincopyprint?

package cn.itm.dao.impl;

import cn.itm.dao.PersonDao;

public class PersonDaoBeanimplements PersonDao {

public void add(){
System.out.println("执行PersonDaoBean的add方法。。。");
}
}

[java]
view plaincopyprint?

package cn.itm.dao;

public interface PersonDao {

public abstractvoid add();

}

package cn.itm.dao;

public interface PersonDao {

public abstract void add();

}


配置文件:

[html]
view plaincopyprint?

<?xmlversion="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">
<beanid="personDao"class="cn.itm.dao.impl.PersonDaoBean"></bean>
<beanid="personService"class="cn.itm.service.impl.PersonServiceBean">

<constructor-argindex="0"type="cn.itm.dao.PersonDao"ref="personDao"/>
<constructor-argindex="1"value="大家好。"></constructor-arg>
</bean>

</beans>

[java]
view plaincopyprint?

package junit.test;

import org.junit.BeforeClass;

import org.junit.Test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.itm.service.PersonService;

public class SpringTest {

@BeforeClass

public staticvoid setUpBeforeClass()
throws Exception {
}

// 专门用来实例化  Spring 容器的。
@Test publicvoid instanceSpring(){

ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
PersonService personService = (PersonService) ctx.getBean("personService");
personService.save();
}
}

package junit.test;

import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.itm.service.PersonService;

public class SpringTest {

@BeforeClass
public static void setUpBeforeClass() throws Exception {
}

// 专门用来实例化  Spring 容器的。
@Test public void instanceSpring(){

ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
PersonService personService = (PersonService) ctx.getBean("personService");
personService.save();
}
}


打印结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐