Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 通过AbstractAnnotationConfigDispatcherServletInitializer实现Spring MVC java配置_Spring Mvc - Fatal编程技术网

Spring mvc 通过AbstractAnnotationConfigDispatcherServletInitializer实现Spring MVC java配置

Spring mvc 通过AbstractAnnotationConfigDispatcherServletInitializer实现Spring MVC java配置,spring-mvc,Spring Mvc,嗨,我有个奇怪的问题 我将学习本教程()并在第5步中配置初始化器类,有两种方法: 1和WebAppInitializer(我的代码如下) 使用AppInitializer扩展AbstractAnnotationConfigDispatcherServletInitializer(此处是我的代码) 问题是,当我使用第一种方法时,一切正常,但当我使用第二种方法时,我得到404(说明请求的资源不可用)。我没有其他错误,也不知道如何调试它。我不想麻烦,但我正在尝试对代码实现Spring安全性,据我所知,

嗨,我有个奇怪的问题

我将学习本教程()并在第5步中配置初始化器类,有两种方法:

1和WebAppInitializer(我的代码如下)

  • 使用AppInitializer扩展AbstractAnnotationConfigDispatcherServletInitializer(此处是我的代码)

    问题是,当我使用第一种方法时,一切正常,但当我使用第二种方法时,我得到404(说明请求的资源不可用)。我没有其他错误,也不知道如何调试它。我不想麻烦,但我正在尝试对代码实现Spring安全性,据我所知,secon类型的初始值设定项现在是首选类型


    我使用的是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;
        }
    }