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