想必用过Spring的程序员们都有这样的感觉,Spring把逻辑层封装的太完美了(个人感觉View层封装的不是很好)。以至于有的初学者都不知道Spring配置文件的意思,就拿来用了。所以今天我给大家详细解释一下Spring的applicationContext.xml文件。Ok,还是通过代码加注释的方式为大家演示:
以下是详解Spring的applicationContext.xml文件代码:
jdbc:mysql://localhost:3306/tie?useUnicode=true&characterEncoding=utf-8
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
class="org.springframework.orm.hibernate3.HibernateTemplate">
采用struts+hibernate+spring开发的一个web系统--配置文件介绍
从配置文件说起
在WEB-INF/config下有多种配置文件,这里作个介绍,对项目的开发很有意义
主要涉及到了struts(struts-config文件夹下)、spring(app-config文件夹下)、struts和spring的结合处理(action-servlets-config文件夹下)、
模版技术(tiles-config文件夹下)、验证技术(validation-config文件夹下)
到这里,或许会留意到没有提及hibernate,有关hibernate的设置,也是通过spring来配置的,在后面的spring 文件中会看到,有关hibernate.cfg.xml则存放在classpath下,需要用到的hibernate属性配置信息hibernate.properties也存放在classpath下
这些配置信息是整个系统的装配总线,通过这些xml的配置,把所有的资源串在了一起。
这里还要强调一个信息,这些配置文件都是按照功能模块来划分的,比如现在讲解的这个系统中,除了默认的default外,还划分了order(订单处理系统)、admin(后台管理系统),这样设置的优势在于很好的扩展系统,降低耦合性,同时条理也比较清晰,便于管理。
下面分别介绍一下各个主要的配置文件内容
1、struts(struts-config文件夹下)
struts-config文件夹下主要有struts-config-default.xml、struts-config-admin.xml、struts-config-order.xml三个配置文件
这里放置的是有关struts的配置信息,比如form-bean、action,有关form-bean的配置和一般的struts程序没有什么两样,这里需要说明的是action的配置
这里举例一个配置片断:
type="org.springframework.web.struts.DelegatingActionProxy" scope="request" validate="true" input="/WEB-INF/jsp/login.jsp">
注意里面的type属性,这里设置的是org.springframework.web.struts.DelegatingActionProxy,正是通过它来使得和spring很好的结合起来,这里你会发现没有具体的action类,它是通过struts和spring的结合处理(action-servlets-config文件夹下)的配置文件来实现的,这样action类也纳入到了spring容器的管理体系中去了。
struts和spring的结合就是这样来实现的,当然除了这种方式以外还有其他的,可以参考:关于struts中validate 的几种情况
除了以上的配置信息外,还有几个重要的配置,它是结合Spring、Tiles、Validator等框架的润滑剂,主要是通过Struts的plug-in技术来实现的,举例如下:
className="org.springframework.web.struts.ContextLoaderPlugIn"> value="/WEB-INF/config/action-servlets-config/action-servlets-default.xml /WEB-INF/config/action-servlets-config/action-servlets-order.xml /WEB-INF/config/action-servlets-config/action-servlets-admin.xml" />
通过Spring框架的ContextLoaderPlugIn,把action类交由Spring容器来管理
这里需要说明的一点是:是否需要在struts-config-default.xml文件中一起加载所有的action-servlets信息,还是对应着分别加载。当然现在的系统中是一起加载的,不过如果分开加载,也可以很好的分模块开发,这边只是探讨,作个说明而已。
value="/WEB-INF/config/tiles-config/tiles-defs-default.xml" /> 实现Tiles技术的嫁接 value="/WEB-INF/config/validation-config/validator-rules-default.xml, /WEB-INF/config/validation-config/validation-default.xml" /> 在Struts框架中采用Validator框架的验证机制 2、spring(app-config文件夹下) app-config文件夹下主要有applicationContext_default.xml、applicationContext_admin.xml、applicationContext_order.xml、applicationContext.xml、dataAccessContext-local.xml 这里主要是设置系统所需要的业务逻辑bean,完成符合spring-beans.dtd的定义规则 分别解释一下各个配置文件的主要用途: applicationContext.xml--定义一些共通的bean,列举如下: AbstractFacadeBean(com.iplan.portal.framework.base.BaseFacade--所有Facade的抽象类,主要完成对DAO 的配置,以便为所有FACADE提供DAO支持) AbstractServiceBean(com.iplan.portal.framework.base.BaseService--所有ServiceImp的抽象类,主要完成对DAO的配置,以便为所有ServiceImp提供DAO支持) AppRelationCore(com.iplan.portal.framework.base.AppRelationCore--系统各模块间关系的维护类,既所有模块暴露的Facade通过此类来访问,每添加一个Facade模块,需要在这里追加) baseTransactionProxy(通用的事务代理,这样所有的Service、Facade都可以继承这个事务代理) 这里定义的都是些基础设施,可以看到都是framework.base下的类 dataAccessContext-local.xml--定义本地数据源信息 说明:为了系统运作的简单化,这里设置了本地数据源信息(以local为标志),当然如果为了分布式运作,采用jta事务,可以定义相应的设置 这里主要定义了数据源dataSource、hibernate的SessionFactory(mySessionFactory)、hibernate的事务管理器(myTransactionManager)、共通的访问数据库接口commonDAO (https://www.doczj.com/doc/467102596.html,monDAO) 以上两个都是系统运作的基础,其间有一些联系,大家可以参照一下具体的配置文件即可 其它的三个配置文件都是按照功能模块来划分的,都是具体业务方面的信息,这里不在详细描述,可以自行参考配置文件 3、struts和spring的结合处理(action-servlets-config文件夹下) action-servlets-config文件夹下主要有action-servlets-default.xml、action-servlets-admin.xml、 action-servlets-order.xml 这里是action在spring容器下的配置,举例如下: class="com.iplan.portal.start.action.LoginAction"> 这里的name属性"/loginAction"和相应的struts配置文件中的path属性要一一对应起来,这样action类的生命周期将交由spring容器来管理了 4、模版技术(tiles-config文件夹下) 5、验证技术(validation-config文件夹下) 这两项就不在多做阐述了,应该应用的比较多了 除了WEB-INF/config下的五大类配置文件外,对其他一些需要用到的配置信息作一个比较简单的介绍hibernate.cfg.xml: 设置pojo信息,相关的SessionFactory配置已经移植到了Spring的dataAccessContext-local.xml配置文件中去了 hibernate.properties 设置一些有关hibernate的属性信息,比如:driver、url、username、password、dialect、Connection Pool 等等 ApplicationResources.properties i18n国际化资源信息 displaytag.properties display标签的配置信息 default-db.script、default-db.properties默认的hsqldb的数据结构、数据 log4j.properties日志配置文件 最后,还有一个非常重要的配置信息:web.xml 有关于各种信息的配置,web.xml里面有比较详细的说明,这里就不在多阐述了 这里描述一下应用服务器启动后,如何加载这些配置信息已供应用系统运作的 第一步,当然是读取web.xml中的配置信息,可以启动 Log4j信息 通过ContextLoaderListener、读取contextConfigLocation信息(spring(app-config文件夹下)),加载springapp-config文件夹下的配置信息 HSQLDB数据库 启动struts的ActionServlet,相应的config被加载 第二步,从第一步可以看到struts(struts-config文件夹下)、spring(app-config文件夹下)都已经被加载 那么struts和spring的结合处理(action-servlets-config文件夹下)、模版技术(tiles-config文件夹下)、验证技术(validation-config文件夹下)如何被加载呢? struts和spring的结合处理(action-servlets-config文件夹下)通过struts(struts-config文件夹下)下的struts-config-default.xml加载 模版技术(tiles-config文件夹下)、验证技术(validation-config文件夹下)分别通过struts(struts-config文件夹下)下的各个对应的功能模块配置文件加载 通过以上两步加载,把五个大的配置信息都加载到系统中去了 以上是关系系统配置文件的一些说明,希望通过这些能对整个系统的架构有一个比较清晰的了解 发表时间:2007-06-06 关键字: struts2,hibernate,spring 相关文章: ?t4@spring@hibernate的结合问题 ?spring入门编程问题集锦 ?不整合hibernate和spring,只想用spring的事务处理,配置文件... 推荐圈子: GT-Grid 更多相关推荐 虽然是简单的用户登录,但东西一点不少,基于MVC原理实现,共分DAO层,SERVICE层,ACTION层和WEB层,其中DAO和SERVICE层都有各自的接口。 今天主要讲解配置文件的代码,我学习实例,喜欢从控制层出发,然后用到了哪些类或者JSP,再一一扯“蛋”扯出来。 当然,还是先看web.xml xml 代码 1. 2. 3. xsi:schemaLocation="https://www.doczj.com/doc/467102596.html,/xml/ns/j2ee ht tp://https://www.doczj.com/doc/467102596.html,/xml/ns/j2ee/web-app_2_4.xsd"> 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ncodingFilter 15. 16. 17. 18. 19. 20. 21. 22. 23. t.OpenSessionInViewFilter 24. 25. 26. 27. 28. Filter 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. LoaderListener 47. 48. 49. 50. 51. orCleanupListener 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 东西很简单,无非是配置一些过滤器呀,监听器的。主要讲一下openSessionInViewFilter吧,假设在你的应用中Hibernate是通过spring 来管理它的session.如果在你的应用中没有使用OpenSessionInViewFilter或者OpenSessionInViewInterceptor。session会在transaction结束后关闭,此时会抛出session is close 的异常。关于这方面的知识,值得大家去找一下相关资料仔细阅读。 strut2.xml xml 代码 1. 2. "-//Apache Software Foundation//DTD Struts Configuratio n 2.0//EN" 3. "https://www.doczj.com/doc/467102596.html,/dtds/struts-2.0.dtd"> 4. 5. 6. 7. 8. 9. 10. 11. action> 12.package> 13. 14.struts> 可能注意到了,这里的Action交给SPRING来管理了。所以我们看一下application.xml的代码吧 xml 代码 1.xml version="1.0" encoding="UTF-8"?> 2.> 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. /> 25. /> 26. bean> 27. 28. 29. class="org.springframework.orm.hibernate3.LocalSessionF actoryBean"> 30. 32. property> 33. 34. 35. lect.Oracle9Dialectprop> 36. 37. rop> 38. utoprop> 39. 40. props> 41. property> 42. 43. 44. 45. classpath:com/caitong/pingou/bean 46. value> 47. list> 48. property> 49. bean> 50. 51. 52. 54. property> 55. bean> 56. 57. 59. 60. 61. 62. 63. prop> 64. props> 65. property> 66. bean> 67. 68. 69. 70. 71. property> 72. 73. 74. 75. 76. list> 77. property> 78. bean> 79. 80. 81. 82. bean> 83. 84. 85. 87. property> 88. bean> 89. 90. class="https://www.doczj.com/doc/467102596.html,erDAO" parent="bas eDAO"> 91. bean> 92. 93. 94. autowire="byName"> 95. bean> 96. 97. 98. autowire="byName"> 99. bean> 100.beans> 应该说SPRING太强大了,以至于一个配置文件可以解决任何一件事情。简单介绍一下这个配置文件吧,例子用的是c3p0的数据库链接池,hibernate的配置文件也都集成在这里了,如果细心的读者,可能注意到了事务管理模块。是的,本例的事务管理是由spring来管理,而且集中在service层 xml 代码 1. 2. 3. property> 有人可能提出问题,为什么非得要放在service层,而不是dao层,应该说,事务管理有一个不成文的规定,尽量将问题放在上层处理。 然后每个类由SPRING来管理,并且autowire="byName"来寻找依赖注入的bean。 所有的xml文件都已经配置完了,其实最重要也是这个,XML文件将是框架的一个趋势,掌握了它,其实你已经打开了这个框架的门。 spring配置文件各个属性详解 分类:spring 2012-08-09 11:25 9316人阅读评论(2) 收藏举报springaophibernateattributesxhtmlwebsphere 目录(?)[+]一、引用外部属性文件 在Spring3中,配置DataSource的方法有6种。 JDBCSpringXMLMicrosoftHTML 在Spring3中,配置DataSource的方法有五种。 第一种:beans.xml Xml代码 1. 把如下代码添加到web.xml即可完成spring的基本配置 作者简介: Craig Walls是Texas-based公司的软件开发人员,有着超过13年的开发经验,涉及的领域有通信,金融,零售,教育以及软件业等。他是Spring Framework的狂热拥护者,频繁的在当地local user groups讨论组和相关会议上演讲Spring,并且他的Blog上也有很多关于Spring的内容。出版的著作有: z Spring in Action, 2nd Edition, 2007 z XDoclet in Action, 2003 他的Blog是: z https://www.doczj.com/doc/467102596.html, 所参与的项目: z Committer to XDoclet project; z Originator of Portlet and Spring modules for XDoclet 本手册主要是将分布于文档中的那些零散的配置文件部分统一成一个比较系统的整体。结合Spring文档一起查阅也许能节省你一些时间。不过,并不推荐你全部掌握;很多陌生的元素或标签只应用于特定场合。本手册英文版本可以在:https://www.doczj.com/doc/467102596.html,下载。 Spring配置全书 作者Craig Walls 译者superleo 关于Spring的配置 Spring Framework总是不断的改变着Java企业开发的方向,它用一种松耦合的方式来配置和组装应用程序对象和业务对象,比以往的Java企业开发来的更加简洁。一旦你开发了基于Spring 的应用程序,在Spring上下文配置的那些资源简直就是唾手可得。 依赖注入是Spring容器的核心 尽管Spring Framework可以做很多事,但依赖注入却是Spring容器提供的最基本的功能。 任何稍微复杂一点的应用程序都至少由两个或两个以上的对象协作在一起,共同完成一些业务逻辑。以往的Java企业开发,每个对象都要自己去主动获得他们所引用(或依赖)的对象,才可正常运作。这将导致代码之间的紧耦合,难以测试。 项目中一个需求就是所有的功能都是插件的形式装入系统,这就需要利用Spring去动态加载某一位置下的配置文件,就总结了下Spring中加载xml配置文件的方式, xml是最常见的spring 应用系统配置源。Spring中的几种容器都支持使用xml装配bean,包括:XmlBeanFactory, ClassPathXmlApplicationContext, FileSystemXmlApplicationContext, XmlWebApplicationContext, ..... 一: XmlBeanFactory 引用资源 1.Resource cr = new ClassPathResource("applicationContext.xml"); BeanFactory bf=new XmlBeanFactory(cr); UserDao userDao = (UserDao)bf.getBean("userDao"); 二: ClassPathXmlApplicationContext 编译路径 使用ClassPathXmlApplicationContext对象获取,必须把applicationContext.xml放置到类的加载路径中,也就是Src下面 1.ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:appcontext.xml"); // src目录下的 2.ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); UserDao userDao = (UserDao)context.getBean("userDao"); 3.ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext-oracle.xml","applicationContext.xml"}); UserDao userDao = (UserDao)context.getBean("userDao"); // src/conf 目录下的 4.ApplicationContext factory=new ClassPathXmlApplicationContext("conf/appcontext.xml"); 5.ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml"); 三: FileSystemXmlApplicationContext用文件系统 搭建spring的环境: 新建User Library:spring,引入spring的核心jar包: SPRING_HOME\dist\spring.jar spring核心jar包 SPRING_HOME \lib\log4j\log4j-1.2.14.jar 记录日志 SPRING_HOME \lib\jakarta-commons\commons-logging.jar 日志的抽象,日志的抽象,如果没有log4j则会借助commons-logging调用sun的记录日志的工具包,如果没有sun的和log4j的则它会调用自己的 在src目录下建立applicationContext.xml (可从SPRING_HOME\ samples\jpetstore\war\WEB-INF\目录下拷贝applicationContext.xml) 设置spring的xml标签的自动提示: Window-->Preferences-->MyEclipse Enterprise Workbench-->Files and Editors-->XML-->XML Catalog-->add-->location中添加Schema文件(SPRING_HOME\dist\resources\spring-beans-2.0.xsd)-->修改Key Type为Schema Location,将key的文件名设为:https://www.doczj.com/doc/467102596.html,/schema/beans/spring-beans-2.0.xsd 提供log4j.properties配置文件: (G:\software_programming\Java\SSH\spring\spring-framework-2.0.8-with-dependencies\sp ring-framework-2.0.8\samples\jpetstore\war\WEB-INF\ log4j.properties) 定义bean标签的格式 Spring 配置文件命名空间 1.xml文档的命名空间 XML文档可以创建自定义的元素和属性来描述数据,这样就很容易产生名称相同而含义不同的元素。XML使用命名空间来加以区分。 命名空间使用统一资源定位符URI来识别。URI必须是XML文档中唯一的。 1.1 XML文档中加入命名空间 为了引用一个命名空间,可以将其以属性的形式加入任何包含了属于该命名空间中元素的节点中。 比如: 这决定了命名空间wq指向https://www.doczj.com/doc/467102596.html,/ns/furniture 1.2 添加默认命名空间 https://www.doczj.com/doc/467102596.html,/ Copyright?2010吴青版权所有 一个XML文档大部分通常属于一个XML词汇。在这种情况下,可以定义一个默认的命名空间,而不是为每一个元素重复地添加命名空间前缀。可以使用xmlns关键字来定义默认的命名空间。这样,就不用为默认的命名空间内的元素指定前缀了。 2.XML的约束模式 XML的约束模式定义了XML文档中允许出现的元素名,元素中的属性,内容类型,以及元素之间的嵌套关系和出现顺序。如果把一个XML文件看做数据库中的一个表,那么XML约束模式就相当于数据库表结构的定义。 约束模式通常都是在一个单独的文件中进行定义,这个文件被称为模式文档。模式文档采用某种约束模式语言编写,用于描述XML文档的结构。 模式语言应用最广泛的就是XML DTD和XML Schema。Spring的配置文件中这两种模式浴盐都支持 https://www.doczj.com/doc/467102596.html,/ Copyright?2010吴青版权所有 想必用过Spring的程序员们都有这样的感觉,Spring把逻辑层封装的太完美了(个人感觉View层封装的不是很好)。以至于有的初学者都不知道Spring配置文件的意思,就拿来用了。所以今天我给大家详细解释一下Spring的applicationContext.xml文件。Ok,还是通过代码加注释的方式为大家演示: 以下是详解Spring的applicationContext.xml文件代码: Spring是一个强有力的java程序框架,其被广泛应用于java的程序中。它用POJO提供了企业级服务。 Spring利用依赖注入可以获得简单而有效的测试能力。Spring beans,依赖关系,以及服务所需要的bean都将在配置文件中予以描述,配置文件一般采用XML格式。然而XML配置文件冗长而不易使用,在你进行一个使用了大量bean的大项目中它将变得难以阅读和控制。 在这篇文章中我将给你展示12种的有关Spring XML配置文件的最佳技巧。它们中的一些具有更多的实际意义,而不仅是最好的技巧。请注意另外一些因素,例如域模型的设计,会影响到XML配置,但是这篇文章更关注于XML配置的可读性和可操控性。 1.避免使用自动装配 Spring 可以通过bean类的自省来实现自动装配依赖,这样的话你就不必明确地描述bean 的属性或者构造函数的参数。根据属性名称活匹配类型,bean属性可以自动进行装配。而构造函数可以根据匹配类型自动装配。你甚至可以设置自动装配进行自动侦测,这样Spring 替你就会选择一个合适的机制。请看下面的例子: Spring 可以通过bean类的自省来实现自动装配依赖,这样的话你就不必明确地描述bean 的属性或者构造函数的参数。根据属性名称活匹配类型,bean属性可以自动进行装配。而构造函数可以根据匹配类型自动装配。你甚至可以设置自动装配进行自动侦测,这样Spring 替你就会选择一个合适的机制。请看下面的例子: spring 学习笔记 【篇一:spring 学习笔记】 4.主要内容: 从下向上看spring 的主要内容: test :spring 支持junit 单元测试 核心容器(ioc) :bean(bean 工厂,创建对象)、core( 一切的基础)、context( 上下文)、spel(spring 的表达式语言); aop :aop 、aspects 对数据访问的支持:jdbc 、orm 、transaction 、jms(java 邮件服务) 对web 的支持:spring mvc 5.ioc--inversion of control 控制反转: 首先引用一篇文章的内容,简单了解一下dao 和service 层,controller 层、view 层(),另一篇文章对spring ioc 设计思想的总 结比较全面和通俗易懂; 第一步:定义dao 接口userdao package cn.sxt.dao;// 降低耦合性public interface userdao { public void getuser();} 第二步:定义dao 接口的实现类userdaomysqlimpl 和userdaooracleimpl userdaomysqlimpl: package cn.sxt.dao.impl;import https://www.doczj.com/doc/467102596.html,erdao;public class userdaomysqlimpl implements userdao { @override public void getuser(){ system.out.println(mysql 获取用户数 据);}userdaooracleimpl: package cn.sxt.dao.impl;import https://www.doczj.com/doc/467102596.html,erdao;public class userdaomysqlimpl implements userdao { @override public void getuser(){ system.out.println(mysql 获取用户数据);} 第三步:定义service 层接口userservice ,实现具体的业务 package cn.sxt.service;public interface userservice { public void getuser();} 第四步: 定义service 接口的实现类 userserviceimpl,service 层的业务实现,具体要调用到已定义的 dao 层的接口 我们传统的javase 设计思想,代码是这样组织的:我们直接在对象内部(应用程序本身)通过new 进行创建对象,是程序主动去创建依赖对象 Spring配置定时器(注解+xml)方式—整理 一、注解方式 1.在Spring的配置文件ApplicationContext.xml,首先添加命名空间 xmlns:task="https://www.doczj.com/doc/467102596.html,/schema/task" https://www.doczj.com/doc/467102596.html,/schema/task https://www.doczj.com/doc/467102596.html,/schema/task/spring-task-3.1.xsd 2.最后是我们的task任务扫描注解 1、把applicationContext.xml直接放在WEB-INF/classes下,spring会采用默认的加载方式 2、采用在web.xml中配置ContextLoaderListenera或ContextLoaderServlet指定加载路径方式。它们两个有着同样的功能,都实现在了org.springframework.web.conte xt.ContextLoader类,都要定义contextConfigLocation参数。区别在于listener不能在Servlet 2.2兼容的容器中使用。自从Servelt 2.4规范,listener被要求在web应用启动后初始化。web.xml初始化的时候,listerner会检查contextConfigLocation参数。如果不存在的话,它将默认使用/WEB-INF/applicationContext.xml。如果它存在,它就会用预先定义的分隔符(逗号,分号和空格)分开分割字符串(spring配置文件各个属性详解
spring6种配置datasource的方法
spring在web.xml中的配置
spring配置
Spring中加载xml配置文件的几种方式
Spring基本配置及其常用方法
Spring配置文件
spring配置文件说明
12种的有关Spring XML配置文件
spring学习笔记.doc
Spring定时器配置(XML和注解)
Spring加载配置文件的三种方式