javascript
【Spring-Boot】【入门 01】第一个 Spring Boot 程序
文章目錄
- 一、SpringBoot入門
- 1. SpringBoot簡介
- 2.微服務
- 3.Spring Boot 的基礎知識
- 4.環境約束
- 5.環境配置
- maven設置
- IDEA設置
- 二、創建一個HelloWorld項目
- 1.創建maven工程
- 2.導入Spring Boot相關依賴
- 3. 編寫一個主程序->啟動Spring Boot
- 4. 編寫相關的Controller、Service
- 5. 運行程序
- 6. 簡化部署
- 7.細節探究
- 1.pom.xml文件
- 1.父項目
- 2.啟動器
- 3. 主程序類、主入口類
- @SpringBootApplication
- @SpringBootConfiguration
- **@EnableAutoConfiguration**
- @Import({AutoConfigurationImportSelector.class})
- 8. 使用Spring Initializer快速創建Spring Boot項目
一、SpringBoot入門
1. SpringBoot簡介
簡化Spring應用開發一個框架;
整個Spring技術棧的一個大整合
J2EE開發的一站式解決方案
2.微服務
2014,martin fowler
微服務:架構風格(服務微化)
一個應用應該是一組小型服務;可以通過HTTP的方式進行互通;
每一個功能元素最終都是一個可獨立替換和獨立升級的軟件單元,由點成網,可以精準對點的修改、刪除、添加
3.Spring Boot 的基礎知識
Spring框架的使用經驗
熟練使用Maven進行項目構建和依賴管理
熟練使用Eclipse或者IDEA
4.環境約束
-jdk1.8
-maven:maven 3.3.99
-IDEA2018
-Spring Boot 2.2.5
5.環境配置
spring-boot官方文檔:文檔地址
maven設置
在maven中的setting.xml配置文件的profiles標簽添加
<profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties></profile>IDEA設置
在 File-> settings ->搜索框中搜索“maven”->對以下三個變量進行修改
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wdfXffXJ-1586584453439)(E:\Notes\SpringBoot\配置maven.png)]
二、創建一個HelloWorld項目
一個功能:瀏覽器發送hello請求,服務器接受請求并處理,相應Hello World字符串
1.創建maven工程
流程:project -> new project -> maven -> 設置自己的域名和項目名,我的域名是:com.ideal,項目名是:spring-boot-01-helloworld->選擇存儲的位置->點擊右下角的Enable Auto-Import(在pom.xml中寫入一些依賴,編譯器會自動導入相關依賴文件)
2.導入Spring Boot相關依賴
在pom.xml寫入一些依賴,以2.2.5的版本為例
<!--這是繼承一個父項目--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><!--web依賴--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>3. 編寫一個主程序->啟動Spring Boot
/*** @ClassName: HelloWorldMainApplication* @description:這是一個主程序* @author: FFIDEAL* @Date: 2020/4/8 17:22*//* * 標注 @SpringBootApplication 來標注一個主程序類,說明這是一個Spring Boot應用 * */ @SpringBootApplication public class HelloWorldMainApplication {public static void main(String[] args) {//Spring應用啟動SpringApplication.run(HelloWorldMainApplication.class,args);} }4. 編寫相關的Controller、Service
編寫Controller類,將瀏覽器的hello請求發送后返回一串hello world
/*這是一個請求類*/ @Controller public class HelloController {@ResponseBody /*把helloworld寫入瀏覽器*/@RequestMapping("/hello") /*這是一個接受瀏覽器hello請求*/public String hello(){return "Hello World";} }5. 運行程序
http://localhost:8080/hello
6. 簡化部署
在pom.xml寫入一個依賴,這個插件可以將應用打包成一個可執行的jar包。
<!--這個插件可以將應用打包成一個可執行的jar包--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>之后再Maven Projects中的Lifcycle保重的package包,這樣就可以到處jar包了
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-2HVJbZ3G-1586584453441)(E:\Notes\SpringBoot\打包jar.png)]
之后在運行這個jar包,也完成了部署
7.細節探究
1.pom.xml文件
1.父項目
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><!--上面代碼的父項目是以下代碼,真正管理SpringBoot的所有依賴版本--> <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.2.5.RELEASE</version><relativePath>../../spring-boot-dependencies</relativePath></parent> <!--在artifictId點進去就可以看到以下版本的限制--><properties><!--一些依賴版本的限制,包含了幾乎所有場景需要的依賴版本--><activemq.version>5.15.11</activemq.version><antlr2.version>2.7.7</antlr2.version><appengine-sdk.version>1.9.78</appengine-sdk.version><artemis.version>2.10.1</artemis.version><aspectj.version>1.9.5</aspectj.version><assertj.version>3.13.2</assertj.version><atomikos.version>4.0.6</atomikos.version><awaitility.version>4.0.2</awaitility.version>....</properties>Spring Boot的版本仲裁中心:以后我們導入依賴默認是不需要寫版本的,但是沒有在其中的自然還是要寫版本的
2.啟動器
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <!--點擊artifactId連接,發現其中又有一些它的父依賴-->spring-boot-starter-web:spring-boot-start是spring-boot場景啟動器,幫我們導入了web模塊正常運行所依賴的組件
Spring Boot將所有功能場景都抽取出來了,做成一個個的starters(啟動器,相關啟動器地址),只需要在項目中導入這些starter相關場景的所有依賴都會導入進來。要什么功能就導入什么場景的啟動器(如郵件開發、web等等,都可以參照文檔)
3. 主程序類、主入口類
/*** @ClassName: HelloWorldMainApplication* @description:這是一個主程序* @author: FFIDEAL* @Date: 2020/4/8 17:22*//** 標注 @SpringBootApplication 來標注一個主程序類,說明這是一個Spring Boot應用 * */@SpringBootApplicationpublic class HelloWorldMainApplication {public static void main(String[] args) {//Spring應用啟動SpringApplication.run(HelloWorldMainApplication.class,args);}}@SpringBootApplication
:Spring Boot應用標注在某個類上說明這個類是Spring Boot的主配置類,Spring Boot就應該運行這個類的main方法來啟動Spring Boot應用
//查看SpringBootApplication的底層,我們可以看到這樣一些注解 @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的配置類;標注在某個類上,表示這是一個Spring Boot的配置類
? @Configuration:配置類上來標注這個注解;
? 配置類 ----- 配置文件;配置類也是容器中的一個組件;@Component
@EnableAutoConfiguration
? 開啟自動配置功能;以前我們需要配置的東西,Spring Boot幫我們自動配置;@EnableAutoConfiguration告訴Spring Boot開啟自動配置功能;這樣自動配置才能生效;
//進入@EnableAutoConfiguration的底層,我們可以看到如下的注解 @AutoConfigurationPackage @Import({AutoConfigurationImportSelector.class}) public @interface EnableAutoConfiguration {? @AutoConfigurationPackage:自動配置包
? @Import(AutoConfigurationPackage.Registrar.class):Spring的底層注解@import,給容器導入一個組件,導入的的組件由AutoConfigurationPackage.Registrar.class決定
? 將主配置類的(即@SpringBootApplication標注的類)的所在包及下面所有子包里面的所有組件掃描到Spring容器;
@Import({AutoConfigurationImportSelector.class})
? AutoConfigurationImportSelector:導入一些組件的選擇器;
? 將所有需要導入的組件以全類名的方式返回,這些組件會就會被添加到容器中;
? 會給容器中導入非常多的自動配置類(xxxAutoConfiguration);就是給容器中導入這個場景需要的所有組件,配置好這些組件
--------------可以學習Spring注解版,了解相關注解--------------------
8. 使用Spring Initializer快速創建Spring Boot項目
IDE都支持使用Spring的項目創建向導快速創建一個Spring-Boot項目,流程如下
選擇我們需要的模塊,向導會聯網創建Spring-Boot
默認生成的Spring Boot:
-
主程序已經創建好了,我們只需要創建自己的邏輯
-
resource文件夾中目錄結構
-
static:保存所有的靜態資源;js|css|images;
-
templates:保存所有的模板頁面;Spring-Boot默認jar包使用嵌入式的Tomcat,默認不支持JSP頁面;可以使用模板引擎(freemarker、thymeleaf);
-
application.properties:Spring-Boot應用的配置文件,可以修改一些默認設置
#重新設置端口號 server.port=8080
-
ng Boot:
-
主程序已經創建好了,我們只需要創建自己的邏輯
-
resource文件夾中目錄結構
-
static:保存所有的靜態資源;js|css|images;
-
templates:保存所有的模板頁面;Spring-Boot默認jar包使用嵌入式的Tomcat,默認不支持JSP頁面;可以使用模板引擎(freemarker、thymeleaf);
-
application.properties:Spring-Boot應用的配置文件,可以修改一些默認設置
#重新設置端口號 server.port=8080
-
總結
以上是生活随笔為你收集整理的【Spring-Boot】【入门 01】第一个 Spring Boot 程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java】14 JDBC编程学习总结
- 下一篇: gradle idea java ssm