记录一下maven搭建springMVC的过程
项目搭建
首先点击File–>New–>Project进入到项目创建窗口
选择如下图的选项,点击Next按钮进入到下一步
填写项目名称和本地保存目录,以及包路径、发布名称、版本号信息,设置完成后,点击__Finish__完成设置
完成设置后,项目目录如下所示,只有webapp目录,java、resources、test目录需要我们自己进行创建
在创建目录时候,idea会给出我们缺少目录的提示,直接创建就好,同时也会看到刚刚创建的java目录,显示出maven项目的蓝色
Jar包导入
项目建立完成后,导入springMVC需要的jar包。基本的jar包如下:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<spring.version>5.2.8.RELEASE</spring.version>
<!-- mysql驱动版本对应MySQL5.7 -->
<mysql.version>5.1.47</mysql.version>
</properties>
<dependencies>
<!-- spring相关 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
PS:我们可以在idea中设置maven自动导入xml中的jar包,顺便记得安装本地的maven,设置本地包仓库目录和setting.xml配置,把默认的包源换成国内源,比如下面的阿里的maven源
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
文件配置
由于resources目录是我们手动进行创建的,所以我们需要手动创建Spring的监听器配置文件(applicationContext.xml)和Spring的中央控制器配置文件(springmvc.xml)。同时还要在webapp下的web.xml文件中,进行两个配置文件的引入和配置。
applicationContext.xml
其中__base-package__是我们的包路径,后面星号,表示路径下的包都遵循这个配置
<!-- spring容器扫描 -->
<context:component-scan base-package="com.bc.*">
<!-- 不扫描spring mvc的controller -->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
springmvc.xml
<mvc:annotation-driven/>
<!--spring mvc扫描controller不扫描service-->
<context:component-scan base-package="com.bc.apps.*">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>
配置完成后,前去__web.xml__进行配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Md</display-name>
<!-- 监听器配置文件 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- 配置过滤器 解决中文乱码问题 -->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- SpringMVC的核心控制器 -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 配置servlet启动时加载对象 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
配置完成
上述配置完成后,去java目录下创建测试代码,进行测试项目是否搭建完成。
@RequestMapping(value = "/")
@RestController
public class IndexController {
@GetMapping(value = "index")
public String index(){
return "Hello,Spring~";
}
}
对项目进行编译并启动,再地址栏中输入__http://domain/index__,网址中输出我们打印的文字,项目搭建成功!
结尾
至此SpringMVC的初步搭建,已经完成,其实复杂程度到不是很高,只不过在配置和引入jar包的时候,稍微有一些多。
下一步,要进行视图解析器的配置,将使用Thymeleaf作为我们的视图解析器