Skip to content

Commit 1752b1b

Browse files
committed
Allow controllers to be lazy initialised - Fixes #9933
1 parent ec165f6 commit 1752b1b

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ class ControllersGrailsPlugin extends Plugin {
156156
log.debug "Configuring controller $controller.fullName"
157157
if (controller.available) {
158158
"${controller.fullName}"(controller.clazz) { bean ->
159+
bean.lazyInit = true
159160
def beanScope = controller.getScope()
160161
bean.scope = beanScope
161162
bean.autowire = "byName"

grails-spring/src/main/groovy/grails/spring/BeanBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -653,6 +653,7 @@ protected BeanConfiguration invokeBeanDefiningMethod(String name, Object[] args)
653653
currentBeanConfig = springConfig.addSingletonBean(name, beanClass, resolveConstructorArguments(args, 1, args.length));
654654
}
655655
}
656+
656657
}
657658
else if (args[0] instanceof RuntimeBeanReference) {
658659
currentBeanConfig = springConfig.addSingletonBean(name);

grails-spring/src/main/groovy/org/grails/spring/DefaultBeanConfiguration.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.springframework.beans.factory.config.RuntimeBeanReference;
3232
import org.springframework.beans.factory.support.AbstractBeanDefinition;
3333
import org.springframework.beans.factory.support.GenericBeanDefinition;
34+
import org.springframework.context.annotation.Lazy;
3435
import org.springframework.util.Assert;
3536

3637
/**
@@ -217,7 +218,10 @@ protected AbstractBeanDefinition createBeanDefinition() {
217218
}
218219
bd.setConstructorArgumentValues(cav);
219220
}
220-
bd.setBeanClass(clazz);
221+
if(clazz != null) {
222+
bd.setLazyInit( clazz.getAnnotation(Lazy.class) != null);
223+
bd.setBeanClass(clazz);
224+
}
221225
bd.setScope(singleton ? AbstractBeanDefinition.SCOPE_SINGLETON : AbstractBeanDefinition.SCOPE_PROTOTYPE);
222226
if (parentName != null) {
223227
bd.setParentName(parentName);

0 commit comments

Comments
 (0)