首页 > 解决方案 > Guice 注入字段后是否可以做点什么?

问题描述

考虑这个例子:

public class GuiceExample {
    @Inject
    private IDataManager dataManager;

    public static void main(String[] args) {
        Injector injector = Guice.createInjector(new AbstractModule() {

            @Override
            protected void configure() {
                bind(IDataManager.class).to(DataManager.class);
            }
        });

        GuiceExample example = injector.getInstance(GuiceExample.class);
        example.dataManager.printData();
    }

    public static interface IDataManager {
        void printData();
    }

    public static class DataManager implements IDataManager {

        @Override
        public void printData() {
            System.out.println("I print data.");
        }

    }
}

是否可以在类初始化后立即做某事GuiceExample(注入字段)?

我已经尝试添加一个@PostConstruct方法以防万一......但它没有被调用。

@PostConstruct
private void fieldsAreInjected() {
    System.out.println("Checking if datamanager is null:");
    System.out.println(dataManager == null);
}

我试图在网上找到任何东西,但一无所获。有可能还是@Inject构造函数是唯一的方法?

标签: javadependency-injectionguiceioc-container

解决方案


推荐阅读