|
可以创建如下的项目工程文件结构: project: |-src |-com |-com.pzx.dao.interfaces |-com.pzx.dao |-com.pzx.entity |-com.pzx.model |-com.pzx.service.interfaces |-com.pzx.service |-com.pzx.actions |-com.pzx.servlet |-com.pzx.util
|-struts.xml
|-Test |-com.test |-TestCase1.java |-WebContent |-WEB-INF |-lib
第一步:Hibernate部分 1、从需求分析中获取数据库实体,在com.pzx.model中创建实体对象 2、创建每个实体对象的数据访问层的接口,写在com.pzx.dao.interfaces中 3、创建每个实体对象的业务逻辑层的接口,写在com.pzx.service.interfaces中 4、把Hibernate的相关jar包复制到lib目录下: HIBERNATE_HOME/lib 下的相关的依赖的第三方包 HIBERNATE_HOME/hibernate3.jar Hibernate的核心实现 引入相关的JDBC驱动 5、在src目录下创建相关的配置文件:hibernate.cfg.xml,user.hbm.xml... 可以从以下目录中拷贝过来修改: HIBERNATE_HOME \etc\ hibernate.properties 旧版本的Hibernate实用的核心配置文件,这个文件列举了相关的Hibernate配置,在配置文件时可以参考该文件。 HIBERNATE_HOME \etc\ hibernate.cfg.xml 如果存在这个文件则会覆盖上面的properties文件 HIBERNATE_HOME\hibernate-3.2\etc 日志记录文件 6、编写hibernate.cfg.xml文件: <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/数据库名称</property> <property name="hibernate.connection.username">用户</property> <property name="hibernate.connection.password">密码</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.show_sql">true</property> <!-- <property name="hibernate.format_sql">true</property> --> <mapping resource="com/test/User.hbm.xml"/> </session-factory> </hibernate-configuration> 7、编写user.hbm.xml等实体映射文件 <hibernate-mapping> <class name="com.test.User"> <id name="id"> <generator class="uuid"/> </id> <property name="name" column=”user_name”/> <property name="password"/> </class> </hibernate-mapping> 创建完映射文件之后,记得把hbm.xml文件添加到hibernate.cfg.xml文件中 <mapping resource="com/test/User.hbm.xml"/> (在session-factory标签里property标签后) 8、生成数据库 创建hibernate.cfg.xml中指定的数据库 可以使用SchemaExport生成相关表 Configuration cfg = new Configuration().configure(); SchemaExport export = new SchemaExport(cfg); export.create(true, true); 也可以在hibernate.cfg.xml中进行相关的配置使之自动生成 <property name="hibernate.hbm2ddl.auto">create</property>
第二步:Spring部分 1、 把spring相关的jar包复制到lib目录中 SPRING_HOME\dist\spring.jar spring核心jar包 SPRING_HOME \lib\log4j\log4j-1.2.14.jar 记录日志 SPRING_HOME \lib\jakarta-commons\commons-logging.jar 2、 在WEB-INF下建立applicationContext.xml a) 可从SPRING_HOME\ samples\jpetstore\war\WEB-INF\目录下拷贝applicationContext.xml 3、 提供log4j.properties配置文件 可从下面目录中拷贝: G:\software_programming\Java\SSH\spring\spring-framework-2.0.8-with-dependencies\spring-framework-2.0.8\samples\jpetstore\war\WEB-INF\ log4j.properties 4、把初始化Hibernate的SessionFactory借口交给spring管理 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> </bean> 注意:这里的数据库相关配置信息是写到了hibernate.cfg.xml文件中,也可以通过在spring配置jdbc datasource对数据库进行管理,然后通过datasource注入sessionFactory的方式来创建会话工厂 5、配置spring为hibernate配置的数据库访问操作的封装类hibernateTemplate <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory" /> </bean> 6、在applicationContext.xml文件中配置数据库的事务(也可以使用AOP进行配置) <!-- 事务拦截器bean需要依赖注入一个事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean>
<!-- 设置事务传播特性,对应于AOP中的 <tx:advice /> --> <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="transactionAttributes"> <props> <prop key="get*">PROPAGATION_REQUIRED, readOnly </prop> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <!-- 定义BeanNameAutoProxyCreator,配置哪些类和哪些方法使用事务对应于AOP中的 <aop:pointcut /> --> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <!-- 指定对满足哪些bean name的bean自动生成业务代理 --> <property name="beanNames"> <!-- 下面是所有需要自动创建事务代理的bean--> <list> <value>userDAO</value> <value>provinceDAO</value> <value>cityDAO</value> <value>sexDAO</value> <value>statusDAO</value> </list> <!-- 此处可增加其他需要自动创建事务代理的bean--> </property> <property name="interceptorNames"> <!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器--> <list> <value>transactionInterceptor</value> <!-- 此处可增加其他新的Interceptor --> </list> </property> </bean> 7、在applicationContext.xml中配置相关的数据访问层Dao,注意创建时要给spring提供一个借口,方便其代理 <bean id="userDAO" class="com.pzx.dao.UserDAOImpl"> <constructor-arg> <ref bean="hibernateTemplate" /> </constructor-arg> </bean> 8、在applicationContext.xml中配置相关的业务逻辑层Service,其构造函数中的参数指向器数据访问层bean <bean id="userService" class="net.blogjava.nokiaguy.kxw.service.UserServiceImpl"> <constructor-arg> <ref bean="userDAO" /> </constructor-arg> </bean>
第三步:struts部分 1、 建立界面原型 2、 建立struts.xml文件 可以从下面目录中拷贝 STRUTS_HOME/apps/struts2-blank-2.1.6/WEB-INF/src/java/struts.xml 确定namespace 确定package 确定Action的名称 确定Result 3、 把相关jar文件拷贝到项目中 STRUTS_HOME /apps/struts2-blank-2.1.6/WEB-INF/lib 目录下的相关jar文件 4、 配置web.xml文件 可以从 STRUTS_HOME /apps/struts2-blank-2.1.6/WEB-INF/web.xml文件中拷贝: <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter>
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 5、 在struts.xml中配置项拦截器 <interceptors> <interceptor-stack name="excludeParamsStack"> <interceptor-ref name="defaultStack"> <param name="params.excludeParams">ext-comp-.*</param> </interceptor-ref> </interceptor-stack> </interceptors> 6、 在struts.xml中配置相关的Action <action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}"> <result>/{1}_{2}_success.jsp</result> <!-- {0}_success.jsp --> </action> |
|
|