摘要:簡(jiǎn)介簡(jiǎn)化應(yīng)用開發(fā)的一個(gè)框架整個(gè)技術(shù)棧的一個(gè)大整合開發(fā)的一站式解決方案微服務(wù),微服務(wù)架構(gòu)風(fēng)格服務(wù)微化一個(gè)應(yīng)用應(yīng)該是一組小型服務(wù)可以通過的方式進(jìn)行互通單體應(yīng)用微服務(wù)每一個(gè)功能元素最終都是一個(gè)可獨(dú)立替換和獨(dú)立升級(jí)的軟件單元環(huán)境準(zhǔn)備推薦及以上以上版
1、Spring Boot 簡(jiǎn)介
簡(jiǎn)化Spring應(yīng)用開發(fā)的一個(gè)框架; 整個(gè)Spring技術(shù)棧的一個(gè)大整合; J2EE開發(fā)的一站式解決方案;
2、微服務(wù)
2014,martin fowler
微服務(wù):架構(gòu)風(fēng)格(服務(wù)微化)
一個(gè)應(yīng)用應(yīng)該是一組小型服務(wù);可以通過HTTP的方式進(jìn)行互通; 單體應(yīng)用:ALL IN ONE
微服務(wù):每一個(gè)功能元素最終都是一個(gè)可獨(dú)立替換和獨(dú)立升級(jí)的軟件單元;
3、環(huán)境準(zhǔn)備
–jdk1.8:Spring Boot 推薦jdk1.7及以上;java version “1.8.0_112”
–maven3.x:maven 3.3以上版本;Apache Maven 3.3.9
–IntelliJIDEA2017:IntelliJ IDEA 2017.2.2 x64、STS
–SpringBoot 1.5.9.RELEASE:1.5.9; 統(tǒng)一環(huán)境;
1、MAVEN設(shè)置;
給maven 的settings.xml配置文件的pro?les標(biāo)簽添加
jdk‐1.8 true 51.8 1.8 1.8 1.8
2、IDEA設(shè)置
整合maven進(jìn)來;
4、Spring Boot HelloWorld
一個(gè)功能:
瀏覽器發(fā)送hello請(qǐng)求,服務(wù)器接受請(qǐng)求并處理,響應(yīng)Hello World字符串;
1、創(chuàng)建一個(gè)maven工程;(jar)
2、導(dǎo)入spring boot相關(guān)的依賴
org.springframework.boot spring‐boot‐starter‐parent 1.5.9.RELEASE org.springframework.boot spring‐boot‐starter‐web
3、編寫一個(gè)主程序;啟動(dòng)Spring Boot應(yīng)用
/** * @SpringBootApplication 來標(biāo)注一個(gè)主程序類,說明這是一個(gè)Spring Boot應(yīng)用 */ @SpringBootApplication public class HelloWorldMainApplication { public static void main(String[] args) { // Spring應(yīng)用啟動(dòng)起來 SpringApplication.run(HelloWorldMainApplication.class,args); } }
4、編寫相關(guān)的Controller、Service
@Controller public class HelloController { @ResponseBody @RequestMapping("/hello") public String hello(){ return "Hello World!"; } }
5、運(yùn)行主程序測(cè)試
6、簡(jiǎn)化部署
org.springframework.boot spring‐boot‐maven‐plugin
將這個(gè)應(yīng)用打成jar包,直接使用java -jar的命令進(jìn)行執(zhí)行;
5、Hello World探究
1、POM文件
1、父項(xiàng)目
他的父項(xiàng)目是 org.springframework.boot spring‐boot‐starter‐parent 1.5.9.RELEASE org.springframework.boot spring‐boot‐dependencies 1.5.9.RELEASE ../../spring‐boot‐dependencies
Spring Boot的版本仲裁中心;
以后我們導(dǎo)入依賴默認(rèn)是不需要寫版本;(沒有在dependencies里面管理的依賴自然需要聲明版本號(hào))
2、啟動(dòng)器
org.springframework.boot spring‐boot‐starter‐web
spring-boot-starter-web:
spring-boot-starter:spring-boot場(chǎng)景啟動(dòng)器;幫我們導(dǎo)入了web模塊正常運(yùn)行所依賴的組件;
Spring Boot將所有的功能場(chǎng)景都抽取出來,做成一個(gè)個(gè)的starters(啟動(dòng)器),只需要在項(xiàng)目里面引入這些starter
相關(guān)場(chǎng)景的所有依賴都會(huì)導(dǎo)入進(jìn)來。要用什么功能就導(dǎo)入什么場(chǎng)景的啟動(dòng)器
2、主程序類,主入口類
/** * @SpringBootApplication 來標(biāo)注一個(gè)主程序類,說明這是一個(gè)Spring Boot應(yīng)用 */ @SpringBootApplication public class HelloWorldMainApplication { public static void main(String[] args) { // Spring應(yīng)用啟動(dòng)起來 SpringApplication.run(HelloWorldMainApplication.class,args); } }
@SpringBootApplication: Spring Boot應(yīng)用標(biāo)注在某個(gè)類上說明這個(gè)類是SpringBoot的主配置類,SpringBoot就應(yīng)該運(yùn)行這個(gè)類的main方法來啟動(dòng)SpringBoot應(yīng)用;
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication {
@SpringBootConfiguration:Spring Boot的配置類;
標(biāo)注在某個(gè)類上,表示這是一個(gè)Spring Boot的配置類;
@Configuration:配置類上來標(biāo)注這個(gè)注解;
配置類 ----- 配置文件;配置類也是容器中的一個(gè)組件;@Component
@EnableAutoConfiguration:開啟自動(dòng)配置功能;
以前我們需要配置的東西,Spring Boot幫我們自動(dòng)配置;@EnableAutoConfiguration告訴SpringBoot開啟自動(dòng)配置功能;這樣自動(dòng)配置才能生效;
@AutoConfigurationPackage @Import(EnableAutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration {
@AutoConfigurationPackage:自動(dòng)配置包
@Import(AutoConfigurationPackages.Registrar.class):
Spring的底層注解@Import,給容器中導(dǎo)入一個(gè)組件;導(dǎo)入的組件由AutoConfigurationPackages.Registrar.class;
將主配置類(@SpringBootApplication標(biāo)注的類)的所在包及下面所有子包里面的所有組件掃描到Spring容器;
@Import(EnableAutoConfigurationImportSelector.class);
給容器中導(dǎo)入組件?
EnableAutoConfigurationImportSelector:導(dǎo)入哪些組件的選擇器;
將所有需要導(dǎo)入的組件以全類名的方式返回;這些組件就會(huì)被添加到容器中;
會(huì)給容器中導(dǎo)入非常多的自動(dòng)配置類(xxxAutoConfiguration);就是給容器中導(dǎo)入這個(gè)場(chǎng)景需要的所有組件,并配置好這些組件;
在這里插入圖片描述
有了自動(dòng)配置類,免去了我們手動(dòng)編寫配置注入功能組件等的工作;SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader);
Spring Boot在啟動(dòng)的時(shí)候從類路徑下的META-INF/spring.factories中獲取EnableAutoConfiguration指定的值,將這些值作為自動(dòng)配置類導(dǎo)入到容器中,自動(dòng)配置類就生效,幫我們進(jìn)行自動(dòng)配置工作;以前我們需要自己配置的東西,自動(dòng)配置類都幫我們;
J2EE的整體整合解決方案和自動(dòng)配置都在spring-boot-autoconfigure-1.5.9.RELEASE.jar;
Spring注解版
6、使用Spring Initializer快速創(chuàng)建Spring Boot項(xiàng)目
1、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)目;
主程序已經(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è)置;
2、STS使用 Spring Starter Project快速創(chuàng)建項(xiàng)目
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75043.html
摘要:編寫一個(gè)接口創(chuàng)建命名為根據(jù)實(shí)際情況修改創(chuàng)建類,內(nèi)容如下啟動(dòng)主程序,使用等工具發(fā)起請(qǐng)求,可以看到頁(yè)面返回編寫單元測(cè)試用例打開的下的測(cè)試入口類。 簡(jiǎn)介 在您第1次接觸和學(xué)習(xí)Spring框架的時(shí)候,是否因?yàn)槠浞彪s的配置而退卻了?在你第n次使用Spring框架的時(shí)候,是否覺得一堆反復(fù)黏貼的配置有一些厭煩?那么您就不妨來試試使用Spring Boot來讓你更易上手,更簡(jiǎn)單快捷地構(gòu)建Spring應(yīng)...
摘要:是一個(gè)輕量級(jí)框架,可以完成基于的應(yīng)用程序的大部分配置工作。本文介紹如何使用操作,通過代碼在里插入數(shù)據(jù)。首先按照這個(gè)教程的第一篇文章的介紹,在本地搭建好的環(huán)境最簡(jiǎn)單的入門教程之一環(huán)境搭建。 Spring Boot 是一個(gè)輕量級(jí)框架,可以完成基于 Spring 的應(yīng)用程序的大部分配置工作。Spring Boot的目的是提供一組工具,以便快速構(gòu)建容易配置的Spring應(yīng)用程序,省去大量傳統(tǒng)S...
摘要:在中,選擇填寫你的項(xiàng)目的和等項(xiàng)目基本信息之后,在依賴中選擇之后。從入門到精通初識(shí)注解接口您的關(guān)注是我最大的動(dòng)力 Spring Boot極大的簡(jiǎn)化了java項(xiàng)目的開發(fā),在之前如果想要開發(fā)一個(gè)java項(xiàng)目,需要安裝tomcat或者其他容器插件。但是Spring?Boot內(nèi)部已經(jīng)集成了tomcat,因此項(xiàng)目的啟動(dòng)異常的方便。而且Spring?Boot的開發(fā)中有很多默認(rèn)的配置,幫助我們省去了相...
摘要:哪吒社區(qū)技能樹打卡打卡貼函數(shù)式接口簡(jiǎn)介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號(hào)作者架構(gòu)師奮斗者掃描主頁(yè)左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進(jìn)步歡迎點(diǎn)贊收藏留言前情提要無意間聽到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨(dú)立帶隊(duì)的人太少,簡(jiǎn)而言之,不缺干 ? 哪吒社區(qū)Java技能樹打卡?【打卡貼 day2...
閱讀 2665·2021-11-22 15:24
閱讀 1402·2021-11-17 09:38
閱讀 2790·2021-10-09 09:57
閱讀 1234·2019-08-30 15:44
閱讀 2474·2019-08-30 14:00
閱讀 3565·2019-08-30 11:26
閱讀 2957·2019-08-29 16:28
閱讀 773·2019-08-29 13:56