Javaweb学习笔记(Spring的Bean)

Bean的环境配置

Spring容器支持XMLhe Properties两种方式配置文件,在Spring中XML配置文件的根元素是< bens>,< beans>中包含了< bean>,每一个< bean>子元素定义了一个Bean,并描述了该Bean如何被装配到Spring容器中。< bean>中常用的元素。

属性或子元素名称 描述
id 是一个Bean的唯一一个表示符,Spring容器瑞Bean的配置、管理都通过该属性来描述。
name Spring容器同样可以通过此属性此属性的对容器中的Bean进行配置和管理,name属性中Bean指定多个名称,没个名称直接用逗号分开。
class 该属性指定了Bean的具体实现类,它必须是一个完整的类名,使用类的全假定名
scope 用来设定Bean实例的作用域其属性值:singletion(单例),prototype(双例),request,session,global Session,application,websocket,默认值是singleton
constructor-arg < bean>元素的子元素,了可以使用此元素传入构造参数进行实例化,钙元素index构造参数的序号,type属性指定构造参数的类型,参数值可以通过ref属性或value实行直接指定,也可以通过ref或者value子元素指定
ref < property>、< constructor-arg>等元素的属性或子元素,可以用于指定对Bean工厂中的某个Bean实例的引用。
value < property>、< constuctor-arg>等元素的属性或子元素,可以用于指定对Bean工厂中Bean实例的引用。
list 用于封装List或数字类型的依赖注入
set 用于封装Set类型的依赖注入
map 用于封装Map类型属性的依赖注入
entry < map>元素的子元素,用于设置一个键值对,器key属性指定字符串类型的键值。

在配置文件中,通常一个普通的Bean只需定义id和class两个属性即可。定义Bean的方式如下:

<?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.xsd">
	<!--使用id属性定义bean1-->
	<bean id="bean1" class="com.itheima.Bean1"/>
	<!--使用name属性定义bean2-->
	<bean name="bean2" class="com.itheima.Bean2"/>
</beans>

Bean的实例化

在Spring中想要使用容器中的Bean,需要先实例化Bean,实例化Bean有三种方式:构造器实例化、静态工厂方式实例化和示例工厂方式实例化。

构造器实例化

构造器示例化是指Spring容器通过Bean对应类中默认的无参构造方法来实例化Bean。
示例:
(1)在Eclipse中建立一个Web项目,在该项目的lib目录中加入Spring支持和依赖的JAR包
(2)在Bean项目的src目录下,创建一个bean.example包,创建一个Bean1类

package bean.example;

public class Bean1 {
}

(3)在bean.example包中,创建Spring的配置文件beans1.xml在配置文件中定义一个id为1的Bean。

<?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.xsd">
	<bean id="bean1" class="bean.example.Bean1"/>
</beans>

(4)在bean.example包中创建测试类InstanceTest1来测试是否能实例化Bean

 package bean.example;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class InstanceTest1 {
	public static void main(String [] arg){
		String xmlPath="bean/example/beans1.xml";
		ApplicationContext applicationContext=new ClassPathXmlApplicationContext(xmlPath);
		Bean1 bean=(Bean1) applicationContext.getBean("bean1");
		System.out.println(bean);
	}
}

在这里插入图片描述

静态工厂方式实例化

静态工厂方式实例化需要开发者创建一个静态工厂的方法来创建Bean示例,其Bean配置中的class属性所指定的不再是Bean实例的实现类,而是静态工厂类,同时还需要使用factory-method属性来制定所创建的静态工厂方法。
示例:
(1)在Bean项目中创建一个com.itheima.instance.static_factory包,创建一个Bean2类

package c
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值