不需要 spring 的xml不需要 web.xml
1 新建工程
2 pom
<?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.tzb
</groupId>
<artifactId>javassm
</artifactId>
<version>1.0-SNAPSHOT
</version>
<packaging>war
</packaging>
<dependencies>
<dependency>
<groupId>org.springframework
</groupId>
<artifactId>spring-webmvc
</artifactId>
<version>5.1.6.RELEASE
</version>
</dependency>
<dependency>
<groupId>javax.servlet
</groupId>
<artifactId>javax.servlet-api
</artifactId>
<version>4.0.1
</version>
<scope>provided
</scope>
</dependency>
</dependencies>
</project>
3 配置类
3.1 spring 配置类
package com
.tzb
.config
;
import org
.springframework
.context
.annotation
.ComponentScan
;
import org
.springframework
.context
.annotation
.Configuration
;
import org
.springframework
.context
.annotation
.FilterType
;
import org
.springframework
.stereotype
.Controller
;
@Configuration
@ComponentScan(basePackages
= "com.tzb", useDefaultFilters
= true,
excludeFilters
= {@ComponentScan.Filter(type
= FilterType
.ANNOTATION
, classes
= Controller
.class)})
public class SpringConfig {
}
3.2 spring mvc 配置类
package com
.tzb
.config
;
import org
.springframework
.context
.annotation
.ComponentScan
;
import org
.springframework
.context
.annotation
.Configuration
;
import org
.springframework
.context
.annotation
.FilterType
;
import org
.springframework
.stereotype
.Controller
;
import org
.springframework
.web
.servlet
.config
.annotation
.ResourceHandlerRegistry
;
import org
.springframework
.web
.servlet
.config
.annotation
.WebMvcConfigurationSupport
;
@Configuration
@ComponentScan(basePackages
= "com.tzb", useDefaultFilters
= false,
includeFilters
= {
@ComponentScan.Filter(type
= FilterType
.ANNOTATION
, classes
= Controller
.class),
@ComponentScan.Filter(type
= FilterType
.ANNOTATION
, classes
= Configuration
.class)})
public class SpringMVCConfig extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry
) {
registry
.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/");
}
}
3.3 web 配置类
package com
.tzb
.config
;
import org
.springframework
.web
.WebApplicationInitializer
;
import org
.springframework
.web
.context
.support
.AnnotationConfigWebApplicationContext
;
import org
.springframework
.web
.servlet
.DispatcherServlet
;
import javax
.servlet
.ServletException
;
import javax
.servlet
.ServletRegistration
;
public class WebInit implements WebApplicationInitializer {
public void onStartup(javax
.servlet
.ServletContext servletContext
) throws ServletException
{
AnnotationConfigWebApplicationContext ctx
= new AnnotationConfigWebApplicationContext();
ctx
.setServletContext(servletContext
);
ctx
.register(SpringMVCConfig
.class);
ServletRegistration
.Dynamic springmvc
= servletContext
.addServlet("springmvc", new DispatcherServlet(ctx
));
springmvc
.addMapping("/");
springmvc
.setLoadOnStartup(1);
}
}
4 Service
package com
.tzb
.service
;
import org
.springframework
.stereotype
.Service
;
@Service
public class HelloService {
public String
sayHello() {
return "Hello";
}
}
5 Controller
package com
.tzb
.controller
;
import com
.tzb
.service
.HelloService
;
import org
.springframework
.beans
.factory
.annotation
.Autowired
;
import org
.springframework
.web
.bind
.annotation
.GetMapping
;
import org
.springframework
.web
.bind
.annotation
.RestController
;
@RestController
public class HelloController {
@Autowired
private HelloService helloService
;
@GetMapping("/hello")
public String
hello(){
return helloService
.sayHello();
}
}