单元测试和其他
junit-4.10.jar
xercesImpl-2.8.1.jar ---这里用到Base64编码(可以不引入)
第三节:ssh框架相关配置文件说明 配置SSH开发框架 1)引入struts+spring+hibernate所需要的包,包列表在最小jar表格中有说明。 2)在web.xml中加入如下代码令服务器自动加载Spring <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext.xml</param-value> </context-param> 3)整合struts2 (1).Spring与struts的整合,就是将struts的action类交给spring进行管理。需要导入所需要的jar包。Struts2-spring-plugin.jar (2).配置web.xml文件,在web.xml文件中添加下面的代码 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter> <filter-name>struts-cleanup</filter-name> <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> </filter> <filter-mapping> <filter-name>struts-cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> (3). spring管理struts2的action,以userLoginAction为例。 a.在reource/spring文件夹下面,编写spring配置文件,实现对struts2的action的管理。这里以spring-bean-user.xml为例。这里,首先创建了UserAction的bean,给它指定了一个唯一id为:UserAction,scope="prototype"意味着,每一次请求,创建一个UserAction的实例。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd" default-lazy-init="true" default-autowire="byName"> <bean id="UserAction" class="com.neweducation.user.action.UserAction" scope="prototype"> <property name="userService" ref="userService" /> </bean> <bean id="userService" class="com.neweducation.user.service.impl.UserServiceImpl"> <property name="userDao" ref="userDao" /> </bean> <bean id="userDao" class="com.neweducation.user.dao.UserDao"> <property name="sessionFactory" ref="sessionFactory" /> </bean> </beans> b.在struts2.xml文件中,配置登录的action,为例防止struts2.xml的内容过多,这里,我们对每个不同的部分创建对应的配置文件,比方说,对user,创建一个struts-user.xml的配置文件。然后在struts2.xml文件中引入这个配置文件。 配置struts-user.xml文件 Java代码 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="user" extends="json-default" > <action name="userLogin" class="UserAction" method="userLogin"> <result name="success">index.jsp</result> <result name="input">login.jsp</result> </action> </package> </struts> Struts-user.xml文件中,action的class为UserAction, 即为UserAction类的bean的ID,这样,我们就实现了通过spring来管理Struts2的action。 最后,还需要在struts2.xml文件中,引入struts-user.xml配置文件。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="user" extends="json-default" > <action name="userLogin" class="UserAction" method="userLogin"> <result name="success">index.jsp</result> <result name="input">login.jsp</result> </action> </package> </struts> 4) 整合hibernate3 Spring整合hibernate主要是对hibernate的Session进行管理,包含session的创建,提交,关闭的整个生命周期。Spring对事务的管理应用了AOP技术。 a.配置sessionFactory,让spring来创建session。在appliContext.xml中增加如下代码 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.connection.autocommit">true</prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingResources"> <list> <value>hibernate/User.hbm.xml</value> </list> </property> </bean> 这里,创建了一个Session工厂类的bean,其ID为sessionFactory b.配置事务管理器 在applicationContext.xml中增加下面的代码 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> c.对事务管理进行事务设置 在applicationContext.xml中增加下面代码 <bean id="transactionBase" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" lazy-init="true" abstract="true"> <property name="transactionManager" ref="transactionManager" /> <property name="transactionAttributes"> <props> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> 通过上面的配置,就可以成功的搭建ssh的开发框架了。下面要做的就是来进行实际的项目开发了。下面是我的目录结构: resource里面存放着一些需要的配置文件,项目名称为,newEmplyeeEducation,包neweducation里面是关于项目的一些内容。 第四节:附:开发规范说明 1. 项目命名规则及其路径: 1. 项目名及版本:如NewEducation _X . X . X . XX 2. 包命名规则: 1. action:com.NewEducation.模块名.action; 2. service:com.NewEducation.模块名.service; 3. service.impl:com.NewEducation.模块名.service.impl; 4. dao:com.NewEducation.模块名.dao; 5. dao.impl:com.NewEducation.模块名.dao.impl; 6. model:com.NewEducation.模块名.model; 2. 模块命名规则: 1. core; 2. 其他以该模块的英文名定义。 3. 配置文件命名规范: 1.spring框架 Spring实现对struts的action类的管理,对于每个不同模块创建一个spring的配置文件,其命名为:spring-模块名.xml。如:对user创建一个spring-user.xml配置文件,然后在applicationContext.xml里面import这个进去。 2.struts2框架 为了防止struts的配置文件过于庞大,采用每个模块创建一个struts的配置文件,其命名为:struts-模块名.xml。如:对user创建一个struts-user.xml的配置文件,然后在struts.xml里面include这个配置文件 3.hibernate框架 对于每个对象,创建一个hibernate的配置文件,其命名为:对象名-hbm.xml,如:user,创建的配置文件为:User-hbm.xml。然后在applicationContext.xml里面进行管理 4. 配置文件书写规范: 1. struts.xml采用一个action类对应一个action,一个模块,一个package,尽量避免使用带*号的配置,保证可读性; 2. spring用来管理struts的action,一个模块要对应一个spring的配置文件。如:对于user模块,要有一个对应的spring配置文件,spring-user.xml 3. hibernate对于对象的配置文件,变量名称要一致 5. 配置文件路径: 1. struts-模块名.xml放在resource/struts下面; 2.sping-模块名.xml放在resource/spring下面 3.对象名.hbm.xml放在resource/hibernate下面 4. 其他放到resource目录; 6. 类命名规则: 1. 采用驼峰标识; 2. 各个层之间通信尽量精简数据流量,提高系统运行效率; 3. 接口定义遵循正常人思维; 4. 各层命名规则: 1. action:XxxAction; 2. service:XxxService; 3. service.impl:XxxServiceImpl; 4. dao:XxxDao; 5. dao.impl:XxxDaoImpl; 6. model:XxxModel; 7. util:Xxx(Util)可选; 7. 类体方法常量等等定义规范: 1. getter和setter方法由IDE自动生成,放在所有逻辑方法之后; 2. 方法命名规则:xxxYyyZzz()首字母小写驼峰标识; 3. 变量定义规则:xxxYyyZzz,统一用private声明; 4. util中的类统一用static声明必要时用final; 5. 常量类:定义常量采用大写字母,并用static、final声明; 6. 枚举:大写字母; 8. 开发环境和字符集: 1. 字符集:utf-8;采用常量定义格式放在常量类中; 2. lib统一放在lib目录下; 3. 开发环境jdk6.0;java ee 6; 4. 数据库:mysql 5.1; 5. IDE:eclipse,版本任选; 6. 辅助工具自选;