私はJavaでの依存性注入の例に取り組んでおり、ほとんどのドキュメントは空を入れなければならないことを強調していbeans.xml
ます
- jar アプリケーションの場合は META-INF
- Web アプリケーションの場合は WEB-INF
そのため、war タイプのパッケージを使用していますが、アプリケーションbeans.xml
は META-INF フォルダーに配置した場合にのみ機能します。なぜそれがそのように機能しているのかについて少し混乱していますか?war ファイルを JBOSS/WildFly コンテナーにデプロイします。
ここに私の単純な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();
}
}