Skip to content

Latest commit

 

History

History
23 lines (17 loc) · 1.36 KB

spring-beans-and-dependency-injection.adoc

File metadata and controls

23 lines (17 loc) · 1.36 KB

Spring Beans and Dependency Injection

You are free to use any of the standard Spring Framework techniques to define your beans and their injected dependencies. We generally recommend using constructor injection to wire up dependencies and @ComponentScan to find beans.

If you structure your code as suggested above (locating your application class in a top package), you can add @ComponentScan without any arguments or use the @SpringBootApplication annotation which implicitly includes it. All of your application components (@Component, @Service, @Repository, @Controller, and others) are automatically registered as Spring Beans.

The following example shows a @Service Bean that uses constructor injection to obtain a required RiskAssessor bean:

link:{docs-java}/using/springbeansanddependencyinjection/singleconstructor/MyAccountService.java[role=include]

If a bean has more than one constructor, you will need to mark the one you want Spring to use with @Autowired:

link:{docs-java}/using/springbeansanddependencyinjection/multipleconstructors/MyAccountService.java[role=include]
Tip
Notice how using constructor injection lets the riskAssessor field be marked as final, indicating that it cannot be subsequently changed.