您现在的位置是:首页» windows系统» contextconfiglocation,applicationcontext甯哥敤鏂规硶

contextconfiglocation,applicationcontext甯哥敤鏂规硶

2023-12-05 03:39:57
今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家! 如果说BeanFactory是spring的心脏,那么Application就是完整的身躯。ApplicationContext就是由BeanFactory派生出来的。Applicat

今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!

如果说BeanFactory是spring的心脏,那么Application就是完整的身躯。ApplicationContext就是由BeanFactory派生出来的。

ApplicationContext的主要实现类是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,前者默认从类路径加载配置文件,后者默认从文件系统加载文件。

如果配置文件放在类路径下,直接使用ClassPathXmlApplicationContext实现类:

ApplicationContext ctx=new ClassPathXmlApplicationContext("com/techman/context/beans.xml");

这里的参数等同于:"classpath:com/techman/context/beans.xml"

如果配置文件在文件系统的路径下,则可以优先考虑使用FileSystemXmlApplicationContext实现类:

ApplicationContext ctx=new FileSystemXmlApplicationContext("com/techman/context/beans.xml");

这里的参数等同于:"file:com/techman/context/beans.xml".

还可以指定一组配置文件,Spring自动将多个配置文件在内存中整合成一个配置文件:

ApplicationContext ctx=new ClassPathXmlApplicationContext(new String[]{"conf/bean1.xml","conf/bean2.xml"});

2、AnnotationConfigApplicationContext

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import com.techman.reflect.Car;

@Configuration//表示是一个配置信息提供类,这里是通过类注解的配置方式

import org.springframework.context.ApplicationContext;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import com.techman.reflect.Car;

//这里需要spring-context.jar和spring-expression.jar的支持

public class AnnotationApplicationContext

public static void main(String []args)

//通过一个带@Configuration的POJO装载Bean配置

ApplicationContext ac=new AnnotationConfigApplicationContext(Beans.class);

Car car=ac.getBean("car",Car.class);

AnnotationConfigApplicationContext将加载Beans.class中的Bean定义并调用Beans.class中实现的方法实例化Bean,启动容器并装配Bean.

WebApplicationContext是专门为Web应用准备的,它允许从相对于web根目录的路径中加载配置文件完成初始化工作。

WebApplicationContext扩展了ApplicationContext,WebApplicationContext定义了一个常量ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,在上下文启动时,我们可以直接通过下面的语句从web容器中获取WebApplicationContext:

WebApplicationContext wac=(WebApplicationContext)servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

4、ConfigurableWebApplicationContext

ConfigurableWebApplicationContext扩展了WebApplicationContext,它允许通过配置的方式实例化WebApplicationContext,它定义了两个重要的方法:

setServletContext(ServletContext servletContext):为Spring设置Web应用上下文,以便两者整合。

setConfigLocation(String[] configLocations)设置Spring配置文件地址,一般情况下,配置文件地址是相对于Web根目录的地址,如/WEB-INF/techman-dao.xml等。也可以使用classpath:com/techman/context/techman-dao.xml等格式。

5、Spring为使用WebApplicationContext的Servlet和Web容器监听器:

org.springframework.web.context.ContextLoaderServlet;

org.springframework.web.context.ContextLoaderListener;

这里是web.xml启动WebApplicationContext的配置:

<!--从类路径下加载Spring配置文件,classpath关键字特指类路径下加载,如果多个文件则使用逗号或空格隔开-->

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml,/WEB-INF/techman-dao.xml</param-value>

<!--负责启动Spring容器的监听器,它将引用上面的上下文参数获得Spring配置文件地址-->

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

如果在不支持容器监听器的低版本Web容器中,我们可采用ContextLoaderServlet完成相同的工作:

<!--从类路径下加载Spring配置文件,classpath关键字特指类路径下加载,如果多个文件则使用逗号或空格隔开-->

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml,/WEB-INF/techman-dao.xml</param-value>

<servlet-name>springContextLoaderServlet</servlet-name>

<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>

<load-on-startup>1</load-on-startup>

由于WebApplicationContext需要使用日志功能,用户可以将log4j.properties放置在类路径下,这样就会自动启动。如果放在其他地方,必须在web.xml中指定Log4j配置文件的位置。Spring为启动Log4j引擎提供了两个类og4jConfigServlet和Log4jConfigListener,不管哪种方式都必须保证能够在装载Spring配置文件前先装载Log4J配置信息。

