[JAVAEE] 实验03:Spring Bean的配置、实例化、作用域、生命周期与装配方式

本文旨在探讨Spring框架中Bean的配置、实例化方法,包括构造器、静态工厂和实例工厂方式。同时,介绍了Bean的作用域、生命周期管理和装配方式,如XML装配与注解装配,并给出了具体的代码示例。在实践中,还提到了可能遇到的问题,如依赖库的添加和服务器的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【一】实验目的:

(1)掌握Bean的实例化
(2)掌握Bean的装配方式
(3)掌握Bean的作用域和生命周期

【二】结构:

1️⃣配置(不具体介绍)
2️⃣实例化:构造方法实例化(最常用)、静态工厂实例化、实例工厂实例化
3️⃣作用域
4️⃣生命周期
5️⃣装配方式

【三】实验代码:

##一、实例化

 BeanClass.java
package instance;
//一、bean的构造方法之 实例化(最常用)
public class BeanClass {	
	public String message;
	public BeanClass() {
		message = "构造方法实例化Bean";
	}
	public BeanClass(String s) {
		message = s;
	}
}
BeanInstanceFactory.java
package instance;
public class BeanInstanceFactory {
	public BeanClass createBeanClassInstance() {
	    return new BeanClass("调用实例工厂方法实例化Bean");
	}
}

BeanStaticFactory.java

package instance;
//二、bean实例化之 静态工厂实例化
public class BeanStaticFactory {
	
	private static BeanClass beanInstance = new BeanClass("调用静态工厂方法实例化Bean");
	public static BeanClass createInstance() {
        return beanInstance;
    }
}

配置文件:ApplicationContext.xml

	<!-- 一、构造方法实例化Bean -->
	<bean id="constructorInstance" class="instance.BeanClass" scope="prototype"/>
	
	<!-- 二、静态工厂方法实例化Bean,createInstance为 静态工厂类BeanStaticFactory中的静态方法-->
	<bean id="staticFactoryInstance" class="instance.BeanStaticFactory"  factory-method="createInstance"/>
    
    <!-- 三、配置工厂 -->
    <bean id="myFactory" class="instance.BeanInstanceFactory"/>
    <!-- 还需要使用factory-bean属性指定配置工厂,应为这个是对象方法而不是类方法 ,使用factory-method属性指定使用工厂中哪个方法实例化Bean-->
    <bean id="instanceFactoryInstance" factory-bean="myFactory" factory-method="createBeanClassInstance"/>

测试:TestInstance.java

package test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import instance.BeanClass;
public class TestInstance {
	public static void main(String[] args) {
		//初始化spring容器,通过路径加载配置文件
		@SuppressWarnings("resource")
		ApplicationContext appCon = new ClassPathXmlApplicationContext("applicationContext.xml");
		//一、构造方法的
		BeanClass b1 = (BeanClass)appCon.getBean("constructorInstance");
		System.out.println(b1 + "------" + b1.message);
		
		//二、静态工厂的
		BeanClass b2 = (BeanClass)appCon.getBean("staticFactoryInstance");
		System.out.println(b2+ "------" +b2.message);
		
		//三、实例工厂的
		BeanClass b3 = (BeanClass)appCon.getBean("instanceFactoryInstance");
		System.out.println(b3+ "------" +b3.message);
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值