java - 没有xml配置的spring是不扫描包的

标签 java spring dependency-injection

我不知道如何在没有 XML 的情况下设置 Spring 来扫描包和注入(inject)组件。

我有以下代码。

@Configuration
@ComponentScan("com.mypackage")
public class WebServer {

    public static void main(String[] args) throws Exception {
    }
}


@Service
public class Foo {
    public void print() {
        System.out.println("FOO");
    }
}

@Controller
public class FooController {

    private Foo foo;

    @Autowired
    public void setFoo(Foo foo) {
        this.foo = foo;
    }

}

还有下面的pom.xml

   <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${org-springframework.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org-springframework.version}</version>
    </dependency>

Foo 类和 FooController 位于 com.mypackage 包下,但代码从未命中 setFoo

我错过了什么吗?

谢谢

最佳答案

您必须先创建 ApplicationContext。如果您使用的是 Spring Boot,它会处理它。它对于起点特别有用。

请引用docs .

关于java - 没有xml配置的spring是不扫描包的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50417803/

相关文章:

java - Spring 应用程序中的正确文件路径

c# - Ninject:注入(inject)内部扩展方法

java - 为什么我的应用程序每次运行时都会崩溃?没有错误

java - m2e maven eclipse 插件未配置构建路径

java - 当我修改 session 中的实体时,hibernate 如何检测到更改

c# - 依赖注入(inject)的方式

generics - 传递 map 功能时类型推断不起作用

java - 无法在 JUnit Mockito 中实现 stub

java - 添加数组时准备语句错误

java - Spring、Hibernate、JPA、ManyToOne 添加了 where 子句或 Differentiator 列,但没有继承