zoukankan      html  css  js  c++  java
  • Struts2.3.4.1 + Spring3.1.2 + Hibernate4.1.6整合

    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包下载如下:
  • 相关阅读:
    STM32学习之路-SysTick的应用(时间延迟)
    STM32M CUBE实现printf打印调试信息以及实现单字节接收
    iframe动态创建及释放内存
    第13周项目2-成绩处理
    1036. Boys vs Girls (25)
    CS0433: 类型“BasePage”同一时候存在于“c:WindowsMicrosoft.NETxxxxxxxxxxxxxxxx
    Java读取Excel转换成JSON字符串进而转换成Java对象
    Java对象与JSON互相转换jsonlib以及手动创建JSON对象与数组——(二)
    GSON中Java对象与JSON互相转换——(一)
    Java泛型方法与泛型类的使用------------(五)
  • 原文地址:https://www.cnblogs.com/telwanggs/p/5403172.html
Copyright © 2011-2022 走看看