我有一个Spring启动应用程序,我想导入一个用spring boot编写的依赖项,它定义了一些控制器.
也许它很简单,但是如何让主应用程序能够在导入的模块中初始化所有这些控制器?当我尝试访问这些控制器的路径时,我得到一个错误,错过了给定路径的处理程序方法.我尝试如下:
@SpringBootApplication
@ComponentScan(basePackages = {"com.main.project","com.imported.dependency"})
public class MyApplication
implements CommandLineRunner {
public static void main(final String... args) {
SpringApplication app = new SpringApplication(MyApplication.class);
app.setWebEnvironment(true);
app.run(args);
}
}
即我尝试使用@ComponentScan,但没有任何反应.
我还试图查看控制器是否已加载:
ApplicationContext ctx = SpringApplication.run(FrontendApplication.class,args);
System.out.println("Let's inspect the beans provided by Spring Boot:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
他们不是.我试图删除@SpringBootApplication并使用@EnableAutoConfiguration和@ComponentScan,但这不起作用.
建议?
最佳答案
在讨论主线程之后,我试图设置一个像你的小项目,我把它放在github上,我看不出任何问题.
看看https://github.com/e-ivaldi/mat_boy_test
这是来自日志
2015-10-24 17:22:02.900 INFO 31901 — [main] s.w.s.m.m.a.RequestMappingHandlerMapping:将“{[/ **]}”映射到公共java.lang.String com.somethingelse.controllers.SimpleController.xxx()