这里演示 的是使用spring+springmvc+mybatis的配置实现方便理解后面学习的spring boot
1.创建一个maven工程
创建完成后首先选择pom文件进行修改因为创建的是一个javase工程,这里打包成war包变成一个web 工程,然后我们加入springmvc的依赖
<groupId>org.javaboy</groupId>
<artifactId>xmlssm</artifactId>
<version>1.0-SNAPSHOT</version>
<!--这里创建的是一个javase工程我们想要的是一个web工程-->
<!--所以打包一下-->
<packaging>war</packaging>
<dependencies>
<dependency>
<!--加入spring-webmvc依赖-->
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.14</version>
</dependency>
</dependencies>
2.下面创建工程的webapp目录用于存放我们的配置文件
这里双击web resource确认一下,然后点击上面的右侧+选择web.xml,然后复制\WEB-INF\web.xml到webapp目录下面。
3.然后在resource目录下面创建两个配置文件,这里因为加入了spring mvc依赖所以可以直接选择spring config进行创建
5.这里创建的两个配置文件分别为applicationContext.xml (spring容器的配置文件)和spring-servlet.xml(spring mvc的配置文件)
<?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.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--这个是spring 的配置文件-->
<!--spring 容器我们一般用来扫描除了controller之外的东西-->
<!--父容器扫描除了controller之外的包-->
<context:component-scan base-package="org.javaboy" use-default-filters="true">
<!--这里扫描javaboy包下面的类 并且使用默认的过滤器-->
<!--这里过滤器做了排除,排除controller-->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
</beans>
<?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.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">
<!--spring mvc的配置文件-->
<!--springmvc 是spring的子容器 因为子容器可以访问父容器的东西但是父容器不能访问子容器的东西-->
<!--所以呢 子容器里面我们扫描controller-->
<!--因为controller是程序的接口类-->
<context:component-scan base-package="org.javaboy" use-default-filters="false">
<!--这里默认是不使用过滤器所以一个包都不扫描-->
<!--但是又声明了包含controller-->
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<mvc:annotation-driven></mvc:annotation-driven>
</beans>
3.配置完成后我们需要在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_4_0.xsd"
version="4.0">
<!--这里配置刚刚配置好的两个容器配置用映射加载 spring和springmvc 的配置-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--这里配置springmvc-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
6.创建两个包controller和service验证刚刚的配置
@RestController
public class HelloController {
@Autowired
HelloService helloService;
@GetMapping(value = "/hello",produces = "text/html;charset=utf-8")
public String sayHello(){
return helloService.sayHello();
}
}
@Service
public class HelloService {
public String sayHello() {
return "hello javaboy 极客技术!";
}
}
7.本地环境配置tomcat然后部署启动程序,注意部署为war包因为前面我们打包配置为war
10.启动后访问controller配置验证