在本教程中,我们将在 Spring 中创建简单的 Web 应用。 创建了三个 Web 应用。 每个应用都以不同的方式配置。
在我们的 Spring Web 应用中,我们使用 Spring 5 和 Thymeleaf 3。
Spring 是流行的 Java 应用框架。 Spring Boot 致力于以最小的努力来创建独立的,生产级的基于 Spring 的应用。
有三种配置 Spring Web 应用的基本方法:
- XML 格式
- Java 配置
- Spring Boot 自动配置
传统上,Spring 使用 XML 文件来配置应用。 后来,创建了一种新方法,其中在 Java 配置类中完成配置。 Spring Boot 自动配置魔术是配置 Spring Web 应用的最新方法。
使用 XML 的 Spring Web 应用配置
在第一个示例中,我们创建一个以 XML 文件配置的 Spring Web 应用。
这是项目结构。
pom.xml
这是 Maven 构建文件。 我们具有以下依赖关系:slf4j-api
和slf4j-simple
用于日志记录,javax.servlet-api
用于 Java Servlet 技术,thymeleaf-spring5
和thymeleaf
用于 Thymeleaf 模板引擎,以及spring-webmvc
用于创建 Spring Web MVC 应用。
maven-war-plugin
创建 Web 存档(WAR)。
WEB-INF/spring-servlet.xml
spring-servlet.xml
配置 Spring Web 应用。 它启用组件扫描,Spring Web 注解(@Controller)并配置 Thymeleaf 模板。
这告诉 Spring 在哪里寻找带有@Controller
,@Repository
,@Service
,@Component
注解的类并进行注册。 在我们的例子中,我们有一个带有@Controller
注释的控制器。
<mvc:annotation-driven/>
启用基于 Web 的 Spring 注释。
我们需要此标记来启用静态 HTML 文件。 主页上有一个静态的index.html
。
这些行用模板引擎,模板视图解析器和模板解析器配置 Thymeleaf。 在模板解析器中,我们指定模板的位置及其扩展名。
WEB-INF/web.xml
在web.xml
文件中,我们设置了 Spring DispatcherServlet
并选择了欢迎文件。 DispatcherServlet
是 Spring 的前端控制器。 该 Servlet 映射到扩展名为*.html
的 URL。
com/zetcode/controller/HomeController.java
HTTP 请求由控制器处理。 它准备一个模型并返回一个视图。 返回的showMessage
字符串映射到位于WEB-INF/templates/
目录中的showMessage.html
文件。
WEB-INF/templates/showMessage.html
showMessage.html
文件显示一条消息。
index.html
index.html
是主页。 它包含一个链接。
使用 Java 配置进行 Spring Web 应用配置
在第二个示例中,我们创建一个在 Java config 类中配置的 Spring Web 应用。 在该示例中,web.xml
和spring-servlet.xml
被替换为MyWebInitializer.java
和WebConfig.java
。
这是项目结构。 pom.xml
文件与第一个示例中的相同。
com/zetcode/config/WebConfig.java
使用WebConfig.java
代替spring-servlet.xml
文件。 在WebConfig
中,我们使用@EnableWebMvc
启用 Spring Web 注解,使用@ComponentScan
启用组件扫描,并配置 Thymeleaf 模板引擎。
com/zetcode/config/MyWebInitializer.java
使用MyWebInitializer
类代替web.xml
文件。 我们指定 servlet 配置类的名称。
com/zetcode/controller/MyController.java
这是控制器。 我们有主页和 showMessage 页面的映射。
WEB-INF/templates/showMessage.html
showMessage.html
文件显示一条消息。
WEB-INF/templates/index.html
index.html
是主页。 它包含一个链接。
Spring Boot Web 应用
在第三个示例中,我们使用 Spring Boot 创建一个 Web 应用。 Spring Boot 使用另一种默认方法。 它通过嵌入式 Web 服务器使用 JAR 存档。
这是项目结构。
pom.xml
这是 Maven 构建文件。 spring-boot-starter-web
是使用 Spring MVC 构建 Web(包括 RESTful)应用的入门 POM。 spring-boot-starter-thymeleaf
是 Thymeleaf 模板引擎的启动器 POM。
请注意,包装设置为 JAR。
com/zetcode/controller/MyController.java
这是 Spring Boot Web 应用的控制器类。 控制器以@Controller
注释修饰。 控制器具有一个映射。 映射解析为showMessage.html
模板,该模板位于WEB-INF/templates
目录中。
Application.java
Application
设置 Spring Boot 应用。
WEB-INF/templates/showMessage.html
showMessage.html
显示一条简单消息。
WEB-INF/static/index.html
index.html
是包含链接的应用的主页。 静态资源(例如,纯 HTML 文件)被放入static
目录。
在本教程中,我们创建了第一个 Spring Web 应用。