From 049a024deada93f946c8a588837d2acb5f5335c3 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 21 Jun 2023 09:48:00 +0200 Subject: [PATCH] Deprecate RootBeanDefinition(ResolvableType) constructor Closes gh-30704 --- .../beans/factory/support/BeanDefinitionBuilder.java | 5 +++-- .../beans/factory/support/RootBeanDefinition.java | 2 ++ .../factory/aot/BeanDefinitionMethodGeneratorTests.java | 5 +++-- .../aot/DefaultBeanRegistrationCodeFragmentsTests.java | 7 ++++--- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionBuilder.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionBuilder.java index 7e936b9e65b2..362737c9ee3a 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionBuilder.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2022 the original author or authors. + * Copyright 2002-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -125,7 +125,8 @@ public static BeanDefinitionBuilder rootBeanDefinition(Class beanClass, @Null * @since 5.3.9 */ public static BeanDefinitionBuilder rootBeanDefinition(ResolvableType beanType, Supplier instanceSupplier) { - RootBeanDefinition beanDefinition = new RootBeanDefinition(beanType); + RootBeanDefinition beanDefinition = new RootBeanDefinition(); + beanDefinition.setTargetType(beanType); beanDefinition.setInstanceSupplier(instanceSupplier); return new BeanDefinitionBuilder(beanDefinition); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java index bbbf6cce5094..7f331d3b5f26 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java @@ -161,7 +161,9 @@ public RootBeanDefinition(@Nullable Class beanClass) { * @param beanType the type of bean to instantiate * @since 6.0 * @see #setTargetType(ResolvableType) + * @deprecated as of 6.0.11, in favor of an extra {@link #setTargetType(ResolvableType)} call */ + @Deprecated(since = "6.0.11") public RootBeanDefinition(@Nullable ResolvableType beanType) { setTargetType(beanType); } diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionMethodGeneratorTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionMethodGeneratorTests.java index 484eade29972..f108a3b7b3b2 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionMethodGeneratorTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionMethodGeneratorTests.java @@ -170,8 +170,9 @@ void generateBeanDefinitionMethodWhenHasNestedInnerClassTargetMethodGeneratesMet @Test void generateBeanDefinitionMethodWhenHasGenericsGeneratesMethod() { - RegisteredBean registeredBean = registerBean(new RootBeanDefinition( - ResolvableType.forClassWithGenerics(GenericBean.class, Integer.class))); + RootBeanDefinition beanDefinition = new RootBeanDefinition(); + beanDefinition.setTargetType(ResolvableType.forClassWithGenerics(GenericBean.class, Integer.class)); + RegisteredBean registeredBean = registerBean(beanDefinition); BeanDefinitionMethodGenerator generator = new BeanDefinitionMethodGenerator( this.methodGeneratorFactory, registeredBean, null, Collections.emptyList()); diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/aot/DefaultBeanRegistrationCodeFragmentsTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/aot/DefaultBeanRegistrationCodeFragmentsTests.java index 64a4ecdb4fa7..1ab505e3d35e 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/aot/DefaultBeanRegistrationCodeFragmentsTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/aot/DefaultBeanRegistrationCodeFragmentsTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2022 the original author or authors. + * Copyright 2002-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -172,8 +172,9 @@ private RegisteredBean registerTestBean(Class beanType) { } private RegisteredBean registerTestBean(ResolvableType beanType) { - this.beanFactory.registerBeanDefinition("testBean", - new RootBeanDefinition(beanType)); + RootBeanDefinition beanDefinition = new RootBeanDefinition(); + beanDefinition.setTargetType(beanType); + this.beanFactory.registerBeanDefinition("testBean", beanDefinition); return RegisteredBean.of(this.beanFactory, "testBean"); }