问题:为什么会 injection failed?
1、如果是配置相关的
要找一下,有没有相关的配置?
此例,当没有 xxx.yyy
配置时会出错:
import org.noear.solon.annotation.Inject;
@Inject("${xxx.yyy}")
String yyy;
2、如果是容器相关的 Bean
正常的推理:
注入失败 - 》 说明(容器)没有相关注册 -》 说明没有“源头类”,或者没有扫描到 -》如果没有扫描到?为什么会没扫到?要怎么做?
参考资料:《Bean 容器的扫描方式与范围》
此例会出错(bbb 包的 App 启动时,不会扫描 aaa 包下的类):
import org.noear.solon.annotation.Component;
import org.noear.solon.annotation.Controller;
import org.noear.solon.annotation.Inject;
//---
package demo.aaa;
@Component
public class UserService {}
//---
package demo.bbb;
@Controller
public class UserController {
@Inject
UserService userService;
}
package demo.bbb;
public class App { //把 App 移到 demo 下,就不会出错(可同时扫描 aaa, bbb 等下级包)
public static void main(String[] args) {
Solon.start(App.class, args);
}
}