码迷,mamicode.com
首页 > 编程语言 > 详细

spring三种实例化bean的方式

时间:2016-02-10 10:56:02      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:

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();
        
    }
}

 

spring三种实例化bean的方式

标签:

原文地址:http://www.cnblogs.com/rixiang/p/5185876.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!