我真的是很讨厌xml配置文件!
今天正好翻书看到了基于注解配置MVC的开发方式 就有了这篇凌晨12点敲出来的博客
1.创建cn.tmhkc.config的package
创建MyWebConfig.class 继承 WebMvcConfigurerAdapter
package cn.tmhkc.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; @Configuration @ComponentScan("cn.tmhkc.controller") // 相当于<context:component-scan base-package="cn.tmhkc.controller"></context:component-scan> @EnableWebMvc public class MyWebConfig extends WebMvcConfigurerAdapter { /** * 相当于springmvc-servlet.xml中的 * <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> * <property name="prefix" value="/"></property> * <property name="suffix" value=".jsp"></property> * </bean> */ @Bean public InternalResourceViewResolver setupViewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver (); resolver.setPrefix("/"); resolver.setSuffix(".jsp"); return resolver; } }
2.创建WebInitializer.class 继承 AbstractAnnotationConfigDispatcherServletInitializer
package cn.tmhkc.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { /** * 应该是类似于配置上下文 * 入门案例中还无需研究这个方法。 * 以后学到了再补上 */ @Override protected Class<?>[] getRootConfigClasses() { // TODO Auto-generated method stub return null; } /** * 相当于springmvc-servlet.xml文件的配置 * 启用组件扫描,配置视图解析器,配置静态资源的处理。 * 只用定义返回值 * new Class[] {自定义继承WebMvcConfigurerAdapter那个类.class} */ @Override protected Class<?>[] getServletConfigClasses() { // TODO Auto-generated method stub return new Class[] {MyWebConfig.class}; } /** * 设置拦截的url * 将DispatcherServlet映射到"*.do" * 相当于xml文件中的 * <servlet-mapping> * <servlet-name>springmvc</servlet-name> * <url-pattern>*.do</url-pattern> * </servlet-mapping> */ @Override protected String[] getServletMappings() { return new String[] { "*.do" }; } }
3.创建一个测试的controller
package cn.tmhkc.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import cn.tmhkc.constant.ControllerConstant; /** * 这里都是常规的东西 * @author tmhkc * */ @Controller public class MyController implements ControllerConstant { @RequestMapping(WELCOME) public String home(){ return WELCOME; } }
4.开启tomcat测试