javascript
maven springboot 除去指定的jar包_1. Spring Boot概述
1.1 Spring Boot理解
Spring Boot來簡化Spring應用開發,約定大于配置,去繁從簡,just run就能創建一個獨立的,產品級別的應用
背景
J2EE笨重的開發、繁多的配置、低下的開發效率、 復雜的部署流程、第三方技術集成難度大。
解決
“Spring全家桶”時代。
pring Boot => ?J2EE一站式解決方案
Spring Cloud => 分布式整體解決方案
優點
快速創建獨立運行的Spring項目以及與主流框架集成
使用嵌入式的Servlet容器,應用無需打成WAR包
starters自動依賴與版本控制
大量的自動配置,簡化開發,也可修改默認值
無需配置XML,無代碼生成,開箱即用
準生產環境的運行時應用監控 – 與云計算的天然集成
單體應用:ALL IN ONE
微服務:martin fowler,一種架構風格(服務微化)
一個應用應該是一組小型服務;可以通過HTTP的方式進行互通
微服務:每一個功能元素終都是一個可獨立替換和獨立升級的軟件單元
1.2 統一開發環境
Maven配置-settings.xml中添加
IDEA配置使用外部Maven
1.3 SpringBoot-HelloWorld
創建maven項目
導入SpringBoot相關依賴
創建主程序
編寫相關的Controller,Service
啟動主程序測試即可
簡化部署
pom.xml導入maven插件
將這個應用打成jar包
jar包直接使用 java -jar 命令進行執行
1.4 HelloWorld細節 - 場景啟動器(starter)
探究POM文件 - 父項目
spring-boot-dependencies項目即是SpringBoot的版本仲裁中心,以后我們導入依賴默認是不需要寫版本的。(沒有在該父項目里管理的依賴還是要聲明版本號)
探究POM文件 - 導入的依賴
spring-boot-starter-web:幫我們導入了web模塊正常運行所依賴的組件
引申結論
Spring-boot-starter:SpringBoot場景啟動器
SpringBoot將所有的功能場景都抽取出來做成了一個個的starters(啟動器),只需要在項目里引入這些starter,相關場景的所有依賴都會導入進來。
1.5 HelloWorld細節 ?- 探究主程序(主入口)類 - 自動配置
@SpringBootApplication
該注解標注在某個類上說明該類就是SpringBoot的主配置類,SpringBoot就應該運行這個類的main方法來啟動這個SpringBoot應用
@SpringBootConfiguration
SpringBoot的定義的注解,@SpringBootConfiguration繼承自@Configuration,二者功能也一致,標注當前類是配置類,并會將當前類內聲明的一個或多個以@Bean注解標記的方法的實例納入到spring容器中,并且實例名就是方法名。
@Configuration
@SpringBootConfiguration繼承自@Configuration
@Configuration是Spring定義的注解,用來表示當前類是一個配置類
因@Configuration上標注有@Component,所以配置類也是容器中的一個組件
@EnableAutoConfiguration
開啟自動配置功能。以前需要我們配置的東西,SpringBoot會自動幫助我們配置。
@AutoConfigurationPackage
自動配置包。其本身含義是將主配置類所在包及下面所有子包里面的所有組件掃描到Spring容器中
進入后發現其上標注有@Import({Registrar.class}),@Import是Spring的底層注解,用于給容器中導入一個組件即AutoConfigurationPackage.Registrar.class。該組件實現了ImportBeanDefinitionRegistrar,用于手工指定具體導入哪些組件。
@Import({AutoConfigurationImportSelector.class})
AutoConfigurationImportSelector的selectImports方法會將所有需要導入的組件以全類名的方式返回,這些組件就會被加載到當前SpringBoot創建并使用的IoC容器中。
這需要借助于Spring框架原有的一個工具類:SpringFactoriesLoader的支持,在AutoConfigurationImportSelector類中可以看到通過?SpringFactoriesLoader.loadFactoryNames()掃描所有jar包類路徑下META‐INF/spring.factories,把掃描到的這些文件的內容包裝成properties對象,從properties中獲取到EnableAutoConfiguration.class類(類名)對應的值,然后把他們添加在容器中
總結:
SpringBoot在啟動的時候從類路徑下的META-INF/spring.factories中獲取到EnableAutoConfiguration.class類(類名)對應的值(當前Springboot版本一共127個自動配置類),將這些值作為自動配置類導入到容器中,自動配置生效開始進行自動配置工作。
J2EE的整體整合解決方案和自動配置都在spring-boot-autoconfigure.jar下
1.6 使用向導快速創建SpringBoot應用
IDEA:使用 Spring Initializer快速創建項目
IDE都支持使用Spring的項目創建向導快速創建一個Spring Boot項目;
選擇我們需要的模塊;向導會聯網創建Spring Boot項目;
默認生成的Spring Boot項目特點:
主程序已經生成好了,只需要我們寫自己的邏輯即可
resources文件夾中目錄結構
static:保存所有的靜態資源;js css ?images;
templates:保存所有的模板頁面;(Spring Boot默認jar包使用嵌入式的Tomcat,默認不支持JSP頁面),可以使用模板引擎(freemarker、thymeleaf)
application.properties:Spring Boot應用的配置文件;可以修改一些默認設置
STS:使用 Spring Starter Project快速創建項目
總結
以上是生活随笔為你收集整理的maven springboot 除去指定的jar包_1. Spring Boot概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html select选择事件_用 Ja
- 下一篇: gateway sentinel 熔断