Я работаю над POC, используя Spring с конфигурацией на основе аннотаций. Работая над этим, я столкнулся со следующими проблемами:
Когда я использую сопоставление сервлета диспетчера как
/
, я могу получить доступ к контроллерам, но не к html-странице.Когда я меняю сопоставление на
/**
, я могу получить доступ к html-странице, но не к контроллерам.
Я не уверен, должен ли я добавить еще один диспетчерский сервлет и добавить в него одно сопоставление. Я также попытался передать оба сопоставления в сервлет диспетчера, но это не сработало.
Может кто поможет мне с проблемой.
Ниже приведен код:
Настройка приложения
package com.upload.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import(WebConfig.class)
@ComponentScan(basePackages= "com.upload")
public class AppConfig {
}
Веб-конфигурация
package com.upload.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter{
}
Инициализатор сервлетов
public class ServletInitializer extends AbstractDispatcherServletInitializer {
@Override
protected WebApplicationContext createServletApplicationContext() {
final AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.register(AppConfig.class);
context.getEnvironment().setActiveProfiles("prod");
return context;
}
@Override
protected String[] getServletMappings() {
return new String[] {"/"};
}
@Override
protected WebApplicationContext createRootApplicationContext() {
return null;
}
}
Контроллер FileUpload
@Controller
@RequestMapping("/ws")
public class FileUploadController {
@RequestMapping(value="hello",method=RequestMethod.GET)
public String hello(){
return "Hello";
}
}