Spring mvc 通过AbstractAnnotationConfigDispatcherServletInitializer实现Spring MVC java配置
嗨,我有个奇怪的问题 我将学习本教程()并在第5步中配置初始化器类,有两种方法: 1和WebAppInitializer(我的代码如下)Spring mvc 通过AbstractAnnotationConfigDispatcherServletInitializer实现Spring MVC java配置,spring-mvc,Spring Mvc,嗨,我有个奇怪的问题 我将学习本教程()并在第5步中配置初始化器类,有两种方法: 1和WebAppInitializer(我的代码如下) 使用AppInitializer扩展AbstractAnnotationConfigDispatcherServletInitializer(此处是我的代码) 问题是,当我使用第一种方法时,一切正常,但当我使用第二种方法时,我得到404(说明请求的资源不可用)。我没有其他错误,也不知道如何调试它。我不想麻烦,但我正在尝试对代码实现Spring安全性,据我所知,
我使用的是Maven、STS和tc服务器开发人员版。谢谢您的反馈。问题解决了。目标文件夹仍然保存web.xml和context.xml文件。删除目标文件夹并重新安装应用程序是正确的做法您能检查并帮助我吗?
public class SpindleSpringWebAppInitializer implements WebApplicationInitializer {
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
appContext.register(AppConfig.class);
appContext.setServletContext(servletContext);
ServletRegistration.Dynamic dispatcher = servletContext.addServlet(
"SpringDispatcher", new DispatcherServlet(appContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { AppConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
@Configuration
@EnableWebMvc
public class AppConfig extends WebMvcConfigurerAdapter{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/").setCachePeriod(31556926);
}
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
return messageSource;
}
}