• 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();
            
        }
    }
  • 相关阅读:
    什么是95%的置信区间?
    机器学习博客
    深度自动编码器
    深度神经网络中的权重初始化方法
    自编码器和去噪自编码器的可视化
    08 scrapy框架
    redis.exceptions.DataError: Invalid input of type: 'dict'. Convert to a bytes, string, int or float first.
    Redis 教程
    selenium 滑动解锁(drag_and_drop_by_offset)
    获取登陆cookie,并且利用cookie访问登陆后的界面
  • 原文地址:https://www.cnblogs.com/rixiang/p/5185876.html
Copyright © 2020-2023  润新知