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>






























































































































  • 相关阅读:
    ASP.NET使用Coolite.Ext.Web.dll,显示ext"未定义"的解决方法
    浏览器引擎模式与DOCTYPE
    MVC 参数如何自动绑定数组对象
    IIS7.5 配置 PHP
    TFSDeleteProject:删除团队项目
    自动生成存储过程一
    如何更新ntext字段信息
    清除所有默认样式的CSS代码
    自定义动作过滤器属性
    IE9点击别的网页弹出空白页
  • 原文地址:https://www.cnblogs.com/MarchThree/p/3720414.html
Copyright © 2011-2022 走看看