web.xml SpringBoot打包可执行Jar运行SpringMVC加载流程
在 SpringBoot 中,我们可以使用可执行 Jar 包来运行我们的应用程序。本文将详细讲解如何使用 web.xml 文件来配置 SpringMVC,并将其打包为可执行 Jar 包。
1. 创建 SpringBoot 项目
首先,我们需要创建一个 SpringBoot 项目。可以使用 Spring Initializr 来创建一个基本的 SpringBoot 项目。在创建项目时,我们需要选择 Web 和 Thymeleaf 依赖。
2. 添加 web.xml 文件
在 src/main/webapp/WEB-INF 目录下创建 web.xml 文件,并添加以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" 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">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
在上面的代码中,我们定义了一个 context-param 元素,用于指定 Spring 的配置文件路径。我们还定义了一个 listener 元素,用于加载 Spring 的配置文件。最后,我们定义了一个 servlet 元素,用于处理所有的 HTTP 请求,并将其映射到根路径。
3. 添加 Spring 配置文件
在 src/main/webapp/WEB-INF 目录下创建 applicationContext.xml 文件,并添加以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<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-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<context:component-scan base-package="com.example.demo"/>
</beans>
在上面的代码中,我们使用 context:component-scan 元素来扫描 com.example.demo 包中的所有组件。
在 src/main/webapp/WEB-INF 目录下创建 dispatcher-servlet.xml 文件,并添加以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<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"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
<context:component-scan base-package="com.example.demo"/>
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".html"/>
</bean>
</beans>
在上面的代码中,我们使用 mvc:annotation-driven 元素来启用 SpringMVC 注解支持。我们还定义了一个 InternalResourceViewResolver bean,用于将视图名称解析为 HTML 文件。
4. 打包为可执行 Jar 包
在 pom.xml 文件中添加以下插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.0</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后,使用以下命令将项目打包为可执行 Jar 包:
mvn clean package
5. 运行可执行 Jar 包
使用以下命令来运行可执行 Jar 包:
java -jar target/demo-0.0.1-SNAPSHOT.jar
在浏览器中访问 http://localhost:8080/,应该可以看到 SpringMVC 的欢迎页面。
6. 示例一:添加用户
下面是一个简单的示例,演示了如何使用 SpringMVC 添加用户:
@Controller
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/user/add")
public String addUserForm(Model model) {
model.addAttribute("user", new User());
return "addUser";
}
@PostMapping("/user/add")
public String addUser(@ModelAttribute("user") User user) {
userService.addUser(user);
return "redirect:/user/list";
}
}
在上面的代码中,我们使用 @GetMapping 注解来处理 GET 请求,并返回 addUser 视图。在 addUser 视图中,我们使用 Thymeleaf 模板引擎来渲染表单。在表单提交时,我们使用 @PostMapping 注解来处理 POST 请求,并将 User 对象作为参数传递给 addUser 方法。在 addUser 方法中,我们使用 userService.addUser 方法将 User 对象保存到数据库中,并将其重定向到用户列表页面。
7. 示例二:用户列表
下面是一个简单的示例,演示了如何使用 SpringMVC 显示用户列表:
@Controller
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/user/list")
public String userList(Model model) {
List<User> userList = userService.getUserList();
model.addAttribute("userList", userList);
return "userList";
}
}
在上面的代码中,我们使用 @GetMapping 注解来处理 GET 请求,并返回 userList 视图。在 userList 视图中,我们使用 Thymeleaf 模板引擎来渲染用户列表。在 userList 方法中,我们使用 userService.getUserList 方法获取所有用户,并将其添加到 Model 中。
总结
本文详细讲解了如何使用 web.xml 文件来配置 SpringMVC,并将其打包为可执行 Jar 包。我们首先创建了一个 SpringBoot 项目,并添加了 web.xml 文件和 Spring 配置文件。然后,我们使用 Maven 插件将项目打包为可执行 Jar 包,并使用 java 命令来运行它。最后,我们提供了两个示例,演示了如何使用 SpringMVC 添加用户和显示用户列表。通过本文的学习,相信读者已经掌握了 SpringBoot 打包可执行 Jar 运行 SpringMVC 加载流程的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:web.xml SpringBoot打包可执行Jar运行SpringMVC加载流程 - Python技术站