摘要:使用嵌入式容器,應用無需達成包。自動依賴與版本控制。準生產環境的運行時應用監控。告訴開啟自動配置功能,這樣自動配置才能生效。其組成為為的底層注解,表明給容器中導入一個組件,導入的組建由類提供。
Spring Boot——入門
spring boot簡化了spring的開發,是J2EE一站式解決方案。
Spring Boot 的優缺點 優點快速創建獨立運行的服務,與主流框架集成。
使用嵌入式Serverlet容器,應用無需達成war包。
starters自動依賴與版本控制。
大量的自動配置,簡化開發,支持自定義配置。
無需xml配置,開箱即用。
準生產環境的運行時應用監控。
云計算的天然集成。
缺點入門容易,精通難;因為很多事情是spring boot自動完成的。
微服務martin flow 《Microservices》
martin flow 《微服務》中文翻譯
實例講解 Hello Worldmain函數所在的HelloWorld類
/** * @SpringBootApplication 用來告訴程序這是一個 spring boot 應用 */ @SpringBootApplication public class Helloworld { public static void main(String[] args) { // 啟動Spring應用 SpringApplication.run(Helloworld.class, args); } }
controller類
@Controller public class HelloController { @ResponseBody @RequestMapping("/hello") public String hello(){ return "Hello world"; } }Pom文件
Spring Boot 主程序分析org.springframework.boot spring-boot-starter-parent 2.1.3.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-maven-plugin
/** * @SpringBootApplication 用來告訴程序這是一個 spring boot 應用 */ @SpringBootApplication public class Helloworld { public static void main(String[] args) { // 啟動Spring應用 SpringApplication.run(Helloworld.class, args); } }
@SpringBootApplication 注解標注在某個類上的時候,說明這個類是SpringBoot的主配置類,SpringBoot就應該運行這個類的main方法來啟動SpringBoot應用。該注解為組合注解,由以下注解組成:
// 指定該注解可以給一個類型進行注解,比如類、接口、枚舉 @Target(ElementType.TYPE) // 注解可以保留到程序運行的時候,它會被加載進入到 JVM 中,所以在程序運行時可以獲取到它們。 @Retention(RetentionPolicy.RUNTIME) // 它的作用是能夠將注解中的元素包含到 Javadoc 中去。 @Documented // 如果一個超類被 @Inherited 注解過的注解進行注解的話,那么如果它的子類沒有被任何注解應用的話,那么這個子類就繼承了超類的注解。 @Inherited // 表明這個類是一個SpringBoot的配置類 @SpringBootConfiguration // 告訴SpringBoot開啟自動配置功能,自動配置才會生效 @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication {}
@SpringBootConfiguration 標記在某個類上時,表明這個類是一個SpringBoot的配置類。其組成為:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Configuration public @interface SpringBootConfiguration {}
? 其中,@Configuration注解是Spring框架中基本的一個注解,在配置類上標記該注解,表明這個類是Spring的配置類。
@EnableAutoConfiguration告訴SpringBoot開啟自動配置功能,這樣自動配置才能生效。其組成為:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @AutoConfigurationPackage @Import(AutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration {}
? 其中 @AutoConfigurationPackage自動配置包,將主配置類(即@SpringBootApplication標注的類)所在包及其下面所有子包里面的所有組件掃描到Spring容器中。其組成為:
@Import(AutoConfigurationPackages.Registrar.class) public @interface AutoConfigurationPackage {}
? @Import為Spring的底層注解,表明給容器中導入一個組件,導入的組建由AutoConfigurationPackages.Registrar類提供。
? @Import(AutoConfigurationImportSelector.class) 表明開啟自動導入哪些組建的選擇器;
? AutoConfigurationImportSelector.class將要導入的組件以全類名的方式返回,這些容器會被導入到Spring容器。會給容器中導入非常多的自動配置類(一般以xxxAutoConfiguration結尾)。這些自動配置類的作用就是給容器中導入場景所需的自動配置,有了自動配置類,就可以不用手動寫配置了
自動配置類是怎么找到的呢?
AutoConfigurationImportSelector - selectImports(AnnotationMetadata annotationMetadata) - Listconfigurations = getCandidateConfigurations(annotationMetadata, attributes); // 返回所有配置,對應上面的圖 - List configurations = SpringFactoriesLoader.loadFactoryNames( getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader()); - protected Class> getSpringFactoriesLoaderFactoryClass() { return EnableAutoConfiguration.class; } - String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration"; - Enumeration urls = classLoader != null ? classLoader.getResources("META-INF/spring.factories") : ClassLoader.getSystemResources("META-INF/spring.factories");
從類路徑下(如引用的各個jar包)的 META-INF/spring.factories中獲取 EnableAutoConfiguration制定的值(自動配置類),這些值作為自動配置類導入到容器中,自動配置類就生效了,幫我們進行自動配置工作。以前我們需要自己配置的類,spring boot都自動配置了:
spring-boot-autoconfigure包中,包含了J2EE 所有整合方案和所有自動配置。
orgspringframeworkootspring-boot-autoconfigure1.5.9.RELEASEspring-boot-autoconfigure-1.5.9.RELEASE.jar!orgspringframeworkootautoconfigure使用Spring Initializer快速創建Spring Boot項目
首先,需要在IDEA中安裝 Spring Assisstant插件。
選擇需要的模塊,IDEA會自動聯網下載Spring boot 應用模板:
resources 文件夾中目錄結構:
static:保存所有靜態資源,如js、css、images;
templates:保存所有的模板頁面;(Spring Boot默認jar包使用嵌入式的Tomcat,默認不支持jsp頁面);可以使用模板引擎(freemarker,thymeleaf);
application.properties:Spring Boot 應用的配置文件,可以修改一些默認設置,如服務的端口號。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/74590.html
摘要:一概括,如果使用開發一個的應用創建一個項目并且導入相關包。創建一個編寫一個控制類需要一個部署應用的服務器如,特點設計目的是用來簡化新應用的初始搭建以及開發過程。啟動器可以和位于同一個包下,或者位于的上一級包中,但是不能放到的平級以及子包下。 一,Spring Boot 介紹 Spring Boot不是一個新的框架,默認配置了多種框架使用方式,使用SpringBoot很容易創建一個獨立運...
摘要:第二個類級別注解是。將引導應用程序,啟動,從而啟動自動配置服務器。比如想使用不同版本的,具體如下在標簽中還可以指定編譯的版本和項目的編碼格式指定項目編碼為使用插件可以為項目提供的操作方式,的個,默認。 引言 Spring 框架對于很多 Java 開發人員來說都不陌生。Spring 框架包含幾十個不同的子項目,涵蓋應用開發的不同方面。如此多的子項目和組件,一方面方便了開發人員的使用,另外...
摘要:簡介本系列基于的官方文檔,除去了文檔中一些冗余的東西,加上了一些自己的理解,意圖是在于幫助更多初識的人來進行一次探險。本系列建議具有基礎和使用經驗的同學學習。至此,一個程序就編寫完畢了。 簡介 本系列基于Spring Boot 2.x 的官方文檔,除去了文檔中一些冗余的東西,加上了一些自己的理解,意圖是在于幫助更多初識Spring Boot的人來進行一次探險。 本系列建議具有Java基...
摘要:前言以前總是利用創建工程來使用只知其然不知其所以然今天從搭建一個基于的的項目創建工程與安裝依賴利用或等創建一個工程一路即可此時的目錄結構如下修改安裝首先在中加入繼承的主程序和一些依賴然后的加入程序依賴使成為項目框架主程序 前言 以前總是利用start.spring.io創建spring-boot工程來使用 ,只知其然不知其所以然 今天從0搭建一個基于mvnen的spring-boot...
摘要:關于的自動配置,這個是重點之一,后面細說。在后續的學習中會慢慢學習到。紅色標記的就是已經掃描到了并初始化成功了。 以下內容,如有問題,煩請指出,謝謝 springboot出來也很久了,以前零散地學習了不少,不過很長時間了都沒有在實際中使用過了,忘了不少,因此要最近準備抽時間系統的學習積累下springboot,給自己留個根。 因為以前學過一些,這里就主要根據官方文檔來學習了,可能會根據...
閱讀 3448·2021-11-08 13:20
閱讀 3375·2021-09-30 09:48
閱讀 2577·2021-09-29 09:41
閱讀 598·2021-09-22 15:04
閱讀 2493·2021-08-23 09:44
閱讀 3688·2020-12-03 17:26
閱讀 1018·2019-08-30 14:10
閱讀 1575·2019-08-29 18:34