spring容器

spring容器最基本的接口是BeanFactory,其有一个子接口ApplicationContext,也被称为spring上下文。

BeanFactory的一个实现类为XmlBeanFactory。

ApplicationContext有三个实现类,平时使用它更方便,分别为FileSystemXmlApplicationContext、ClassPathXmlApplicationContext、AnnotationConfigApplicationContext。


Bean类通过实现spring容器:

bean类通过实现ApplicationContextAware接口,实现setApplicationContext()方法(spring容器自动调用),可获取spring容器。

1、GetApplicationContext类实现ApplicationContextAware接口

package myspring.com.bean;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class GetApplicationContext implements ApplicationContextAware {
	private ApplicationContext act;
	@Override
	public void setApplicationContext(ApplicationContext arg0)
			throws BeansException {
		// TODO Auto-generated method stub
		this.act = arg0;
	}
	public ApplicationContext getAct(){
		return this.act;
	}

}

2、在bean.xml中配置该类,与配置普通bean没有任何区别

<!-- bean类获取spring容器 -->
  <bean id = "getAct" class="myspring.com.bean.GetApplicationContext"></bean>

3、测试类

package myspring.com.service;

import myspring.com.bean.GetApplicationContext;

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

public class BeanGetAct {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ApplicationContext act = new FileSystemXmlApplicationContext("config/bean.xml");
		
		GetApplicationContext getAct = act.getBean("getAct",GetApplicationContext.class);
		
		System.out.println(act == getAct.getAct());
	}

}

4、输出结果

true

spring容器中bean的作用域scope属性

1、singleton,只实例化一次(默认)

2、prototype,调用一次getBean方法则实例化一个新的对象

3、request、session、global session,需要在web.xml中配置Listener或者filter才能使用,除非前端使用的是spring MVC框架拦截请求则不需要额外的配置



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值