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();
            
        }
    }
  • 相关阅读:
    linux 查看数据库和表
    使用Java实现发送email邮件
    kafka使用说明书
    关于hadoop各种项目中用到的maven依赖
    阿里云服务器快速搭建自己的个人网站
    CentOS7命令大全
    solr中文分词
    windows安装MySQL详细图解过程
    spark数据倾斜分析与解决方案
    浅谈KMlib(机器学习)
  • 原文地址:https://www.cnblogs.com/rixiang/p/5185876.html
Copyright © 2011-2022 走看看