Solon v3.6.0

问题:为什么会 injection failed?

</> markdown

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);
    }
}