zoukankan      html  css  js  c++  java
  • spring三种实例化bean的方式

    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();
            
        }
    }
  • 相关阅读:
    Java
    Java
    Java与正则表达式
    Java与UML
    用IKVMC将jar转成dll供c#调用
    日历
    提取多层嵌套Json数据
    微信公众平台获取用户openid
    配置IISExpress允许外部访问
    英文单词学习
  • 原文地址:https://www.cnblogs.com/rixiang/p/5185876.html
Copyright © 2011-2022 走看看