- Spring 5.0 By Example
- Claudio Eduardo de Oliveira
- 256字
- 2021-06-24 19:17:32
Looking under the hood
We have some interesting things here, let's understand them. The @SpringBootApplication is the essential annotation for the Spring Boot application; it's a kind of alias for @Configuration, @EnableAutoConfiguration, and @Component annotations. Let's dig in:
- The first annotation, @Configuration indicates that the class can produce a beans definitions for the Spring container. This is an interesting annotation to work with external dependencies such as DataSources; this is the most common use case for this annotation.
- The second annotation, @EnableAutoConfiguration means that with the Spring ApplicationContext container, it will try to help us configure the default beans for the specific context. For instance, when we create the web MVC application with Spring Boot, we will probably need a web server container to run it. In a default configuration, the Spring container, together with @EnableAutoConfiguration, will configure a bean Tomcat-embedded container for us. This annotation is very helpful for developers.
- The @Component is a stereotype, the container understands which class is considered for auto-detection and needs to instantiate it.
The SpringApplication class is responsible for bootstrapping the Spring application from the main method, it will create an ApplicationContext instance, take care of configurations provided by the configuration files, and finally, it will load the singleton beans that are defined by annotations.
Stereotype Annotations denote a conceptual division in an architecture layer. They help the developers understand the purpose of the class and the layer which the beans represent, for example, @Repository means the data access layer.
推薦閱讀
- FuelPHP Application Development Blueprints
- Learning RxJava
- 程序員考試案例梳理、真題透解與強化訓練
- Python王者歸來
- 征服RIA
- KnockoutJS Starter
- 數據結構與算法分析(C++語言版)
- Android群英傳
- C++ Fundamentals
- Qt 4開發實踐
- Mudbox 2013 Cookbook
- 虛擬現實建模與編程(SketchUp+OSG開發技術)
- C# 7 and .NET Core 2.0 Blueprints
- 深度學習:基于Python語言和TensorFlow平臺(視頻講解版)
- Building an E-Commerce Application with MEAN