Springboot入門-01
微服務階段
javaSE : OOP
Mysql: 持久化
html+css+js+jquery+框架: 檢視、框架不熟練、css不熟練。
javaWeb: 獨立開發MVC三層架構網站: 最原始
ssm: 框架,簡化了開發流程,配置也變得較為複雜。
war: tomcat執行
spring再簡化:SpringBoot- jar: 內嵌Tomcat; 微服務架構開始!
服務越來越多: SpringCloud 管理服務。
MVC三層架構 MVVM 微服務結構
業務: service : UserService: ===> 每個服務都獨立成一個模組
Http模式、RPC模式
環境:
-
jdk1.8
-
maven 3.5.3
-
IDEA
自動配置:
pom.xml
-
spring-boot-dependencies: 核心依賴在 父工程中
-
在引入一些依賴時,不需要在指定版本。因為父工程已定義
啟動器
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId>
-
啟動器:就是Springboot的啟動場景(依賴)
-
spring-boot-starter-web 就會自動匯入web環境所需的所有依賴
-
要使用什麼功能,只需要匯入對應的
starter
啟動器就可以。
//@SpringBootApplication : 標註這個類是一個 springboot的應用 @SpringBootApplication public class SpringbootApplication { public static void main(String[] args) { // 將springboot應用啟動。主入口SpringApplication.run(SpringbootApplication.class, args); } }
@SpringBootConfiguration : springboot的配置 @Configuration : spring配置類 @Component: 該類本身就是個元件 @EnableAutoConfiguration: 自動配置 @AutoConfigurationPackage: 自動配置包 @Import(AutoConfigurationPackages.Registrar.class): 自動配置包`註冊` @Import(AutoConfigurationImportSelector.class): 自動配置匯入選擇 // 獲取所有的配置 List<String> configurations = getCandidateConfigurations(annotationMetadata, attributes);
獲取候選的配置
protected List<String> getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) { List<String> configurations = SpringFactoriesLoader.loadFactoryNames(getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader()); Assert.notEmpty(configurations, "No auto configuration classes found in META-INF/spring.factories. If you " + "are using a custom packaging, make sure that file is correct."); return configurations; }
Properties properties = PropertiesLoaderUtils.loadProperties(resource);
所以資源載入到配置類中
-
Springboot在啟動的時候從類路徑下 META-INF/spring.factiries中獲取 EnableAutoConfiguration指定的值。
-
將這些值指定的自動配置類匯入到容器,自動配置類就會生效,前提必須要有對應的starter場景啟動器。
幫助我們完成自動配置工作。
-
整個javaEE體系的解決方案和自動配置都在 springboot-autoconfiguration的jar包中。
-
它將所有需要匯入的元件以全類名的方式返回。這些元件會被新增到容器中。
-
它會給容器中匯入非常多的自動配置類。格式為(xxxxAutoConfiguration),就是給容器中這個場景需要的元件,並自動配置好這些元件。
-