spring基础(一)

加载配置文件两种方式:

ClassPathXmlApplicationContext:它是只能加载类路径下的配置文件 (极力推荐使用)
FileSystemXmlApplicationContext:它是可以加载任意路径下的配置文件

Spring容器创建Bean的两种规则:1.即时加载(ApplicationContext)2.延时加载(BeanFactory)

ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
即时加载方式,只要解析完配置文件,就立马加载。
Resource resource = new ClassPathResource("bean.xml");
BeanFactory factory = new XmlBeanFactory(resource); 延时加载方式,什么时候用,什么时候加载

配置bean的方式有三种:

第一种方式:调用默认无参构造函数创建 此种方式用的最多 默认情况下,如果类中没有默认无参构造函数,则创建失败,会报异常
第二种方式:使用静态工厂中的方法创建对象,需要使用bean标签的factory-method属性,指定静态工厂中创建对象的方法
第三种方式:使用实例工厂中的方法创建
<!--第一种,直接通过类名反射,调用无参构造方法创建对象-->
<bean id="customerService" class="com.dimples.service.impl.CustomerServiceImpl"></bean>
<!--第二种,通过静态工厂的方式获取bean对象-->
	<bean id="staticCustomerService" class="com.dimples.factory.StaticFactory" factory-method="getCustomer"/>
<!--通过实例工厂的模式获取bean对象-->
	<bean id="insFactory" class="com.dimples.factory.InstanceFactory"></bean>
	<bean id="insCustomer" factory-bean="insFactory" factory-method="getCustomer"/>
第二种的静态工厂类:
public class StaticFactory {
	public static CustomerServiceImpl getCustomer() {
		return new CustomerServiceImpl();
	}
}
第三种的实例工厂类:
public class InstanceFactory {
	public CustomerServiceImpl getCustomer() {
		return new CustomerServiceImpl();
	}
}
Bean的作用范围:
它是可以通过配置的方式来调整作用范围。
配置的属性:bean标签的scope属性。
属性的取值:
singleton:单例的(默认值)
prototype:多例的(当我们让spring接管struts2的action创建时,action必须配置此值)
request:作用范围是一次请求,和当前请求的转发。
session:作用范围是一次会话。
globalsession :作用范围是一次全局会话。
Bean的生命周期:
涉及bean标签的两个属性:
init-method
destroy-method
单例:
出生:容器创建,对象就出生了。
活着:只要容器在,对象就一直存在。
死亡:容器销毁,对象消亡。
多例:
出生:每次使用时,创建对象
活着:只要对象在使用中,就一直活着
死亡:当对象长时间不使用,并且也没有别的对象引用时,由java的垃圾回收器回收。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值