【发布时间】:2014-12-29 05:18:07
【问题描述】:
我正在研究 java 中的依赖注入示例,大多数文档都强调我必须在
中放置一个空的beans.xml
- META-INF 如果是 jar 应用程序
- WEB-INF(如果是 Web 应用程序)
所以,我使用战争类型的包装,但是,我的应用程序只有在我将beans.xml 放入 META-INF 文件夹时才能工作。我对为什么它以这种方式工作有点困惑?我在 JBOSS/WildFly 容器中部署我的 war 文件。
这是我的简单pom.xml
beans.xml 位于src/main/resources/META-INF
您还可以在这里看到我仅用于注入 bean 的注释。
AutoService.java
public interface AutoService {
void getService();
}
BMWAutoService.java
@Named("bmwAutoService")
public class BMWAutoService implements AutoService{
@Override
public void getService() {
System.out.println("You chose BMW auto service");
}
}
AutoServiceCaller.java
@Named
public class AutoServiceCallerImp implements AutoServiceCaller{
private AutoService bmwAutoService;
@Inject
public AutoServiceCallerImp(@Named("bmwAutoService") AutoService bmwAutoService) {
this.bmwAutoService = bmwAutoService;
}
@Override
public void callAutoService() {
// get bmw's auto service
bmwAutoService.getService();
}
}
【问题讨论】:
标签: jakarta-ee cdi wildfly-8 meta-inf