引言
SSH(Struts2 + Spring + Hibernate)框架是一种流行的Java企业级开发框架,它将Web开发中的前端控制器(MVC模式中的Controller)、业务逻辑层(Service层)和数据访问层(DAO层)进行了清晰的划分。本文将详细指导您如何轻松搭建SSH框架环境,帮助您开启高效的开发之旅。
准备工作
在开始搭建SSH框架环境之前,您需要准备以下软件和工具:
- JDK 1.7及以上版本
- Eclipse IDE或任何您熟悉的Java开发工具
- MySQL数据库
- Maven(可选,用于项目管理和依赖管理)
步骤一:创建Maven项目
- 打开Eclipse,选择“File” > “New” > “Maven Project”。
- 在“Group Id”和“Artifact Id”中输入项目的组织标识符和项目名称。
- 点击“Finish”完成创建。
步骤二:添加SSH框架依赖
- 打开项目根目录下的
pom.xml文件。 - 在
<dependencies>标签内添加以下依赖:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.16</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.10</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.10</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.3.10</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.5.7.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
- 保存
pom.xml文件。
步骤三:配置数据库连接
- 在项目根目录下创建一个名为
db.properties的文件。 - 在
db.properties文件中配置数据库连接信息:
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC
jdbc.username=root
jdbc.password=your_password
- 在项目根目录下创建一个名为
applicationContext.xml的文件。 - 在
applicationContext.xml文件中配置数据源、事务管理器和SessionFactory:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location="db.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
</beans>
- 保存
applicationContext.xml文件。
步骤四:创建SSH框架结构
在项目根目录下创建以下目录:
src/main/javasrc/main/java/com/yourcompanysrc/main/java/com/yourcompany/daosrc/main/java/com/yourcompany/servicesrc/main/java/com/yourcompany/actionsrc/main/webappsrc/main/webapp/WEB-INFsrc/main/webapp/WEB-INF/web.xmlsrc/main/webapp/WEB-INF/classessrc/main/webapp/WEB-INF/lib
在
src/main/webapp/WEB-INF/web.xml文件中配置Struts2和Spring:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>struts2</servlet-name>
<servlet-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>struts2</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
- 保存
web.xml文件。
步骤五:编写代码
- 在
src/main/java/com/yourcompany/dao目录下创建一个名为UserDao的接口:
package com.yourcompany.dao;
import com.yourcompany.entity.User;
public interface UserDao {
void save(User user);
void update(User user);
void delete(User user);
User findUserById(Integer id);
}
- 在
src/main/java/com/yourcompany/service目录下创建一个名为UserService的接口:
package com.yourcompany.service;
import com.yourcompany.entity.User;
public interface UserService {
void saveUser(User user);
void updateUser(User user);
void deleteUser(User user);
User findUserById(Integer id);
}
- 在
src/main/java/com/yourcompany/service目录下创建一个名为UserServiceImpl的类,实现UserService接口:
package com.yourcompany.service;
import com.yourcompany.dao.UserDao;
import com.yourcompany.entity.User;
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void saveUser(User user) {
userDao.save(user);
}
@Override
public void updateUser(User user) {
userDao.update(user);
}
@Override
public void deleteUser(User user) {
userDao.delete(user);
}
@Override
public User findUserById(Integer id) {
return userDao.findUserById(id);
}
}
- 在
src/main/java/com/yourcompany/action目录下创建一个名为UserAction的类,实现Struts2的Action接口:
package com.yourcompany.action;
import com.yourcompany.entity.User;
import com.yourcompany.service.UserService;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private User user;
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String save() {
userService.saveUser(user);
return "success";
}
public String update() {
userService.updateUser(user);
return "success";
}
public String delete() {
userService.deleteUser(user);
return "success";
}
public String find() {
User user = userService.findUserById(user.getId());
if (user != null) {
return "success";
} else {
return "error";
}
}
}
- 在
src/main/webapp/WEB-INF/classes目录下创建一个名为struts.xml的文件,配置Struts2的Action:
<struts>
<package name="default" extends="struts-default">
<action name="user" class="com.yourcompany.action.UserAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
- 保存
struts.xml文件。
步骤六:创建JSP页面
- 在
src/main/webapp目录下创建一个名为success.jsp的JSP页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Success</title>
</head>
<body>
<h1>操作成功!</h1>
</body>
</html>
- 在
src/main/webapp目录下创建一个名为error.jsp的JSP页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Error</title>
</head>
<body>
<h1>操作失败!</h1>
</body>
</html>
- 保存JSP页面。
步骤七:运行项目
- 打开Eclipse,右键点击项目,选择“Run As” > “Maven Build”。
- Maven会自动下载依赖并编译项目。
- 打开浏览器,访问
http://localhost:8080/your_project_name/user,您将看到操作成功的页面。
总结
通过以上步骤,您已经成功搭建了SSH框架环境。接下来,您可以开始使用SSH框架进行高效开发了。在开发过程中,您可以根据实际需求修改和扩展框架结构,以适应不同的项目需求。祝您开发愉快!
