纯注解方式配置spring+springMVC

1、新建类initConfig,继承AbstractAnnotationConfigDispatcherServletInitializer,并重写getRootConfigClasses()、getServletConfigClasses()、getServletMappings()方法。

public class InitConfig extends AbstractAnnotationConfigDispatcherServletInitializer{

    @Override
    protected Class<?>[] getRootConfigClasses() {
        
        return new Class<?>[]{RootConfig.class};
    }
    
    @Override
    protected Class<?>[] getServletConfigClasses() {

        return new Class<?>[]{WebConfig.class};
    }
    
    @Override
    protected String[] getServletMappings() {
        
        return new String[]{"*.do"};
    }
}

2、分别新建上图getRootConfigClasses()中的RootConfig.class和getServletConfigClasses()中的WebConfig.class方法

/**
 * springmvc配置类
 * @author yang
 */
@Configuration
@EnableWebMvc
@ComponentScan(basePackages={"com.ydzc.controller","com.ydzc.service.impl"})
public class WebConfig extends WebMvcConfigurerAdapter{

    /**
     * 配置springmvc视图
     * @return
     */
    @Bean
    public ViewResolver viewResolver(){
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/pages/");
        resolver.setSuffix(".jsp");
        resolver.setExposeContextBeansAsAttributes(true);
        return resolver;
    }
}
/**
 * spring配置类
 * @author yang
 */
@Configuration
@PropertySource("classpath:znzd.properties")
@ComponentScan(basePackages={"com.ydzc.controller","com.ydzc.service.impl"})
public class RootConfig {
/**
     * 加载properties配置文件必配此bean
     * @return
     */
    @Bean
    public static PropertySourcesPlaceholderConfigurer getPropertySourcesPlaceholderConfigurer(){
        return new PropertySourcesPlaceholderConfigurer();
    }
   
}

即可。

如果需要创建额外的servlet、filter、listener

新建类,并继承WebApplicationInitializer,重写其中的onStartup方法

 注册filter与之类似

需要注意的是,如果我们新建的filter的映射路径是在dispatcherServlet,则只需要重写initConfig类中的getServletFilters()方法

原文地址:https://www.cnblogs.com/yxth/p/6907752.html