SSH的框架一度在JAVA企业应用中占有很高的比例,几年前也用SSH做过一些网站及应用服务接口相关的项目。最近在整理一些之前的工作,所以简单回顾一下。用下面的例子算是做个学习笔记吧。
1. 引言
每种框架都有其自身的优势和不足,这和框架本身的设计初衷以及后来的发展,包括社区支持等等各种因素相关。Anyway,现在越来越多的人认同Spring似乎提供了更好和更广的功能性选择。不过还是有一些因素,导致需要去学习或者使用Struts,比如:
1)你所在公司的一些老项目是使用Struts开发的,很不幸,你需要去维护他们
2)其他一些因素,你需要学习,比如架构选择的需要,或者和其他系统的对接等需要
3)或者你如果应聘一个架构师或者高级开发的岗位,常常有人会问你,讲讲struts 和 Spring的区别吧。。。
2. 设置基础环境
1)安装JDK,这是PATH
2)安装应用服务器,如Tomcat
3)安装构建工具,如 Maven
4)在IDE(如Eclipse或IDEA)的偏好设置中,设置应用服务器和构建工具的路径
5)设置示例程序所需的数据库,如
CREATE DATABASE `leedb`;
CREATE TABLE `product` (
`product_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(128) NOT NULL,
`description` varchar(512) NOT NULL,
`price` float NOT NULL,
PRIMARY KEY (`product_id`)
)
3. 使用构建工具添加相关依赖
1)创建一个 MAVEN web-app 类型项目
2)在 pom.xml 中添加如下内容
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.leelei</groupId>
<artifactId>SSHDemo</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>SSHDemo</name>
<properties>
<java-version>1.8</java-version>
<org.springframework-version>4.1.6.RELEASE</org.springframework-version>
<org.strutsframework-version>2.3.20</org.strutsframework-version>
<org.hibernateframework-version>4.3.8.Final</org.hibernateframework-version>
<org.mysqlconnector-version>5.1.34</org.mysqlconnector-version>
</properties>
<dependencies>
<!-- Spring framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework-version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<!-- Struts2 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${org.strutsframework-version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-s