0. 主要jar包
antlr-2.7.6.jar
aspectjrt.jar
aspectjweaver.jar
cglib-nodep-2.1_3.jar
common-annotations.jar
commons-collections-3.1.jar
commons-dbcp.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-logging-1.1.jar
commons-logging.jar
commons-pool.jar
dom4j-1.6.1.jar
ejb3-persistence.jar
freemarker-2.3.13.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
hibernate3.jar
javassist-3.9.0.GA.jar
jta-1.1.jar
log4j-1.2.15.jar
mysql-connector-java-3.1.13-bin.jar
ognl-2.6.11.jar
slf4j-api-1.5.8.jar
slf4j-log4j12-1.5.8.jar
spring.jar
struts2-core-2.1.6.jar
struts2-spring-plugin-2.1.6.jar
xwork-2.1.2.jar
1. Web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 添加struts2和spring整合的监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> <!-- default: /WEB-INF/applicationContext.xml --> </listener> <!-- 配置struts2 读取spring配置文件的位置,默认是去WEB-INF目录下找名为applicationContext.xml的文件 可以通过下面的标签“context-param”设置位置,classpath:beans.xml 标识类路径下的beans.xml文件 --> <context-param> <param-name>contextConfigLocation</param-name> <!-- <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value> <param-value>classpath:beans.xml</param-value> </context-param> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteF </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern> private static final long serialVersionUID = 1L; private int id; private String username; private String password; private String password2; private UserManager userManager; public UserManager getUserManager() { return userManager; } @Resource(name="userManagerImpl") public void setUserManager(UserManager userManager) { this.userManager = userManager; } @Override public String execute() throws Exception { User user = new User(); user.setUsername(username); user.setPassword(password); if (userManager.exists(user)) return "fail"; userManager.insertOneUser(user); return "success"; } public int getId() { return id; } public String getPassword2() { return password2; } public void setPassword2(String password2) { this.password2 = password2; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } |
4. UserManagerImpl.java
package com.edu.ssh.service.impl; import javax.annotation.Resource; import org.springframework.stereotype.Component; import com.edu.ssh.dao.UserDAO; import com.edu.ssh.model.User; import com.edu.ssh.service.UserManager; // 用Component注解,使得本类交给spring容器管理, // 并且指定bean的名字为userManagerImpl @Component("userManagerImpl") public class UserManagerImpl implements UserManager { private UserDAO userDAO; public UserDAO getUserDAO() { return userDAO; } // 使用spring依赖注入 @Resource public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } public boolean exists(User user) { return userDAO.checkUserExistsWithName(user.getUsername()); } public void insertOneUser(User user) { userDAO.save(user); } } |
5. 结果
|
|
在SSH里spring主要的功能是管理几乎所有的bean,实例化程序所有配置好的bean。有了spring Hibernate的所有配置都移到了spring的配置文件里,但是struts2的配置文件还是要单独配置。spring主要是管理程序的事务管理,是使用AOP实现的。
这是一篇用图形界面整合SSH的文章
http://bbx16899.blog.163.com/blog/static/171468589201131122311381
http://www.cnblogs.com/kaka-bing/archive/2012/03/27/2419328.html