在Guice注入场之后可以做点什么吗?

时间:2020-03-07 11:28:21

标签: java dependency-injection guice ioc-container

考虑以下示例:

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是唯一方法?

0 个答案:

没有答案