开发工具:idea jdk:1.8
开始:按照下面步骤创建一个springmvc工程
这是我项目的目录结构:
S0:检查maven是否配置:
maven的setting.xml配置
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
S1:配置pom文件
<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>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<!--设置tomcat插件-->
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port><!--端口80-->
<path>/</path><!--访问路径:默认根路径-->
</configuration>
</plugin>
</plugins>
</build>
S2:创建配置文件:
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("com.itheima.controller")
public class SpringMvcConfig {
}
S3:创建一个controller:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
//@Component
@Controller //这就代表这个类受springMVC管理的Bean @Controller主要用表现层
public class UserController {
@RequestMapping("save") // save()方法加上 @RequestMapping, 调用
@ResponseBody // 告诉springmvc返回的就是响应体,不是页面
public String save(){
System.out.println("user save。。。");
return "{'info':'springmvc'}"; //返回404,代表对应的页面找不到
}
}
S4: 加载springmvc配置的java类:
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;
/**
* springMVC提供快速开发配置类的方式:
* 作用:启动服务器的时候,加载SpringMVC的内容
*/
public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
/**
* 加载springmvc对应的容器对象, 就是在这里写
* 加载springmvc对应的配置类
* @return
*/
@Override
protected WebApplicationContext createServletApplicationContext() {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();//注解
ctx.register(SpringMvcConfig.class);//springMVC配置类就是在这里加载进来的
return ctx;
}
/**
* 当请求过来的时候,到底是由tomcat处理 还是 springmvc来处理
* @return
*/
@Override
protected String[] getServletMappings() {
return new String[]{"/"};// 代表所有的请求都由springmvc处理
}
/**
* 这里加载的是spring对应的配置容器对象
* @return
*/
@Override
protected WebApplicationContext createRootApplicationContext() {
return null;
}
}
S5: 配置idea ,启动服务,按如何图片依次配置
启动,然后发开浏览器访问:
能访问就代表服务启动了
最后的一个效果: