diff --git a/src/asciidoc/core-beans.adoc b/src/asciidoc/core-beans.adoc index 8c505c4d386cb6f328b88671b3eb3512b7c9b0fa..723d482a761bec99ac43689c38b86d0b1b566d41 100644 --- a/src/asciidoc/core-beans.adoc +++ b/src/asciidoc/core-beans.adoc @@ -6788,8 +6788,12 @@ work on the configuration class itself since it is being created as a bean insta @Configuration public class RepositoryConfig { + private final DataSource dataSource; + @Autowired - private DataSource dataSource; + public RepositoryConfig(DataSource dataSource) { + this.dataSource = dataSource; + } @Bean public AccountRepository accountRepository() { @@ -6817,6 +6821,14 @@ work on the configuration class itself since it is being created as a bean insta } ---- +[TIP] +==== +Constructor injection in `@Configuration` classes is only supported as of Spring +Framework 4.3. Note also that there is no need to specify `@Autowired` if the target +bean defines only one constructor; in the example above, `@Autowired` is not necessary +on the `RepositoryConfig` constructor. +==== + .[[beans-java-injecting-imported-beans-fq]]Fully-qualifying imported beans for ease of navigation -- In the scenario above, using `@Autowired` works well and provides the desired diff --git a/src/asciidoc/whats-new.adoc b/src/asciidoc/whats-new.adoc index ff1a2a036278040758a715a9fcdbe8491910b881..89100e4c8d9c09c2def527d1bdcc121b5edaf460 100644 --- a/src/asciidoc/whats-new.adoc +++ b/src/asciidoc/whats-new.adoc @@ -631,6 +631,7 @@ public @interface MyTestConfig { * It is no longer necessary to specify the `@Autowired` annotation if the target bean only define one constructor. +* `@Configuration` classes support constructor injection. === Testing Improvements