<param-name>log4jConfigLocation</param-name>

<param-value>/WEB-INF/log4j.properties</param-value>

<servlet-name>log4jConfigServlet</servlet-name>

<servlet-class>org.springframework.web.util.Log4jConfigServlet</servlet-class>

<load-on-startup>1</load-on-startup>

7、使用标注@Configuration的Java类提供配置信息

<!--通过指定context参数,让Spring使用AnnotationConfigWebApplicationContext而非XmlWebApplicationContext启动容器-->

<param-name>contextClass</param-name>

org.springframework.web.context.support.AnnotationConfigWebApplicationContext

<!--指定标注了@Configuration的配置类,多个可以使用逗号或空格分隔-->

<param-name>contextConfigLocation</param-name>

<param-value>com.smart.Beans,com.smart.AppConfig2</param-value>

<!-- ContextLoaderListener监听器将根据上面的配置使用AnnotationConfigWebApplicationContext根据contextConfigLocation指定的配置类启动Spring容器-->

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

对于大多数的应用,从表现层的action,到持久层的DataSource,都被Spring作为

bean管理。如果这些bean被配置在同一个文件中,阅读及维护该配置文件将是一件非

因此, Spring建议:将一个大的配置文件分解成多个小的配置文件,使每个配置文

件仅仅管理功能近似于bean;这样不仅可以分散配置文件,降低修改配置文件的风险,

而且更符合"分而治之"的软件工程原理。

多个配置文件最终需要汇总, ApplicationContext提供如下方式来汇总多个配置文件:

.使用App1icationContext加载多个配置文件。

• Web应用启动时加载多个配置文件。

• XML配置文件中导入其他配置。

1 ApplicationContext加载多个配置文件

ApplicatonContext的常用实现类有如下两个:

• ClassPathXm1 ApplicationContext。

• FileSystemXm1ApplicationContext。

这两个类都可以用来加载多个配置文件,它们的构造器都可以接收一个数组,并在

该数组中存放多个配置文件。ClassPathXm1ApplicationContext可采用如下代码加载多个

/I假设有3个配置文件: a.xml, b.xml, c.xml

Str工ng[) configLocations={"a.xml","b.xml","c.xml"}

以配置文件数组为参数,创建ApplicationContext

ApplicationContext ctx= new ClassPathXmlApplicationContext(configLocations);

与采用FileSystemXm1ApplicationContext创建ApplicationContext的方式相似,区别

仅在于二者搜索配置文件的路径不同:ClassPathXm1ApplicationContext通过CLASSPATH

路径搜索配置文件:而FileSystemXm1ApplicationContext则在当前路径搜索配置文件。

2 Web应用启动时加载多个配置文件

参看5.12.3节所述,通过ContextLoaderListener也可加载多个配置文件,可利用

轻量级J2EE企业应用实战一一-Struts+Spring+Hibernate整合开发

<context-pararn>元素来指定多个配置文件位置,其配置如下:

<param-name>contextConfigLocation</param-name>

<1--此处可以列出多个Spring的XML配置文件>

<param-value>/WEB-INF/daoContext.xml IWEB-INF/applicationContext.xml<1

3 XML配置文件中导人其他配置文件

配置文件本身和其子元素import.可用于导入其他配置文件。具体的配置示例如下:

<?xml version="1.0" encod工口g="gb2312"?>

<!一指定Spring配置文件的dtd>

<!DOCTYPE beans PUBLIC"-IISPR工NGIIDTD BEANIIEN"

''htt p://ww w.springframe work.o rg/dtd/spring-beans.dtd''>

<!-- Spring配置文件的根元素->

<!一导入第→份配置文件: serv工ces.xml一〉

<import resource="serv工ces.xml"l>

<!--导入第二份配置文件: resources/messageSource.xml一〉

<import resource="resources/messageSource.xml"l>

<!--导入第二份配置文件: resourcesl themeSource.xml-->

<import resource="/resources/themeSource.xml"l>

<!--下面定义该文件垦的其他bean…〉

<bean id="beanl" class="..."1>

<bean id="bea口2" class="..."I>

wwW.Xtw.Com.cN系统网专业的PC、手机系统开发下载平台,HarmonyOS系统、安卓、OS、windows电脑重装系统在线下载安装,操作系统平台技术学习,攻略教程,技术交流。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com

标签: 有哪些