学过Java的都知道SSH,也就是Struts、Spring和Hibernate。其中Struts是一个Web MVC框架,Hibernate是ORM框架,Spring是一组框架。不过由于Struts设计较早,其中有些设计已经过时了,框架漏洞也比较多。而且Struts的编写也不方便(例如控制器必须继承Controller类),所以现在Struts用的比较少了。现在更加常用的Web MVC框架是Spring Web MVC。所以我们今天就来介绍一下它。
新建项目
首先要做的就是搭建环境。我们需要新建一个Java Web项目,可以直接新建一个项目,也可以使用Maven或Gradle这样的构建工具。在这里我用的是Gradle和IDEA。首先使用IDEA新建一个Gradle项目,在新建时选择Java和Web两个选项。然后点击完成。稍等片刻就会生成一个Gradle项目。然后我们打开build.gradle
,然后修改为如下的样子。
group 'yitian.learn'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'war'
apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin'
sourceCompatibility = 1.8
repositories {
jcenter()
}
ext {
springVersion = '4.3.6.RELEASE'
thymeleafVersion = '3.0.3.RELEASE'
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile group: 'org.springframework', name: 'spring-webmvc', version: springVersion
compile group: 'javax.servlet.jsp.jstl', name: 'javax.servlet.jsp.jstl-api', version: '1.2.1'
compile group: 'org.glassfish.web', name: 'jstl-impl', version: '1.2'
}
稍等片刻,等待IDEA更新项目配置。完毕之后,我们查看一下项目的依赖,可以发现已经添加了所需的Spring依赖项,Spring依赖注入、事务管理、面向切面编程等依赖都已添加,非常方便。
配置Spring
我们可以根据需要配置一个或多个ApplicationContext,常见的做法是配置一个根ApplicationContext和一个前端ApplicationContext。前端ApplicationContext定义网络相关的配置,根ApplicationContext配置数据库等网络无关的组件。这样的话就需要web.xml
写成类似这样的。
<?xml version="1.0" encoding="UTF-8"?>
<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">
<context-param>
&