我有Spring MVC項目來開發示例REST api。當我在tomcat中部署應用時,它正在運行。現在,我想用Spring引導來更新項目。我已經創建主彈簧引導應用類,這是作爲在下面包:com.abc.demo.config使用Spring啓動時請求不是來控制器
@EnableAutoConfiguration // Sprint Boot Auto Configuration
@ComponentScan(basePackages = "com.abc.demo")
@EnableWebMvc
public class Application extends SpringBootServletInitializer {
private static final Class<Application> applicationClass = Application.class;
private static final Logger log = LoggerFactory.getLogger(applicationClass);
public static void main(String[] args) {
SpringApplication.run(applicationClass, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(applicationClass);
}
@Bean
public DispatcherServlet dispatcherServlet() {
return new DispatcherServlet();
}
}
我的控制器是在com.abc.demo.Controller是象下面這樣:
@RestController
public class MyController {
static final Logger logger = Logger.getLogger(MyController.class);
@Inject
private MyService myService;
@RequestMapping(value = "/mytask/{task}", method = RequestMethod.GET, produces = "application/json")
@ResponseBody
public int myTask(@PathVariable String task) {
return myService.service(task);
}
}
當我在本地tomcat中部署應用程序而不添加spring引導時,它正在部署,我能夠看到服務的響應。 (我在運行應用程序時也有web.xml和調度程序servlet)。但是,當我添加spring引導並從命令行運行應用程序時,應用程序正在運行(我在運行應用程序時運行了一些線程,當我看到運行時)。但是當我curl時,請求並沒有進入控制器,並且看到URI未找到登錄控制檯,如下所示:沒有找到具有URI的HTTP請求的映射[/ [myservice-name]/myTask 我在這裏錯過了什麼嗎?感謝有人指出我錯過的東西。
很好的解釋Deinum。謝謝 –