想必用过Spring的程序员们都有这样的感觉,Spring把逻辑层封装的太完美了(个人感觉View层封装的不是很好)。
以至于有的初学者都不知道Spring配置文件的意思,就拿来用了。
所以今天我给大家详细解释一下Spring的applicationContext.xml文件。
Ok,还是通过代码加注释的方式为大家演示:以下是详解Spring的applicationContext.xml文件代码:<!-- 头文件,主要注意一下编码--><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "/dtd/spring-beans.dtd"><beans><!-- 建立数据源--><bean id="dataSource" class="mons.dbcp.BasicDataSource"><!-- 数据库驱动,我这里使用的是Mysql数据库--><property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property><!-- 数据库地址,这里也要注意一下编码,不然乱码可是很郁闷的哦!--><property name="url"><value>jdbc:mysql://localhost:3306/tie?useUnicode=true&characterEncoding=utf-8</value></property><!-- 数据库的用户名--><property name="username"><value>root</value></property><!-- 数据库的密码--><property name="password"><value>123</value></property></bean><!-- 把数据源注入给Session工厂--><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource"><ref bean="dataSource" /></property><!-- 配置映射文件--><property name="mappingResources"><list><value>com/alonely/vo/User.hbm.xml</value></list></property></bean><!-- 把Session工厂注入给hibernateTemplate --><!-- 解释一下hibernateTemplate:hibernateTemplate提供了很多方便的方法,在执行时自动建立HibernateCallback 对象,例如:load()、get()、save、delete()等方法。
--><bean id="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"><constructor-arg><ref local="sessionFactory" /></constructor-arg></bean><!-- 把DAO注入给Session工厂--><bean id="userDAO" class="erDAO"><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><!-- 把Service注入给DAO --><bean id="userService" class="erService"><property name="userDAO"><ref local="userDAO" /></property></bean><!-- 把Action注入给Service --><bean name="/user" class="erAction"><property name="userService"><ref bean="userService" /></property></bean></beans>采用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的配置这里举例一个配置片断:<action name="loginForm" parameter="method" path="/loginAction"type="org.springframework.web.struts.DelegatingActionProxy"scope="request" validate="true" input="/WEB-INF/jsp/login.jsp"><forward name="success" path="/dispatch.do?def=default" /><forward name="failure" path="/WEB-INF/jsp/login.jsp" /></action>注意里面的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技术来实现的,举例如下:<plug-inclassName="org.springframework.web.struts.ContextLoaderPlugIn"><set-property property="contextConfigLocation"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" /></plug-in>通过Spring框架的ContextLoaderPlugIn,把action类交由Spring容器来管理这里需要说明的一点是:是否需要在struts-config-default.xml文件中一起加载所有的action-servlets信息,还是对应着分别加载。