From bf3b642b90543b74e986212daad37cb992fac086 Mon Sep 17 00:00:00 2001 From: Howard Yuan Date: Wed, 14 Apr 2021 16:58:17 -0700 Subject: [PATCH] Set LazyInit if Injector stage is Development --- .../guice/annotation/ModuleRegistryConfiguration.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/guice/annotation/ModuleRegistryConfiguration.java b/src/main/java/org/springframework/guice/annotation/ModuleRegistryConfiguration.java index 63b121c..5038919 100644 --- a/src/main/java/org/springframework/guice/annotation/ModuleRegistryConfiguration.java +++ b/src/main/java/org/springframework/guice/annotation/ModuleRegistryConfiguration.java @@ -75,6 +75,7 @@ class ModuleRegistryConfiguration private static final String SPRING_GUICE_DEDUPE_BINDINGS_PROPERTY_NAME = "spring.guice.dedup"; private static final String SPRING_GUICE_AUTOWIRE_JIT_PROPERTY_NAME = "spring.guice.autowireJIT"; + private static final String SPRING_GUICE_STAGE_PROPERTY_NAME = "spring.guice.stage"; private final Log logger = LogFactory.getLog(getClass()); @@ -111,11 +112,13 @@ class ModuleRegistryConfiguration } private void mapBindings(Map, Binding> bindings, - BeanDefinitionRegistry registry) { + BeanDefinitionRegistry registry) { + Stage stage = applicationContext.getEnvironment().getProperty(SPRING_GUICE_STAGE_PROPERTY_NAME, Stage.class, Stage.PRODUCTION); + boolean ifLazyInit = stage.equals(Stage.DEVELOPMENT); for (Entry, Binding> entry : bindings.entrySet()) { if (entry.getKey().getTypeLiteral().getRawType().equals(Injector.class) || SpringModule.SPRING_GUICE_SOURCE - .equals(Optional.ofNullable(entry.getValue().getSource()).map(Object::toString).orElse(""))) { + .equals(Optional.ofNullable(entry.getValue().getSource()).map(Object::toString).orElse(""))) { continue; } if (entry.getKey().getAnnotationType() != null && @@ -151,6 +154,9 @@ class ModuleRegistryConfiguration getValueAttributeForNamed(key))); bean.addQualifier(new AutowireCandidateQualifier(key.getAnnotationType(), getValueAttributeForNamed(key))); } + if (ifLazyInit) { + bean.setLazyInit(true); + } registry.registerBeanDefinition(extractName(key), bean); }