我不知道如何在没有 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/