juno搭建Struts2+Hibernate4+Spring3项目
2012-08-01 16:32
239 查看
2010年项目前端转为Flex后,已经2年没搞过SSH框架开发了,闲来没事,觉得还是熟悉熟悉下才行,所今天就抽了点时间搭建了改项目。
各框架版本号:
Struts:struts-2.3.4
Hibernate:hibernate-release-4.1.0.Final
Spring:spring-framework-3.1.1.RELEASE
平台:eclipse_juno(4.2)
结构如下:
web.xml
applicationContext.xml
struts.xml
UserAction.java
UserService.java
UserServiceImpl.java
UserDao.java
UserDaoImpl.java
User.java
User.hbm.xml
MySql
如需要源码的请下载。
各框架版本号:
Struts:struts-2.3.4
Hibernate:hibernate-release-4.1.0.Final
Spring:spring-framework-3.1.1.RELEASE
平台:eclipse_juno(4.2)
结构如下:
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>SSH</display-name> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </context-param> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/applicatonContext.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <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> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd "> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/> <property name="user" value="root"/> <property name="password" value="mysql"/> <property name="maxPoolSize" value="40"/> <property name="minPoolSize" value="1"/> <property name="initialPoolSize" value="1"/> <property name="maxIdleTime" value="20"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"> </property> <property name="mappingResources"> <list> <value>Entity/User.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="packagesToScan" value="Entity" /> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="update*" propagation="REQUIRED" read-only="false" /> <tx:method name="delete*" propagation="REQUIRED" read-only="false" /> <tx:method name="save*" propagation="REQUIRED" read-only="false" /> <tx:method name="*" propagation="SUPPORTS" read-only="true" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="ServiceMethods" expression="execution(* Service..*.*(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="ServiceMethods" /> </aop:config> <bean id="userDao" class="Dao.UserDaoImpl"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <bean id="userService" class="Service.UserServiceImpl"> <property name="userDao" ref="userDao"/> </bean> <bean id="userAction" class="Action.UserAction" scope="prototype"> <property name="userService" ref="userService"/> </bean> </beans>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> --> <package name="default" namespace="/" extends="struts-default"> <global-results> <result name="error">/error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="error"/> </global-exception-mappings> <action name="login" class="userAction"> <result name="input">/index.jsp</result> <result name="error">/index.jsp</result> <result name="success">/welcome.jsp</result> </action> </package> <!-- <package name="action" namespace="/Action" extends="struts-default"> </package> --> </struts>
UserAction.java
package Action; import Service.UserService; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { /** * */ private static final long serialVersionUID = 1L; private UserService userService; public UserService getUserService() { return userService; } public void setUserService(UserService userService) { this.userService = userService; } private String userName; private String userPass; private String userSex; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPass() { return userPass; } public void setUserPass(String userPass) { this.userPass = userPass; } public String getUserSex() { return userSex; } public void setUserSex(String userSex) { this.userSex = userSex; } @Override public String execute() throws Exception { if(!getUserName().equals("") && !getUserPass().equals("") && !getUserSex().equals("")){ ActionContext.getContext().getSession().put("user", getUserName()); userService.saveUser(getUserName(), getUserPass(), getUserSex(), 20); return SUCCESS; }else{ return ERROR; } } }
UserService.java
package Service; public interface UserService { void saveUser(String userName, String userPass, String userSex, int userAge); }
UserServiceImpl.java
package Service; import Dao.UserDao; import Entity.User; public class UserServiceImpl implements UserService { private UserDao userDao; public UserDao getUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; } @Override public void saveUser(String userName,String userPass,String userSex,int userAge){ User u = new User(); u.setUserName(userName); u.setUserPass(userPass); u.setUserSex(userSex); u.setUserAge(userAge); userDao.saveUser(u); u.setUserName(userName+"s"); u.setUserSex(null); userDao.saveUser(u); } }
UserDao.java
package Dao; import Entity.User; public interface UserDao { void saveUser(User u); }
UserDaoImpl.java
package Dao; import org.hibernate.Session; import org.hibernate.SessionFactory; import Entity.User; public class UserDaoImpl implements UserDao { private SessionFactory sessionFactory; public SessionFactory getSessionFactory() { return sessionFactory; } public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public Session getSession() { return sessionFactory.getCurrentSession(); } @Override public void saveUser(User u){ getSession().save(u); } }
User.java
package Entity; import java.io.Serializable; public class User implements Serializable { /** * */ private static final long serialVersionUID = 1L; private int id; private String userName; private String userPass; private String userSex; private int userAge; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPass() { return userPass; } public void setUserPass(String userPass) { this.userPass = userPass; } public String getUserSex() { return userSex; } public void setUserSex(String userSex) { this.userSex = userSex; } public int getUserAge() { return userAge; } public void setUserAge(int userAge) { this.userAge = userAge; } public User(int id, String userName, String userPass, String userSex, int userAge) { super(); this.id = id; this.userName = userName; this.userPass = userPass; this.userSex = userSex; this.userAge = userAge; } public User() { super(); } }
User.hbm.xml
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.jboss.org/dtd/hibernate/hibernate-mapping-3.0.dtd"> <!-- Hibernate映射文件的根元素 --> <hibernate-mapping package="Entity"> <class name="User" table="User"> <!-- 映射标识属性 --> <id name="id" type="integer" column="id"> <!-- 指定使用identity主键生成策略 --> <generator class="identity"/> </id> <!-- 映射普通属性 --> <property name="userName" /> <property name="userPass" /> <property name="userSex" /> <property name="userAge" /> </class> </hibernate-mapping>
MySql
/* Navicat MySQL Data Transfer Source Server : MySql Source Server Version : 50522 Source Host : localhost:3306 Source Database : test Target Server Type : MYSQL Target Server Version : 50522 File Encoding : 65001 Date: 2012-07-30 21:24:07 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `user` -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `userName` varchar(50) NOT NULL DEFAULT '', `userPass` varchar(50) DEFAULT NULL, `userAge` int(11) DEFAULT NULL, `userSex` bit(1) DEFAULT NULL, `userAddress` varchar(50) DEFAULT NULL, `userPhone` varchar(20) DEFAULT NULL, PRIMARY KEY (`userName`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES ('Luck', 'Luck', '23', ' ', 'chengdu', '13683903943'); INSERT INTO `user` VALUES ('Neal', 'Neal', '32', '', '32', '15080348032'); INSERT INTO `user` VALUES ('Tom', 'Tom', '27', '', 'chengdu', '13509873421');
运行测试通过。
如需要源码的请下载。
相关文章推荐
- struts2+hibernate4+spring3+maven搭建项目:简单账务管理系统第四篇:action层和jsp表现层
- struts2+hibernate4+spring3+maven搭建项目:简单账务管理系统(从头至尾,不断更新)
- struts2+hibernate4+spring3+maven搭建项目:简单账务管理系统第二篇:struts+spring搭建
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)开发项目
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- 使用Maven实现Struts2+Hibernate4+Spring3整合SSH框架(一):Maven项目创建
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven实现Struts2+Hibernate4+Spring3整合SSH框架(三):将项目上传Github
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境