Skip to content

Commit 3ccaefe

Browse files
committed
Polishing
1 parent 300f458 commit 3ccaefe

File tree

5 files changed

+57
-69
lines changed

5 files changed

+57
-69
lines changed

spring-aop/src/main/java/org/springframework/aop/scope/ScopedProxyBeanRegistrationAotProcessor.java

+12-21
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2023 the original author or authors.
2+
* Copyright 2002-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -79,8 +79,8 @@ private String getTargetBeanName(BeanDefinition beanDefinition) {
7979
}
8080

8181
@Nullable
82-
private BeanDefinition getTargetBeanDefinition(ConfigurableBeanFactory beanFactory,
83-
@Nullable String targetBeanName) {
82+
private BeanDefinition getTargetBeanDefinition(
83+
ConfigurableBeanFactory beanFactory, @Nullable String targetBeanName) {
8484

8585
if (targetBeanName != null && beanFactory.containsBean(targetBeanName)) {
8686
return beanFactory.getMergedBeanDefinition(targetBeanName);
@@ -123,16 +123,12 @@ public CodeBlock generateNewBeanDefinitionCode(GenerationContext generationConte
123123

124124
@Override
125125
public CodeBlock generateSetBeanDefinitionPropertiesCode(
126-
GenerationContext generationContext,
127-
BeanRegistrationCode beanRegistrationCode,
126+
GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode,
128127
RootBeanDefinition beanDefinition, Predicate<String> attributeFilter) {
129128

130-
RootBeanDefinition processedBeanDefinition = new RootBeanDefinition(
131-
beanDefinition);
132-
processedBeanDefinition
133-
.setTargetType(this.targetBeanDefinition.getResolvableType());
134-
processedBeanDefinition.getPropertyValues()
135-
.removePropertyValue("targetBeanName");
129+
RootBeanDefinition processedBeanDefinition = new RootBeanDefinition(beanDefinition);
130+
processedBeanDefinition.setTargetType(this.targetBeanDefinition.getResolvableType());
131+
processedBeanDefinition.getPropertyValues().removePropertyValue("targetBeanName");
136132
return super.generateSetBeanDefinitionPropertiesCode(generationContext,
137133
beanRegistrationCode, processedBeanDefinition, attributeFilter);
138134
}
@@ -143,20 +139,15 @@ public CodeBlock generateInstanceSupplierCode(GenerationContext generationContex
143139

144140
GeneratedMethod generatedMethod = beanRegistrationCode.getMethods()
145141
.add("getScopedProxyInstance", method -> {
146-
method.addJavadoc(
147-
"Create the scoped proxy bean instance for '$L'.",
142+
method.addJavadoc("Create the scoped proxy bean instance for '$L'.",
148143
this.registeredBean.getBeanName());
149144
method.addModifiers(Modifier.PRIVATE, Modifier.STATIC);
150145
method.returns(ScopedProxyFactoryBean.class);
151-
method.addParameter(RegisteredBean.class,
152-
REGISTERED_BEAN_PARAMETER_NAME);
146+
method.addParameter(RegisteredBean.class, REGISTERED_BEAN_PARAMETER_NAME);
153147
method.addStatement("$T factory = new $T()",
154-
ScopedProxyFactoryBean.class,
155-
ScopedProxyFactoryBean.class);
156-
method.addStatement("factory.setTargetBeanName($S)",
157-
this.targetBeanName);
158-
method.addStatement(
159-
"factory.setBeanFactory($L.getBeanFactory())",
148+
ScopedProxyFactoryBean.class, ScopedProxyFactoryBean.class);
149+
method.addStatement("factory.setTargetBeanName($S)", this.targetBeanName);
150+
method.addStatement("factory.setBeanFactory($L.getBeanFactory())",
160151
REGISTERED_BEAN_PARAMETER_NAME);
161152
method.addStatement("return factory");
162153
});

spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java

-1
Original file line numberDiff line numberDiff line change
@@ -1098,7 +1098,6 @@ private void registerProxyIfNecessary(RuntimeHints runtimeHints, DependencyDescr
10981098
}
10991099
}
11001100
}
1101-
11021101
}
11031102

11041103
}

spring-beans/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationCodeFragmentsDecorator.java

+13-13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2023 the original author or authors.
2+
* Copyright 2002-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -58,39 +58,39 @@ public ClassName getTarget(RegisteredBean registeredBean) {
5858
public CodeBlock generateNewBeanDefinitionCode(GenerationContext generationContext,
5959
ResolvableType beanType, BeanRegistrationCode beanRegistrationCode) {
6060

61-
return this.delegate.generateNewBeanDefinitionCode(generationContext,
62-
beanType, beanRegistrationCode);
61+
return this.delegate.generateNewBeanDefinitionCode(generationContext, beanType, beanRegistrationCode);
6362
}
6463

6564
@Override
66-
public CodeBlock generateSetBeanDefinitionPropertiesCode(GenerationContext generationContext,
67-
BeanRegistrationCode beanRegistrationCode, RootBeanDefinition beanDefinition,
68-
Predicate<String> attributeFilter) {
65+
public CodeBlock generateSetBeanDefinitionPropertiesCode(
66+
GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode,
67+
RootBeanDefinition beanDefinition, Predicate<String> attributeFilter) {
6968

7069
return this.delegate.generateSetBeanDefinitionPropertiesCode(
7170
generationContext, beanRegistrationCode, beanDefinition, attributeFilter);
7271
}
7372

7473
@Override
75-
public CodeBlock generateSetBeanInstanceSupplierCode(GenerationContext generationContext,
76-
BeanRegistrationCode beanRegistrationCode, CodeBlock instanceSupplierCode,
77-
List<MethodReference> postProcessors) {
74+
public CodeBlock generateSetBeanInstanceSupplierCode(
75+
GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode,
76+
CodeBlock instanceSupplierCode, List<MethodReference> postProcessors) {
7877

7978
return this.delegate.generateSetBeanInstanceSupplierCode(generationContext,
8079
beanRegistrationCode, instanceSupplierCode, postProcessors);
8180
}
8281

8382
@Override
84-
public CodeBlock generateInstanceSupplierCode(GenerationContext generationContext,
85-
BeanRegistrationCode beanRegistrationCode, boolean allowDirectSupplierShortcut) {
83+
public CodeBlock generateInstanceSupplierCode(
84+
GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode,
85+
boolean allowDirectSupplierShortcut) {
8686

8787
return this.delegate.generateInstanceSupplierCode(generationContext,
8888
beanRegistrationCode, allowDirectSupplierShortcut);
8989
}
9090

9191
@Override
92-
public CodeBlock generateReturnCode(GenerationContext generationContext,
93-
BeanRegistrationCode beanRegistrationCode) {
92+
public CodeBlock generateReturnCode(
93+
GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode) {
9494

9595
return this.delegate.generateReturnCode(generationContext, beanRegistrationCode);
9696
}

spring-beans/src/main/java/org/springframework/beans/factory/aot/DefaultBeanRegistrationCodeFragments.java

+27-32
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@
4646
import org.springframework.util.function.SingletonSupplier;
4747

4848
/**
49-
* Internal {@link BeanRegistrationCodeFragments} implementation used by
50-
* default.
49+
* Internal {@link BeanRegistrationCodeFragments} implementation used by default.
5150
*
5251
* @author Phillip Webb
5352
* @author Stephane Nicoll
@@ -81,7 +80,8 @@ public ClassName getTarget(RegisteredBean registeredBean) {
8180
if (hasInstanceSupplier()) {
8281
String resourceDescription = registeredBean.getMergedBeanDefinition().getResourceDescription();
8382
throw new IllegalStateException("Error processing bean with name '" + registeredBean.getBeanName() + "'" +
84-
(resourceDescription != null ? " defined in " + resourceDescription : "") + ": instance supplier is not supported");
83+
(resourceDescription != null ? " defined in " + resourceDescription : "") +
84+
": instance supplier is not supported");
8585
}
8686
Class<?> target = extractDeclaringClass(registeredBean, this.instantiationDescriptor.get());
8787
while (target.getName().startsWith("java.") && registeredBean.isInnerBean()) {
@@ -94,9 +94,8 @@ public ClassName getTarget(RegisteredBean registeredBean) {
9494

9595
private Class<?> extractDeclaringClass(RegisteredBean registeredBean, InstantiationDescriptor instantiationDescriptor) {
9696
Class<?> declaringClass = ClassUtils.getUserClass(instantiationDescriptor.targetClass());
97-
if (instantiationDescriptor.executable() instanceof Constructor<?>
98-
&& AccessControl.forMember(instantiationDescriptor.executable()).isPublic()
99-
&& FactoryBean.class.isAssignableFrom(declaringClass)) {
97+
if (instantiationDescriptor.executable() instanceof Constructor<?> ctor &&
98+
AccessControl.forMember(ctor).isPublic() && FactoryBean.class.isAssignableFrom(declaringClass)) {
10099
return extractTargetClassFromFactoryBean(declaringClass, registeredBean.getBeanType());
101100
}
102101
return declaringClass;
@@ -127,17 +126,15 @@ public CodeBlock generateNewBeanDefinitionCode(GenerationContext generationConte
127126
ResolvableType beanType, BeanRegistrationCode beanRegistrationCode) {
128127

129128
CodeBlock.Builder code = CodeBlock.builder();
130-
RootBeanDefinition mergedBeanDefinition = this.registeredBean.getMergedBeanDefinition();
131-
Class<?> beanClass = (mergedBeanDefinition.hasBeanClass()
132-
? ClassUtils.getUserClass(mergedBeanDefinition.getBeanClass()) : null);
129+
RootBeanDefinition mbd = this.registeredBean.getMergedBeanDefinition();
130+
Class<?> beanClass = (mbd.hasBeanClass() ? ClassUtils.getUserClass(mbd.getBeanClass()) : null);
133131
CodeBlock beanClassCode = generateBeanClassCode(
134132
beanRegistrationCode.getClassName().packageName(),
135133
(beanClass != null ? beanClass : beanType.toClass()));
136134
code.addStatement("$T $L = new $T($L)", RootBeanDefinition.class,
137135
BEAN_DEFINITION_VARIABLE, RootBeanDefinition.class, beanClassCode);
138136
if (targetTypeNecessary(beanType, beanClass)) {
139-
code.addStatement("$L.setTargetType($L)", BEAN_DEFINITION_VARIABLE,
140-
generateBeanTypeCode(beanType));
137+
code.addStatement("$L.setTargetType($L)", BEAN_DEFINITION_VARIABLE, generateBeanTypeCode(beanType));
141138
}
142139
return code.build();
143140
}
@@ -162,30 +159,27 @@ private boolean targetTypeNecessary(ResolvableType beanType, @Nullable Class<?>
162159
if (beanType.hasGenerics()) {
163160
return true;
164161
}
165-
if (beanClass != null
166-
&& this.registeredBean.getMergedBeanDefinition().getFactoryMethodName() != null) {
162+
if (beanClass != null && this.registeredBean.getMergedBeanDefinition().getFactoryMethodName() != null) {
167163
return true;
168164
}
169165
return (beanClass != null && !beanType.toClass().equals(beanClass));
170166
}
171167

172168
@Override
173169
public CodeBlock generateSetBeanDefinitionPropertiesCode(
174-
GenerationContext generationContext,
175-
BeanRegistrationCode beanRegistrationCode, RootBeanDefinition beanDefinition,
176-
Predicate<String> attributeFilter) {
170+
GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode,
171+
RootBeanDefinition beanDefinition, Predicate<String> attributeFilter) {
172+
177173
Loader loader = AotServices.factories(this.registeredBean.getBeanFactory().getBeanClassLoader());
178174
List<Delegate> additionalDelegates = loader.load(Delegate.class).asList();
179175
return new BeanDefinitionPropertiesCodeGenerator(generationContext.getRuntimeHints(),
180176
attributeFilter, beanRegistrationCode.getMethods(),
181-
additionalDelegates, (name, value) -> generateValueCode(generationContext, name, value)
182-
).generateCode(beanDefinition);
177+
additionalDelegates, (name, value) -> generateValueCode(generationContext, name, value))
178+
.generateCode(beanDefinition);
183179
}
184180

185181
@Nullable
186-
protected CodeBlock generateValueCode(GenerationContext generationContext,
187-
String name, Object value) {
188-
182+
protected CodeBlock generateValueCode(GenerationContext generationContext, String name, Object value) {
189183
RegisteredBean innerRegisteredBean = getInnerRegisteredBean(value);
190184
if (innerRegisteredBean != null) {
191185
BeanDefinitionMethodGenerator methodGenerator = this.beanDefinitionMethodGeneratorFactory
@@ -211,9 +205,8 @@ private RegisteredBean getInnerRegisteredBean(Object value) {
211205

212206
@Override
213207
public CodeBlock generateSetBeanInstanceSupplierCode(
214-
GenerationContext generationContext,
215-
BeanRegistrationCode beanRegistrationCode, CodeBlock instanceSupplierCode,
216-
List<MethodReference> postProcessors) {
208+
GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode,
209+
CodeBlock instanceSupplierCode, List<MethodReference> postProcessors) {
217210

218211
CodeBlock.Builder code = CodeBlock.builder();
219212
if (postProcessors.isEmpty()) {
@@ -233,20 +226,22 @@ public CodeBlock generateSetBeanInstanceSupplierCode(
233226
}
234227

235228
@Override
236-
public CodeBlock generateInstanceSupplierCode(GenerationContext generationContext,
237-
BeanRegistrationCode beanRegistrationCode, boolean allowDirectSupplierShortcut) {
229+
public CodeBlock generateInstanceSupplierCode(
230+
GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode,
231+
boolean allowDirectSupplierShortcut) {
232+
238233
if (hasInstanceSupplier()) {
239-
throw new IllegalStateException("Default code generation is not supported for bean definitions declaring "
240-
+ "an instance supplier callback: " + this.registeredBean.getMergedBeanDefinition());
234+
throw new IllegalStateException("Default code generation is not supported for bean definitions " +
235+
"declaring an instance supplier callback: " + this.registeredBean.getMergedBeanDefinition());
241236
}
242237
return new InstanceSupplierCodeGenerator(generationContext, beanRegistrationCode.getClassName(),
243-
beanRegistrationCode.getMethods(), allowDirectSupplierShortcut).generateCode(
244-
this.registeredBean, this.instantiationDescriptor.get());
238+
beanRegistrationCode.getMethods(), allowDirectSupplierShortcut)
239+
.generateCode(this.registeredBean, this.instantiationDescriptor.get());
245240
}
246241

247242
@Override
248-
public CodeBlock generateReturnCode(GenerationContext generationContext,
249-
BeanRegistrationCode beanRegistrationCode) {
243+
public CodeBlock generateReturnCode(
244+
GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode) {
250245

251246
CodeBlock.Builder code = CodeBlock.builder();
252247
code.addStatement("return $L", BEAN_DEFINITION_VARIABLE);

spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -782,7 +782,8 @@ public ConfigurationClassProxyBeanRegistrationCodeFragments(
782782

783783
@Override
784784
public CodeBlock generateSetBeanDefinitionPropertiesCode(GenerationContext generationContext,
785-
BeanRegistrationCode beanRegistrationCode, RootBeanDefinition beanDefinition, Predicate<String> attributeFilter) {
785+
BeanRegistrationCode beanRegistrationCode, RootBeanDefinition beanDefinition,
786+
Predicate<String> attributeFilter) {
786787

787788
CodeBlock.Builder code = CodeBlock.builder();
788789
code.add(super.generateSetBeanDefinitionPropertiesCode(generationContext,
@@ -803,7 +804,9 @@ public CodeBlock generateInstanceSupplierCode(GenerationContext generationContex
803804
.generateCode(this.registeredBean, instantiationDescriptor);
804805
}
805806

806-
private InstantiationDescriptor proxyInstantiationDescriptor(RuntimeHints runtimeHints, InstantiationDescriptor instantiationDescriptor) {
807+
private InstantiationDescriptor proxyInstantiationDescriptor(
808+
RuntimeHints runtimeHints, InstantiationDescriptor instantiationDescriptor) {
809+
807810
Executable userExecutable = instantiationDescriptor.executable();
808811
if (userExecutable instanceof Constructor<?> userConstructor) {
809812
try {

0 commit comments

Comments
 (0)