zoukankan      html  css  js  c++  java
  • java_spring_实例化bean的3种方法

    //Dao类

    package com.dao.bean.www;
    
    public interface PersonServiceDao {
    
    	public abstract void save();
    
    }


    //Bean


    package com.bean.www;
    
    import com.dao.bean.www.PersonServiceDao;
    
    public class PersonServiceBean implements PersonServiceDao {
    
    	@Override
    	public void save() {
    		System.out.println("method save()");
    	}
    }
    


    //第二第三种需要的工厂方法

    package com.factory.www;
    
    import com.bean.www.PersonServiceBean;
    
    public class PersonServiceFactory {
    	public static PersonServiceBean creatBean() {
    		return new PersonServiceBean();
    	}
    	
    	public PersonServiceBean creatBean2() {
    		return new PersonServiceBean();
    	}
    	
    }
    


    //配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    	xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:p="http://www.springframework.org/schema/p"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    	
    	<!-- 获取bean -->
    	<bean id="personService" class="com.bean.www.PersonServiceBean"></bean>
    
    	<!-- 静态工厂方法 -->	
    	<bean id="beanFactory1" class="com.factory.www.PersonServiceFactory" factory-method="creatBean" ></bean>
    	
    	
    	<!-- 非静态工厂方法  1.首先实例化工厂类bean -->
    	<bean id="beanFactory2" class="com.factory.www.PersonServiceFactory" ></bean>
    	<bean id="GetBean" factory-bean="beanFactory2" factory-method="creatBean2" ></bean>
    </beans>


    //测试类


    package com.itcast.www;
    
    import static org.junit.Assert.*;
    
    import org.junit.BeforeClass;
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.dao.bean.www.PersonServiceDao;
    
    public class TestCaseDemo {
    
    	@BeforeClass
    	public static void setUpBeforeClass() throws Exception {
    	}
    
    	@Test
    	public void instanceSpring() {
    
    		ApplicationContext ctx = new ClassPathXmlApplicationContext(
    				"applicationContext.xml");
    
    //		PersonServiceDao personService = (PersonServiceDao) ctx
    //				.getBean("personService");
    //		PersonServiceDao personService = (PersonServiceDao) ctx
    //				.getBean("beanFactory1");
    		PersonServiceDao personService = (PersonServiceDao) ctx
    				.getBean("GetBean");
    		personService.save();
    
    	}
    
    }
    



    //************************初始化和构造函数******************************


    package com.bean.www;
    
    import com.dao.bean.www.PersonServiceDao;
    /*
     * 初始化方法执行在构造方法之后
     * 需要在配置文件中配置初始化或者销毁方法
     * 用于打开或者关闭资源等
     * 单实例-lazy-init=true 获取容器后创建
     * lazy-init=false ctx.getbean实现
     * 直到关闭才执行destroy方法
     * 关闭方法 ctx.close();
     * */
    public class PersonServiceBean implements PersonServiceDao {
    
    	public void init(){
    		System.out.println("init..................");
    	}
    	
    	@Override
    	public void save() {
    		System.out.println("method save()");
    	}
    	
    	public void destroy(){
    		System.out.println("destroy..................");
    	}
    }
    



    //配置文件

    <bean id="personService" class="com.bean.www.PersonServiceBean" lazy-init="false" init-method="init" destroy-method=""></bean>






























































































































  • 相关阅读:
    334 Increasing Triplet Subsequence 递增的三元子序列
    332 Reconstruct Itinerary 重建行程单
    331 Verify Preorder Serialization of a Binary Tree 验证二叉树的前序序列化
    330 Patching Array
    329 Longest Increasing Path in a Matrix 矩阵中的最长递增路径
    328 Odd Even Linked List 奇偶链表
    327 Count of Range Sum 区间和计数
    326 Power of Three 3的幂
    Java中的Class.forName
    巧用Java中Calendar工具类
  • 原文地址:https://www.cnblogs.com/MarchThree/p/3720414.html
Copyright © 2011-2022 走看看