背景故事
今天女朋友来了大姨妈,因为有事晚一个小时给她点红糖姜茶,她闹着要分手,这种无理取闹多了之后,心情也暗了下来,思索了未来人生的一些步伐,片刻回神便打电话给骑手,让骑手换配送地址,直接送到我办公室,然后我就边喝着这杯茶,打开周杰伦的《退后》,单曲循环,想着要写点东西忘掉这事,便想把这边博客给写出来。
搭建实例
基本环境
搭建spring项目
因为springMvc是spring里的一个核心,所以需要搭建的就是spring项目Spring框架搭建实例
需要导入的核心包为
<?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lingaolu</groupId> <artifactId>springMvc</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>demo</module> </modules> <dependencies> <!-- 单元测试包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> </dependency> <!-- Spring核心包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.0</version> </dependency> <!-- servlet核心包 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <!-- JSP核心包,我们使用jsp页面 --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <!-- JSTL核心包 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies> </project>
引入框架支持
因为是web项目,所以引入web支持
配置运行启动项目
不会的可以看这个tomcat部署项目以及与IDEA集成,直接看IDEA集成
启动访问成功
开始搭建
创建spring的核心配置文件spring.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" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> </beans>
在web.xml中配置springMvc的核心配置
<?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_4_0.xsd" version="4.0"> <!-- 配置DispatcherServlet:这个是springMvc的核心,请求分发器,前端控制器 --> <servlet> <servlet-name>springMvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- DispatcherServlet要绑定Spring的配置文件 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </init-param> <!-- 启动级别:1 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
建立我们要测试用的JSP文件
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2020/11/17 Time: 21:41 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>$Title$</title> </head> <body> ${msg} </body> </html>
打开项目结构,因为是用tomcat启动,所以把包都丢进去,不然有可能找不到包访问的时候回报错,具体导入看这个IDEA maven项目部署到tomcat的jar包找不到问题
搭建方式1:xml搭建配置
spring核心文件配置视图解析器
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 处理器映射器,可以不配,会自动配置 --> <!-- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>--> <!-- 处理器适配器,可以不配,会自动配置 --> <!--<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>--> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 前缀 --> <property name="prefix" value="jsp/"/> <!-- 后缀 --> <property name="suffix" value=".jsp"/> </bean> </beans>
编写类,实现MVC的控制接口Controller
Spring核心配置文件注入我们的类
启动访问,成功
搭建方式2:注解
核心配置文件开启注解相关配置
<?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 https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 自动扫描包,让指定包下的注解生效,有IOC容器统一管理 --> <context:component-scan base-package="com.lingaolu.controller"/> <!-- spring mvc不要处理静态资源 --> <mvc:default-servlet-handler/> <!-- 开启注解驱动,自动把处理器映射器和处理器适配器注入 --> <mvc:annotation-driven/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 前缀 --> <property name="prefix" value="/jsp/"/> <!-- 后缀 --> <property name="suffix" value=".jsp"/> </bean> </beans>
测试类使用注解
package com.lingaolu.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/aa") public class TestController{ @RequestMapping("/bb") public String test(Model model){ model.addAttribute("msg","注解返回bb"); return "hello"; } @RequestMapping("/cc") public String test1(Model model){ model.addAttribute("msg","注解返回cc"); return "hello"; } }
启动测试
后续感悟
红糖姜茶不知不觉喝完了,本篇博客写到这里也接近了尾声,貌似是在暗示着这片文章是为了这杯茶量身定制的,心情也舒缓了许多
女友发消息给我,说她可能是心情烦躁,任性了一点,让我原谅她,但是她所不明白的是,有些原谅如果太多,也许就失去了生活本身的意义,最终2人也许就成了凑合在一起的形式走肉,我想了想回复,这篇文章点赞量达到15以上,我就选择原谅,所以我把决定权交给了广大的网友。