Spring Context



1. XmlBeanFactory 
引用资源 用XmlBeanFactory(不能实现多个文件相互引用)       

Resource resource = new ClassPathResource("appcontext.xml"); 
BeanFactory factory = new XmlBeanFactory(resource);   

   

从factory中获取相应资源文件中的bean,但是这种bean读不到引用了其他文件中的bean!

2. ClassPathXmlApplicationContext 
引用应用上下文 用ClassPathXmlApplicationContext       

ClassPathXmlApplicationContext从类路径中的XML文件载入上下文定义信息,把上下文定义文件当成类路径资.      

ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); 
ApplicationContext factory=new ClassPathXmlApplicationContext("conf/userConfig.xml");   // src/conf 目录下的 
ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml");  
eg1. ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");//加载单个配置文件 
eg2. String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};      
ApplicationContext ctx = new ClassPathXmlApplication(locations); //加载多个配置文件 



3.FileSystemXmlApplicationContext 

用文件系统的路径引用应用上下文 用FileSystemXmlApplicationContext         

FileSystemXmlApplicationContext从文件系统中的XML文件载入上下文定义的信息.      

ApplicationContext factory=new FileSystemXmlApplicationContext("src/applicationContext.xml");      
ApplicationContext factory=new FileSystemXmlApplicationContext("classpath:appcontext.xml"); 
ApplicationContext factory=new FileSystemXmlApplicationContext("file:G:/Test/src/appcontext.xml"); 
ApplicationContext factory=new FileSystemXmlApplicationContext("G:/Test/src/appcontext.xml");        
eg1. ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml"); //加载单个配置文件 
eg2. String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};       
ApplicationContext ctx = new FileSystemXmlApplicationContext(locations );//加载 多 个配置文件          
eg3. ApplicationContext ctx =new FileSystemXmlApplicationContext("D:/project/bean.xml");//根据具体路径加载文件 


注意:在2、3的加载方式中可以加载多个配置文件,获取到ApplicationContext 对象中     

String[] configs = {"applicationContext.xml","user_spring.xml"};
ApplicationContext ctx = new ClassPathXmlApplicationContext(configs);
//ApplicationContext ctx=new FileSystemXmlApplicationContext(configs);    
AbstractDao myUserDAO =  (AbstractDao) ctx.getBean("userDao");  

注:其中FileSystemXmlApplicationContext和ClassPathXmlApplicationContext与BeanFactory的xml文件定位方式一样是基于路径的。 但是FileSystemXmlApplicationContext只能在指定的路径中寻找.如 

ApplicationContext ctx=new FileSystemXmlApplicationContext("C:/xxx.xml"); 


ClassPathXmlApplicationContext可以在整个类路径中寻找xxx.xml.如 

ApplicationContext ctx=new ClassPathXmlApplicationContext("xxx.xml") 


4.XmlWebApplicationContext

Web工程定制的加载方法 XmlWebApplicationContext    

XmlWebApplicationContext从WEB系统中的XML文件中载入上下文定义的信息   

ServletContext servletContext = request.getSession().getServletContext();     

ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext ); //

注:web.xml里面可以定义两种参数: 

1. application范围内的参数,存放在servletcontext中。<context-param>中的参数(可以指定多个文件) 

2. servlet范围内的参数,只能在servlet的init()方法中取得, <init-param>中的参数,在init方法中用this.getInitParameter("param1")获取

 二:要是spring配置多个xml,并且这些文件相互应用的加载方式 

1:在web.xml配置,应用服务去加载     

	<servlet> 
		<servlet-name>app</servlet-name> 
			<servlet-class> 
				org.springframework.web.servlet.DispatcherServlet 
			</servlet-class> 
			<context-param> 
				<param-name>contextConfigLocation</param-name> 
					<param-value>/WEB-INF/applicationContext*.xml,/WEB-INF/user_spring*.xml</param-value>
			</context-param> 
		<load-on-startup>1</load-on-startup>   
	</servlet> 


2:在/WEB-INF/applicationContext.xml配置应用服务去加载   可以在applicationContext.xml中用import引入其他的配置文件    <import resource="user_spring.xml" />

Spring ContextSpring框架的一个核心模块,它提供了一种高级的IoC容器,用于管理和组织应用程序的对象。Spring Context负责创建、配置和管理应用程序的Bean对象,并提供了一些高级功能,如依赖注入、AOP(面向切面编程)等。 Spring Context的主要功能包括: 1. IoC容器:Spring Context使用IoC(Inversion of Control)容器来管理对象的生命周期和依赖关系。通过配置文件或注解,可以将对象的创建、初始化和销毁等过程交给Spring容器来管理,从而降低了对象之间的耦合度。 2. 依赖注入:Spring Context支持依赖注入(Dependency Injection),即通过配置文件或注解将对象之间的依赖关系交给Spring容器来处理。这样可以实现松耦合的设计,方便进行单元测试和模块替换。 3. AOP支持:Spring Context提供了对AOP的支持,可以通过配置文件或注解来定义切面(Aspect)和通知(Advice),从而实现横切关注点的模块化和复用。 4. 事件机制:Spring Context提供了事件机制,可以在应用程序发布和监听事件。通过事件机制,不同的组件可以进行解耦,实现松散耦合的设计。 5. 国际化支持:Spring Context提供了国际化(Internationalization)支持,可以方便地实现应用程序的多语言支持。 6. 配置管理:Spring Context支持多种配置方式,包括XML配置、注解配置和Java配置等。通过配置文件或注解,可以灵活地管理应用程序的配置信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值