Spring MVC纯注解配置工程简单实例——Hello World 博客分类: 搭建工程 springmvc无web.xml纯注解配置Hello World
程序员文章站
2024-03-16 19:54:40
...
JDK:1.8
Tomcat:8.5.x
工程目录结构
pom.xml配置
<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.linzx.test</groupId> <artifactId>test-springannotationconfig</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <org.springframework.version>4.3.3.RELEASE</org.springframework.version> </properties> <dependencies> <!-- spring mvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> </plugin> </plugins> </build> </project>
web.xml的注解配置类
package com.linzx.test.springweb.config; import javax.servlet.FilterRegistration.Dynamic; import javax.servlet.ServletContext; import javax.servlet.ServletException; import org.springframework.web.filter.CharacterEncodingFilter; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; /** * web.xml * 继承AbstractAnnotationConfigDispatcherServletInitializer,会同时创建DispatcherServlet和ContextLoaderListener */ public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return new Class[] { ApplicationConfig.class }; } @Override protected Class<?>[] getServletConfigClasses() { return new Class[] { WebMvcConfig.class }; } @Override protected String[] getServletMappings() { return new String[] { "/" }; } @Override public void onStartup(ServletContext servletContext) throws ServletException { super.onStartup(servletContext); Dynamic characterEncoding = servletContext.addFilter("characterEncoding", CharacterEncodingFilter.class); characterEncoding.setInitParameter("forceEncoding", "true"); characterEncoding.setInitParameter("encoding", "UTF-8"); characterEncoding.addMappingForUrlPatterns(null, true, "/*"); } }
spring-mvc.xml的注解配置类
package com.linzx.test.springweb.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Controller; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; /** * Spring-MVC配置,相当于spring-mvc.xml */ @Configuration @EnableWebMvc @ComponentScan(basePackages = "com.linzx.test.springweb.controller", includeFilters = @Filter(classes = Controller.class), useDefaultFilters = false) public class WebMvcConfig extends WebMvcConfigurerAdapter { }
application.xml的注解配置类
package com.linzx.test.springweb.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Controller; /** * 业务类配置,相当于application.xml */ @Configuration @ComponentScan(basePackages = { "com.linzx.test.springweb" }, excludeFilters = { @Filter(classes = Controller.class) }) public class ApplicationConfig { }
Controller
package com.linzx.test.springweb.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @RequestMapping("/") public String hello() { return "Hello World!"; } }
访问结果
上一篇: 几种常见的加密算法