栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring框架中该如何对Bean进行实例化?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring框架中该如何对Bean进行实例化?

        在面向对象编程中,如果要使用某个类的对象,通常需要手动使用new编码的方式来实例化该对象。使用Spring框架后,我们可以把对象实例化交给Spring容器来处理。

目录

1、构造方法实例化

 2、静态工厂实例化 

3、实例工厂实例化


Spring框架实例化Bean的方式有三种:

  1. 构造方法实例化
  2. 静态工厂实例化
  3. 实例工厂实例化

其中最为常用的是构造方法实例化。

1、构造方法实例化

        构造方法实例化是指Spring容器通过调用Bean类中对应的无参数构造方法来实例化该Bean的一种方式。

        如下通过一个应用案例演示构造方法实例化的过程,步骤如下:

第一步:创建一个动态Web项目,导入Spring框架的核心容器组件和对应依赖的jar包

第二步:在src目录下创建包 cn.sjxy.chapter04.instance,并在该包下创建名为MyBean的类

MyBean.java

package cn.sjxy.chapter04.instance;

public class MyBean {
	private String msg;

	public MyBean(){
		this.msg="调用[构造方法实例化Bean的方法] 创建MyBean";
		//System.out.println("无参数的构造方法被调用");
	}
	public MyBean(String msg){
		this.msg=msg;
		//System.out.println("有参数的构造方法被调用");
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "MyBean [msg="+msg+"]";		
		
	}	
	
}

第三步:在src目录下创建applicationContext.xml Spring容器核心配置文件



        


    

第四步:在src目录下创建一个名为TestInstanceBean的测试类,并引入JUnit4.jar,在类中创建testConstructorInstance单元测试方法。
 

package cn.sjxy.chapter04.test;

import org.springframework.context.ApplicationContext;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.sjxy.chapter04.instance.MyBean;


public class TestInstanceBean {
	@Test
	public void testConstructorInstance(){
		ApplicationContext contex = new ClassPathXmlApplicationContext("applicationContext.xml");
		MyBean myBean = (MyBean) contex.getBean("myBean");
		System.out.println(myBean);
	}
}

第五步:运行上述测试类,控制台输出结果如下。

Spring容器已经实例化了MyBean类的对象,且采用的是基于构造方法实例化Bean的方式

 2、静态工厂实例化 

        静态方法实例化要求开发者在工厂类中创建一个static的静态方法来创建Bean的实例。

        如下通过一个应用案例演示构造方法实例化的过程,步骤如下:

第一步:在src目录下创建包 cn.sjxy.chapter04.instance,并在该包下创建名为MyBeanStatic的类,并创建一个静态方法来实话MyBean对象。

package cn.sjxy.chapter04.instance;

public class MyBeanStaticFactory {
	public static MyBean createMyBean(){
		return new MyBean("调用[静态工厂实例化Bean的方式]创建MyBean");
	}
}

 第二步:在Spring框架的核心配置文件applicationContext.xml中添加如下配置代码



        

    
    

   	

第三步:创建testStaticFactory单元测试方法。 

package cn.sjxy.chapter04.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.sjxy.chapter04.instance.MyBean;


public class testStaticFacotry {

	public static void main(String[] args) {
		
		ApplicationContext contex = new ClassPathXmlApplicationContext("applicationContext.xml");

		MyBean myBean = (MyBean) contex.getBean("mystaticFacotry");

		System.out.println(myBean);
	}

}

第四步:运行上述测试类,控制台输出结果如下。

Spring容器已经实例化了MyBean类的对象,且采用的是基于静态工厂实例化Bean的方式  

3、实例工厂实例化

  使用实例工厂实例化要求开发者在工厂类中定义一个实例方法来创建Bean的实例。

第一步:创建实例工厂MyBeanInstanceFactory,并定义一个实例方法createMyBean

package cn.sjxy.chapter04.instance;

public class MyBeanInstanceFactory {
	public MyBean createMyBean(){
		return new MyBean("调用[实例化工厂实例化Bean的方式]创建MyBean");
	}
}

第二步:在Spring框架的核心配置文件applicationContext.xml中添加如下配置代码



        

    
    

   	
   		
   	
   	
	
	

第三步:创建testStaticFactory单元测试方法。 

package cn.sjxy.chapter04.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.sjxy.chapter04.instance.MyBean;


public class testInstanceFactory {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ApplicationContext contex = new ClassPathXmlApplicationContext("applicationContext.xml");
		MyBean myBean = (MyBean) contex.getBean("myBeanInstance");
		System.out.println(myBean);
	}

}

 第四步:运行上述测试类,控制台输出结果如下。

 Spring容器已经实例化了MyBean类的对象,且采用的是基于实例工厂实例化Bean的方式  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/331636.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号