Fix hint generation for Autowired fields

Close gh-28655
This commit is contained in:
Stephane Nicoll
2022-06-19 11:18:54 +02:00
parent 36012ffea9
commit 365481379d
2 changed files with 20 additions and 2 deletions

View File

@@ -964,13 +964,13 @@ public class AutowiredAnnotationBeanPostProcessor implements SmartInstantiationA
private CodeBlock generateMethodStatementForField(Field field, boolean required,
RuntimeHints hints) {
hints.reflection().registerField(field, ALLOW_WRITE);
CodeBlock resolver = CodeBlock.of("$T.$L($S)",
AutowiredFieldValueResolver.class,
(!required) ? "forField" : "forRequiredField", field.getName());
AccessVisibility visibility = AccessVisibility.forMember(field);
if (visibility == AccessVisibility.PRIVATE
|| visibility == AccessVisibility.PROTECTED) {
hints.reflection().registerField(field, ALLOW_WRITE);
return CodeBlock.of("$L.resolveAndSet($L, $L)", resolver,
REGISTERED_BEAN_PARAMETER, INSTANCE_PARAMETER);
}