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

spring三种实例化bean的方式

2016-02-10 10:33 411 查看
1构造函数实例化

2静态工厂方法实例化

3实例工厂方法实例化

service接口:

package service;

public interface PersonService {

public void save();

}


PersonServiceBean:

package service.impl;

import service.PersonService;

public class PersonServiceBean implements PersonService {

public void save(){
System.out.println("我是save()方法");
}
}


PersonServiceBeanFactory:

package service.impl;

public class PersonServiceBeanFactory {
/*
* 静态工厂方法
*/
public static PersonServiceBean createPersonServiceBean(){
return new PersonServiceBean();
}
/*
* 实例工厂方法
*/
public  PersonServiceBean createPersonServiceBean2(){
return new PersonServiceBean();
}
}


applicationContext.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-3.1.xsd"> 
<!-- 默认构造方法 -->
<bean id = "personService" class = "service.impl.PersonServiceBean"></bean>

<!-- 静态工厂方式 -->
<bean id = "personService2" class = "service.impl.PersonServiceBeanFactory"
factory-method = "createPersonServiceBean"></bean>

<!-- 实例工厂方式 -->
<bean id = "personServiceFactory" class = "service.impl.PersonServiceBeanFactory"></bean>
<bean id = "personService3" factory-bean = "personServiceFactory"
factory-method = "createPersonServiceBean2"></bean>

</beans>


测试类:

package test;

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

import service.PersonService;
import service.impl.PersonServiceBean;

/**
* @ClassName: FirstTest
* @Description: 测试实spring三种实例化方式
* @author 无名
* @date 2016-02-10
* @version 1.0
*/
public class FirstTest
{
@Test
public void testCreateBean(){
String conf = "applicationContext.xml";
ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

//利用构造器来实例化
PersonService ps = ac.getBean("personService",PersonServiceBean.class);
ps.save();

//利用静态工厂方法
PersonService ps02 = (PersonService)ac.getBean("personService2");
ps02.save();

//实例工厂方法
PersonService ps03 = (PersonService)ac.getBean("personService3");
ps03.save();

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