`
wutheringsea
  • 浏览: 262574 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Spring笔记3---在Web应用中使用DI容器

阅读更多

1.加载DI容器

Spring内置的ContextLoaderListener和ContextLoaderServlet辅助类负责DI容器的实例化和销毁工作。

contextConfigLocation上下文参数指定了ContextLoaderListener会读取装载的Spring配置文件,默认为/WEB-INF/applicationContext.xml。

例如在web.xml中配置:

 

 

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>

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

 

 如果目标web容器不支持ServletContextListener,则需要配置ContextLoaderServlet。将web.xml中的listener换成

 

 

<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

 

 

2. 让Spring管理多个配置文件

两种解决方案:

 a.调整web.xml中的contextConfigLocation上下文参数取值 ,从而引用这些文件集合,可用空格,逗号,分号等隔开,如下:

 

 

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml,/WEB-INF/classes/sessioncontent.xml</param-value></context-param>

 

 

 b.在新的applicationContext.xml中使用<import/>元素,从而能应用到sessioncontext.xml文件,如下:

 

 

<import resource="sessioncontent.xml">

 

3. Spring内置的WebApplicationContextUtils使用类能定位ContextLoaderListener或ContextLoaderServlet存储在Web应用中的ioc容器,进而访问到宿主在其中的受管bean。

WebApplicationContextUtils继承于ApplicationContext.相关用法代码如下:

 

 

 

public void processSessionContent(HttpSession hs){
ServletContext sc = hs.getServletContext();
ApplicationContext sc = WebApplicationContextUtils.getRequiredWebApplicationContext(sc);
ISessionContent sessioncontent = (ISessionContent)sc.getBean("sessionContent");

......

}
 

4.国际化和本地化消息资源

ApplicationContext继承的MessageSource是整个国际化消息支持的基础.

例如下配置:

 

 

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>test/messge</value>
</property>

<property name="parentMessgeSource">
<ref="parentMessageSource">  <!--在定义的属性文件中找不到需要的属性键,Spring就会到指定的父实现中去查找 -->
</property>

</bean> 

<bean id="parentMessageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename">
<value>parenthelloworld</value>
</property>

<property name="cacheSeconds">
<value>10</value>
</property>

</bean> 

 

其中,basename用于指定.properties属性文件所在的classpath,如存在若干属性文件,则可使用basenames属性(String[]).下面是测试访问属性文件中的消息:

 

 

//访问message_en.properties中的消息
log.info(aac.getMessage("helloworld",null,Locale.ENGLISH));
//访问message_zh_CN.properties中的消息
log.info(aac.getMessage("helloworld",null,Locale.CHINA));
//访问message_zh_CN.properties中的消息,并传入参数
log.info(aac.getMessage("helloworld",new Object[]{"访客"},Locale.CHINA));
 

 

 

 

分享到:
评论

相关推荐

    spring-framework-2.5-rc2-with-dependencies\spring-framework-2.5-rc2\spring-framework-2.5-rc2docs

    这个文档集合包括了Spring的API参考、用户指南、开发者笔记等,是学习和使用Spring 2.5 RC2的宝贵资源。 首先,让我们了解一下Spring的核心特性。2.5版本引入了一些重要的增强,如依赖注入(Dependency Injection,...

    SSH笔记-web应用下使用Spring

    首先,Spring框架在Web应用中的主要作用是提供依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP),这有助于减少代码间的耦合度,提高可测试性和可维护性。在Web环境中,...

    spring-framework-5.2.3.RELEASE.rar

    3. **Web**:Spring的Web模块提供了MVC(Model-View-Controller)架构,用于构建Web应用程序。它支持RESTful服务、文件上传、URL映射和视图解析等功能。 4. **AOP(面向切面编程)**:Spring的AOP模块允许开发者...

    Spring学习笔记+学习源码.zip

    Spring框架是Java开发中的核心组件,它为应用程序提供了一个全面的基础设施,包括依赖注入(DI)、面向切面编程(AOP)以及数据访问等服务。SSM是Spring、SpringMVC和MyBatis的组合,是Java Web开发的常用框架栈。这...

    spring-analysis-master.zip

    1. IoC(Inversion of Control)容器:Spring的核心特性是控制反转,它通过依赖注入(Dependency Injection,DI)来管理对象的生命周期和依赖关系。IoC容器负责创建对象、装配对象以及管理对象的生命周期,降低了...

    Spring笔记.doc

    2. 自动方式:引入 Spring 的 Web 包和 Struts 的 Spring 插件,配置监听器和应用上下文路径,让 Struts 从 Spring 容器中查找 Action 类,实现单例化,提高效率。 监听器如 ContextLoaderListener 在项目启动时...

    MLDN_J2EE框架_笔记--精华---(包括jsp struts hibernate spring).rar

    《MLDN_J2EE框架_笔记--精华---(包括jsp struts hibernate spring)》这份压缩包文件聚焦于Java企业级开发中的核心技术,涵盖了JSP、Struts、Hibernate和Spring四大框架,它们是构建现代J2EE应用的基础。以下是这些...

    spring容器学习笔记

    初始化和销毁方法在 Spring 容器中,我们可以通过配置来指定 Bean 在被创建后或销毁前需要执行的方法。这些方法可以用于执行初始化设置或者清理工作。 3.1. 初始化方法当我们想要在 Bean 创建完成后执行特定的初始...

    Spring学习笔记(精华全记录)

    控制反转意味着将对象的创建和依赖管理从应用代码中移除,交由Spring容器负责。这样做的好处是可以减少代码耦合度,提高组件的可测试性和可重用性。 - **DI (依赖注入)**:依赖注入是实现IoC的一种手段。通过DI,...

    Spring 入门教程资料(源码源代码及课程笔记)

    Spring 框架是 Java 开发中的一个核心组件,尤其对于企业级应用开发而言,它提供了丰富的功能,如依赖注入(DI)、面向切面编程(AOP)、数据访问/集成、事务管理等。本入门教程资料是针对初学者和求职者设计的,...

    达内,tarena,spring笔记,springPPT课件,达内spring笔记

    Spring框架是Java开发中广泛应用的一个开源框架,由Rod Johnson在其著作《Expert One-on-One J2EE Design and Development》中首次提出。Spring以其轻量级、模块化和强大的依赖注入特性而闻名,它简化了企业级Java...

    java笔记 Java-Web笔记 J2EE三大框架笔记

    1. Spring框架:Spring是全面的企业级应用开发框架,它包含了依赖注入(DI)、面向切面编程(AOP)、数据访问/集成(DAO)、Web应用、事务管理等多个模块。Spring的核心是IoC(Inversion of Control)容器,它负责...

    Spring笔记.docx

    为了能够在项目中使用上述注解,需要确保Spring配置文件中添加了相应的命名空间,以及开启了对注解的支持。通常情况下,需要在Spring配置文件中加入以下内容: ```xml &lt;context:component-scan base-package=...

    spring笔记.zip

    Spring框架是Java开发中的核心组件,它为应用程序提供了一个全面的基础设施,支持bean的依赖注入、面向切面编程(AOP)以及各种服务。Spring框架的灵活性和模块化设计使得开发者能够选择他们需要的部分,而忽略其他...

    Spring学习笔记.doc

    而在Spring中,这些依赖关系的管理交给了Spring容器。容器负责创建和管理组件及其依赖项,并将它们自动组装起来。 - **优点**: - **减少耦合度**:组件不再直接创建依赖对象,而是通过容器来获取,这样可以更容易...

    Spring2.5.6学习笔记-最新

    以上是 Spring 2.5.6 学习笔记中的关键知识点,通过这些基础知识的学习,开发者可以开始构建基于 Spring 框架的应用程序。接下来,可以进一步深入学习 Spring 的高级特性,如事务管理、安全性、Web 开发等方面的知识...

    马士兵Spring课堂笔记(超级详细版).pdf

    Spring提供了强大的IOC/DI容器,可以帮助我们实现对象之间的解耦。我们可以通过XML文件或注解来配置bean,并将其注入到容器中。Spring还提供了 setter 注入、构造方法注入、接口注入等多种方式来注入依赖关系。 ...

    Spring5-尚硅谷框架课堂笔记.rar

    Spring框架是Java开发中的核心组件,它为应用程序提供了...尚硅谷框架课堂笔记.pdf》这两份资料,你将能够深入了解Spring5的核心概念、使用方法以及最佳实践,从而更好地掌握这一强大的框架,并应用于实际项目开发中。

    Spring笔记整理.zip

    Spring框架是Java开发中不可或缺的一部分,它为开发者提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,极大地简化了企业级应用的开发。本笔记将深入讲解Spring的核心概念和使用方法,帮助你快速掌握这一重要...

    马士兵老师spring框架学习笔记

    马士兵老师的Spring框架学习笔记会详细讲解这些概念,并结合实例帮助读者理解并掌握如何在实际项目中应用Spring框架。通过学习,你可以提升Java开发技能,更好地理解和运用Spring生态,为你的职业发展奠定坚实基础。

Global site tag (gtag.js) - Google Analytics