码迷,mamicode.com
首页 > 编程语言 > 详细

Struts2.3.4.1 + Spring3.1.2 + Hibernate4.1.6整合

时间:2016-04-18 09:53:57      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:

1. Jar包 
2. web.xml配置 
3. struts.xml配置 
4. hibernate.cfg.xml配置 
5. applicationContext.xml配置 
6. log4j.properties配置 
7. Dao层 
8. Service层 
9. Action层 

1. Jar包 
1) Struts 2.3.4.1 
下载地址:http://struts.apache.org/download 
Java代码  技术分享
  1. /lib/commons-fileupload-1.2.2.jar  
  2. /lib/commons-io-2.0.1.jar  
  3. /lib/commons-lang3-3.1.jar  
  4. /lib/freemarker-2.3.19.jar  
  5. /lib/javassist-3.11.0.GA.jar  
  6. /lib/ognl-3.0.5.jar  
  7. /lib/struts2-core-2.3.4.1.jar  
  8. /lib/struts2-spring-plugin-2.3.4.1.jar  
  9. /lib/xwork-core-2.3.4.1.jar  

2) Spring 3.1.2 
下载地址:http://www.springsource.org/download 
Java代码  技术分享
  1. /dist/*  

3) Hibernate 4.1.6 
下载地址:http://sourceforge.net/projects/hibernate/files/hibernate4 
Java代码  技术分享
  1. /lib/required/*  
  2. /lib/envers/hibernate-envers-4.1.6.Final.jar  
  3. /lib/jpa/hibernate-entitymanager-4.1.6.Final.jar  
  4. /lib/optional/c3p0/c3p0-0.9.1.jar  
  5. /lib/optional/c3p0/hibernate-c3p0-4.1.6.Final.jar  

4) Aopalliance 1.0 
下载地址:http://sourceforge.net/projects/aopalliance 
Java代码  技术分享
  1. aopalliance.jar  

5) Aspectj 1.7.0 
下载地址:http://www.eclipse.org/aspectj/downloads.php 
Java代码  技术分享
  1. aspectjrt.jar  
  2. aspectjweaver.jar  

6) Cglib 2.2.3 
下载地址:http://sourceforge.net/projects/cglib/files 
Java代码  技术分享
  1. cglib-2.2.3.jar  

7) Asm 3.3 
下载地址:http://forge.ow2.org/projects/asm 
Java代码  技术分享
  1. asm-3.3.jar  

8) Log4j 1.2.17 
下载地址:http://logging.apache.org/log4j/1.2/download.html 
Java代码  技术分享
  1. log4j-1.2.17.jar  

9) MySQL Connector Java 5.1.21 
下载地址:http://dev.mysql.com/downloads/connector/j 
Java代码  技术分享
  1. mysql-connector-java-5.1.21-bin.jar  

10)Commons Logging 1.1.1 
下载地址:http://commons.apache.org/logging 
Java代码  技术分享
  1. commons-logging-1.1.1.jar  

2. web.xml配置 
Xml代码  技术分享
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns="http://java.sun.com/xml/ns/javaee"       
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
  6.     version="3.0">  
  7.   
  8.     <!-- Welcome File List -->  
  9.     <welcome-file-list>  
  10.         <welcome-file>login.html</welcome-file>  
  11.     </welcome-file-list>  
  12.   
  13.     <!-- WebApp Root -->  
  14.     <context-param>  
  15.         <param-name>webAppRootKey</param-name>  
  16.         <param-value>webapp.root</param-value>  
  17.     </context-param>  
  18.   
  19.     <!-- Spring Encoding Filter -->  
  20.     <filter>  
  21.         <filter-name>encodingFilter</filter-name>  
  22.         <filter-class>  
  23.             org.springframework.web.filter.CharacterEncodingFilter  
  24.         </filter-class>  
  25.         <init-param>  
  26.             <param-name>encoding</param-name>  
  27.             <param-value>UTF-8</param-value>  
  28.         </init-param>  
  29.     </filter>  
  30.   
  31.     <!-- Spring Encoding Filter Mapping -->  
  32.     <filter-mapping>  
  33.         <filter-name>encodingFilter</filter-name>  
  34.         <url-pattern>/*</url-pattern>  
  35.     </filter-mapping>  
  36.   
  37.   
  38.     <!-- Struts2 Filter -->  
  39.     <filter>  
  40.         <filter-name>struts2</filter-name>  
  41.         <filter-class>  
  42.             org.apache.struts2.dispatcher.ng.filter.  
  43.                 StrutsPrepareAndExecuteFilter  
  44.         </filter-class>  
  45.     </filter>  
  46.   
  47.     <!-- Struts2 Filter Mapping -->  
  48.     <filter-mapping>  
  49.         <filter-name>struts2</filter-name>  
  50.         <url-pattern>/*</url-pattern>  
  51.     </filter-mapping>  
  52.   
  53.     <!-- Log4j ConfigurationFile Location -->  
  54.     <context-param>  
  55.         <param-name>log4jConfigLocation</param-name>  
  56.         <param-value>classpath:log4j.properties</param-value>  
  57.     </context-param>  
  58.   
  59.     <!-- Spring Log4j Listener -->  
  60.     <listener>  
  61.         <listener-class>  
  62.             org.springframework.web.util.Log4jConfigListener  
  63.         </listener-class>  
  64.     </listener>  
  65.   
  66.     <!-- Spring ConfigurationFile Location -->  
  67.     <context-param>  
  68.         <param-name>contextConfigLocation</param-name>  
  69.         <param-value>classpath:applicationContext.xml</param-value>  
  70.     </context-param>  
  71.   
  72.     <!-- Spring Context Listener -->  
  73.     <listener>  
  74.         <listener-class>  
  75.             org.springframework.web.context.ContextLoaderListener  
  76.         </listener-class>  
  77.     </listener>  
  78.   
  79.     <!-- Spring Web Request Listener -->  
  80.     <listener>  
  81.         <listener-class>  
  82.             org.springframework.web.context.request.RequestContextListener  
  83.         </listener-class>  
  84.     </listener>  
  85.   
  86.     <!-- Spring Introspector Cleanup Listener -->  
  87.     <listener>  
  88.         <listener-class>  
  89.             org.springframework.web.util.IntrospectorCleanupListener  
  90.         </listener-class>  
  91.     </listener>  
  92.   
  93. </web-app>  

3. struts.xml配置 
Xml代码  技术分享
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.3.dtd">  
  5.   
  6. <struts>  
  7.   
  8.     <constant name="struts.devMode" value="false" />  
  9.     <constant name="struts.i18n.encoding" value="UTF-8" />  
  10.   
  11.     <package name="default" namespace="/" extends="struts-default">  
  12.   
  13.         <action name="login" method="login" class="loginAction">  
  14.             <result name="input">/login.html</result>  
  15.             <result name="success">/home.jsp</result>  
  16.         </action>  
  17.   
  18.     </package>  
  19.   
  20. </struts>  

4. hibernate.cfg.xml配置 
Xml代码  技术分享
  1. <?xml version=‘1.0‘ encoding=‘UTF-8‘?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC  
  3.     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4.     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">  
  5.   
  6. <hibernate-configuration>  
  7.   
  8.     <session-factory>  
  9.         <property name="dialect">  
  10.             org.hibernate.dialect.MySQLDialect  
  11.         </property>  
  12.   
  13.         <property name="show_sql">true</property>  
  14.         <property name="format_sql">true</property>  
  15.         <property name="hbm2ddl.auto">update</property>  
  16.   
  17.         <mapping class="com.txazo.domain.User" />  
  18.     </session-factory>  
  19.   
  20. </hibernate-configuration>  

5. applicationContext.xml配置 
Xml代码  技术分享
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <beans xmlns="http://www.springframework.org/schema/beans"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       
  5.     xmlns:p="http://www.springframework.org/schema/p"  
  6.     xmlns:context="http://www.springframework.org/schema/context"   
  7.     xmlns:tx="http://www.springframework.org/schema/tx"  
  8.     xmlns:aop="http://www.springframework.org/schema/aop"  
  9.     xsi:schemaLocation="  
  10.             http://www.springframework.org/schema/beans    
  11.             http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
  12.             http://www.springframework.org/schema/aop    
  13.             http://www.springframework.org/schema/aop/spring-aop-3.1.xsd    
  14.             http://www.springframework.org/schema/tx    
  15.             http://www.springframework.org/schema/tx/spring-tx-3.1.xsd    
  16.             http://www.springframework.org/schema/context    
  17.             http://www.springframework.org/schema/context/  
  18.                 spring-context-3.1.xsd">  
  19.   
  20.     <!-- DataSource -->  
  21.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  
  22.         destroy-method="close">  
  23.         <property name="driverClass" value="com.mysql.jdbc.Driver" />  
  24.         <property name="jdbcUrl"   
  25.             value="jdbc:mysql://127.0.0.1:3306/txazo" />  
  26.         <property name="user" value="root" />  
  27.         <property name="password" value="root" />  
  28.     </bean>  
  29.   
  30.     <!-- SessionFactory -->  
  31.     <bean id="sessionFactory"  
  32.         class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"  
  33.         p:dataSource-ref="dataSource"    
  34.         p:configLocation="classpath:hibernate.cfg.xml" />  
  35.   
  36.     <!-- TransactionManager -->  
  37.     <bean id="transactionManager"  
  38.         class="org.springframework.orm.hibernate4.HibernateTransactionManager"  
  39.         p:sessionFactory-ref="sessionFactory" />  
  40.   
  41.     <!-- Spring Advice -->  
  42.     <tx:advice id="txAdvice" transaction-manager="transactionManager">  
  43.         <tx:attributes>  
  44.             <tx:method name="get*" read-only="true"></tx:method>  
  45.             <tx:method name="*"></tx:method>  
  46.         </tx:attributes>  
  47.     </tx:advice>  
  48.   
  49.     <!-- Spring Aop Config -->  
  50.     <aop:config>  
  51.         <aop:pointcut id="pointcut"  
  52.             expression="  
  53.                 execution(* com.txazo.service.impl.*Impl.*(..))" />  
  54.         <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut" />  
  55.     </aop:config>  
  56.   
  57.     <!-- Dao -->  
  58.     <bean id="baseDao" class="com.txazo.dao.impl.BaseDaoImpl">  
  59.         <property name="sessionFactory">  
  60.             <ref bean="sessionFactory" />  
  61.         </property>  
  62.     </bean>  
  63.   
  64.     <!-- Service -->  
  65.     <bean id="userService" class="com.txazo.service.impl.UserServiceImpl">  
  66.         <property name="baseDao">  
  67.             <ref bean="baseDao" />  
  68.         </property>  
  69.     </bean>  
  70.   
  71.     <!-- Action -->  
  72.     <bean id="loginAction" class="com.txazo.action.LoginAction"    
  73.         scope="session">  
  74.         <property name="userService">  
  75.             <ref bean="userService" />  
  76.         </property>  
  77.     </bean>  
  78.   
  79. </beans>  

6. log4j.properties配置 
Xml代码  技术分享
  1. # Set The RootLogger  
  2. log4j.rootLogger=warn, console  
  3.   
  4. # Direct Log Messages To Console  
  5. log4j.appender.console=org.apache.log4j.ConsoleAppender  
  6. log4j.appender.console.Target=System.out  
  7. log4j.appender.console.layout=org.apache.log4j.PatternLayout  
  8. log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %c:%L - %m%n  
  9.   
  10. # Log Hibernate  
  11. log4j.logger.org.hibernate=error  
  12.   
  13. # Log Just The SQL  
  14. log4j.logger.org.hibernate.SQL=debug  
  15.   
  16. # Log Schema Export Update  
  17. log4j.logger.org.hibernate.tool.hbm2ddl=debug  

7. Dao层 
Java代码  技术分享
  1. public interface BaseDao {  
  2.   
  3.     public <T> void save(T t);  
  4.   
  5.     public <T> void delete(T t);  
  6.   
  7.     public <T> void delete(Class<T> entityClass, Integer id);  
  8.   
  9.     public <T> void update(T t);  
  10.   
  11.     public <T> T get(Class<T> entityClass, Integer id);  
  12.   
  13.     public <T> List<T> findAll(String hql, Class<T> entityClass);  
  14.   
  15.     public <T> List<T> findAll(String hql, Class<T> entityClass,   
  16.             Object param);  
  17.   
  18.     public <T> List<T> findAll(String hql, Class<T> entityClass,   
  19.             Object[] params);  
  20.   
  21.     public <T> List<T> findByPage(final String hql, final Class<T>   
  22.             entityClass, final int firstResult, final int maxResult);  
  23.   
  24.     public <T> List<T> findByPage(final String hql, final Class<T>   
  25.             entityClass, final Object param, final int firstResult,   
  26.             final int maxResult);  
  27.   
  28.     public <T> List<T> findByPage(final String hql, final Class<T>           
  29.             entityClass, final Object[] params,  
  30.             final int firstResult, final int maxResult);  
  31.   
  32. }  

Java代码  技术分享
  1. public class BaseDaoImpl implements BaseDao {  
  2.   
  3.     private SessionFactory sessionFactory;  
  4.   
  5.     public void setSessionFactory(SessionFactory sessionFactory) {  
  6.         this.sessionFactory = sessionFactory;  
  7.     }  
  8.   
  9.     public Session getSession() {  
  10.         return sessionFactory.getCurrentSession();  
  11.     }  
  12.   
  13.     @Override  
  14.     public <T> void save(T t) {  
  15.         getSession().save(t);  
  16.     }  
  17.   
  18.     @Override  
  19.     public <T> void delete(T t) {  
  20.         getSession().delete(t);  
  21.     }  
  22.   
  23.     @Override  
  24.     public <T> void delete(Class<T> entityClass, Integer id) {  
  25.         getSession().delete(get(entityClass, id));  
  26.     }  
  27.   
  28.     @Override  
  29.     public <T> void update(T t) {  
  30.         getSession().update(t);  
  31.     }  
  32.   
  33.     @Override  
  34.     public <T> T get(Class<T> entityClass, Integer id) {  
  35.         return (T) getSession().get(entityClass, id);  
  36.     }  
  37.   
  38.     @Override  
  39.     public <T> List<T> findAll(String hql, Class<T> entityClass) {  
  40.         return findAll(hql, entityClass, new Object[] {});  
  41.     }  
  42.   
  43.     @Override  
  44.     public <T> List<T> findAll(String hql, Class<T> entityClass, Object param) {  
  45.         return findAll(hql, entityClass, new Object[] { param });  
  46.     }  
  47.   
  48.     @Override  
  49.     public <T> List<T> findAll(String hql, Class<T> entityClass,   
  50.             Object[] params) {  
  51.         Query query = getSession().createQuery(hql);  
  52.         for (int i = 0; i < params.length; i++) {  
  53.             query.setParameter(i, params[i]);  
  54.         }  
  55.         return (List<T>) query.list();  
  56.     }  
  57.   
  58.     @Override  
  59.     public <T> List<T> findByPage(final String hql, Class<T> entityClass,  
  60.             final int firstResult, final int maxResult) {  
  61.         return findByPage(hql, entityClass, new Object[] {}, firstResult,  
  62.                 maxResult);  
  63.     }  
  64.   
  65.     @Override  
  66.     public <T> List<T> findByPage(final String hql, Class<T> entityClass,  
  67.             final Object param, final int firstResult, final int maxResult) {  
  68.         return findByPage(hql, entityClass, new Object[] { param },  
  69.                 firstResult, maxResult);  
  70.     }  
  71.   
  72.     @Override  
  73.     public <T> List<T> findByPage(final String hql, Class<T>     
  74.             entityClass, final Object[] params, final int firstResult,   
  75.             final int maxResult) {  
  76.         Query query = getSession().createQuery(hql);  
  77.         for (int i = 0; i < params.length; i++) {  
  78.             query.setParameter(i, params[i]);  
  79.         }  
  80.         query.setFirstResult(firstResult);  
  81.         query.setMaxResults(maxResult);  
  82.         return (List<T>) query.list();  
  83.     }  
  84.   
  85. }  

8. Service层 
Java代码  技术分享
  1. public interface UserService {  
  2.   
  3.     public User login(User user);  
  4.   
  5. }  

Java代码  技术分享
  1. public class UserServiceImpl implements UserService {  
  2.   
  3.     private BaseDao baseDao;  
  4.   
  5.     public void setBaseDao(BaseDao baseDao) {  
  6.         this.baseDao = baseDao;  
  7.     }  
  8.   
  9.     @Override  
  10.     public User login(User user) {  
  11.         List<User> list = baseDao.findAll(  
  12.                 "from User where username = ? and password = ?", User.class,  
  13.                 new Object[] { user.getUsername(), user.getPassword() });  
  14.         if (list.size() == 1) {  
  15.             return list.get(0);  
  16.         }  
  17.         return null;  
  18.     }  
  19.   
  20. }  

9. Action层 
Java代码  技术分享
  1. public class ActionBase extends ActionSupport implements RequestAware,  
  2.         SessionAware, ApplicationAware {  
  3.   
  4.     private static final long serialVersionUID = 1L;  
  5.   
  6.     protected Map<String, Object> request;  
  7.     protected Map<String, Object> session;  
  8.     protected Map<String, Object> application;  
  9.   
  10.     public Map<String, Object> getRequest() {  
  11.         return request;  
  12.     }  
  13.   
  14.     public Map<String, Object> getSession() {  
  15.         return session;  
  16.     }  
  17.   
  18.     public Map<String, Object> getApplication() {  
  19.         return application;  
  20.     }  
  21.   
  22.     @Override  
  23.     public void setRequest(Map<String, Object> request) {  
  24.         this.request = request;  
  25.     }  
  26.   
  27.     @Override  
  28.     public void setSession(Map<String, Object> session) {  
  29.         this.session = session;  
  30.     }  
  31.   
  32.     @Override  
  33.     public void setApplication(Map<String, Object> application) {  
  34.         this.application = application;  
  35.     }  
  36.   
  37. }  

Java代码  技术分享
  1. public class LoginAction extends ActionBase {  
  2.   
  3.     private static final long serialVersionUID = 1L;  
  4.   
  5.     private String username;  
  6.     private String password;  
  7.   
  8.     private UserService userService;  
  9.   
  10.     public void setUserService(UserService userService) {  
  11.         this.userService = userService;  
  12.     }  
  13.   
  14.     public String login() throws Exception {  
  15.         User user = new User(username, password);  
  16.         User login = userService.login(user);  
  17.         if (login != null) {  
  18.             session.put("user", login);  
  19.             return SUCCESS;  
  20.         }  
  21.         return INPUT;  
  22.     }  
  23.   
  24.     public String getUsername() {  
  25.         return username;  
  26.     }  
  27.   
  28.     public void setUsername(String username) {  
  29.         this.username = username;  
  30.     }  
  31.   
  32.     public String getPassword() {  
  33.         return password;  
  34.     }  
  35.   
  36.     public void setPassword(String password) {  
  37.         this.password = password;  
  38.     }  
  39.   
  40. }  

相关Jar包下载如下:

Struts2.3.4.1 + Spring3.1.2 + Hibernate4.1.6整合

标签:

原文地址:http://www.cnblogs.com/love540376/p/5403172.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!