Springboot學習筆記01--
---恢復內容開始---
-1 springboot簡介
簡化spring的應用開發的一個框架
整個spring技術棧的一個大整合
J2EE開發的一站式解決方案
-2 微服務
2014年 martin fowler 的一篇博客中有提到介紹
微服務:架構風格(服務微化)
一個應用應該是一組小型服務:可以通過HHTP的方式進行互通;
每一個功能元素最終都是一個可以獨立替換和獨立升級的軟件單元
-3 環境準備
jdk 1.8
ieda
maven 3.3以上版本
-4 spring boot helloworld 一個功能
瀏覽器發送hello請求,服務器接受請求並處理,響應Hello World字符串; 1 創建一個maven工程;(jar) 2、導入spring boot相關的依賴
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐web</artifactId> </dependency> </dependencies>
3 編寫一個主程序;啟動Spring Boot應用
/** * @SpringBootApplication 來標註一個主程序類,說明這是一個Spring Boot應用 */ @SpringBootApplication publicclassHelloWorldMainApplication{ public static void main(String[] args) { // Spring應用啟動起來 SpringApplication.run(HelloWorldMainApplication.class,args); } }
4 編寫相關的Controller、Service
@Controller publicclassHelloController{ @ResponseBody @RequestMapping("/hello") public String hello(){ return "Hello World!"; }
5 運行主程序測試,在瀏覽器訪問我們配置的映射 /hello。查看結果。 6,spring boot 簡化部署功能在pom文件中添加如下 配置信息
<!‐‐ 這個插件,可以將應用打包成一個可執行的jar包;‐‐> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐maven‐plugin</artifactId> </plugin> </plugins> </build>
5 Hello world 的探究
1 pom 文件
01 父項目
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐parent</artifactId> <version>1.5.9.RELEASE</version> </parent> 他的父項目是 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐dependencies</artifactId> <version>1.5.9.RELEASE</version> <relativePath>../../spring‐boot‐dependencies</relativePath> </parent> 他來真正管理springboot應用裏面的所有版本的依賴
我們可以稱它為springboot的版本仲裁中心,以後我們導入的依賴默認事不需要寫版本;(沒有在depencies裏面管理的依賴自然要生明版本號)
2啟動器
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐web</artifactId> </dependency>
spring-boot-starter-web :
spring-boot-starter:是spring-boot場景啟動器;幫我們導入了web模塊正常運行所需要的依賴組件;
Spring Boot將所有的功能場景都抽取出來,做成一個個的starters(啟動器),只需要在項目裏面引入這些starter 相關場景的所有依賴都會導入進來。要用什麽功能就導入什麽場景的啟動器
2 主程序類,主入口類
/** * @SpringBootApplication 來標註一個主程序類,說明這是一個Spring Boot應用 */ @SpringBootApplication publicclassHelloWorldMainApplication{ public static void main(String[] args) { // Spring應用啟動起來 SpringApplication.run(HelloWorldMainApplication.class,args); } }
@SpringBootApplication: Spring Boot應用標註在某個類上說明這個類是SpringBoot的主配置類,SpringBoot 就應該運行這個類的main方法來啟動SpringBoot應用;
註解 @SpringBootApplication 的詳細信息如下
@Target(ElementType.TYPE)
2 @Retention(RetentionPolicy.RUNTIME)
3 @Documented
4 @Inherited
5 @SpringBootConfiguration
6 @EnableAutoConfiguration
7 @ComponentScan(excludeFilters={
8 @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
9 @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
10 public@interfaceSpringBootApplication{
@SpringBootConfiguration:Spring Boot的配置類; 標註在某個類上,表示這是一個Spring Boot的配置類;
@Configuration:配置類上來標註這個註解; 配置類 ----- 配置文件;配置類也是容器中的一個組件;@Component
@SpringBootConfiguration:Spring Boot的配置類; 標註在某個類上,表示這是一個Spring Boot的配置類; @Configuration:配置類上來標註這個註解;
配置類 ----- 配置文件;配置類也是容器中的一個組件; @AutoConfigurationPackage:自動配置包 @Import(AutoConfigurationPackages.Registrar.class):Spring的底層註解@Import,給容器中導入一個組件;導入的組件由 AutoConfigurationPackages.Registrar.class;
將主配置類(@SpringBootApplication標註的類)的所在包及下面所有子包裏面的所有組件掃描到容器;
@Import(EnableAutoConfigurationImportSelector.class);
給容器中導入組件?EnableAutoConfigurationImportSelector:導入哪些組件的選擇器; 將所有需要導入的組件以全類名的方式返回;這些組件就會被添加到容器中;
會給容器中導入非常多的自動配置類(xxxAutoConfiguration);就是給容器中導入這個場景需要的所有組件, 並配置好這些組件;
有了自動配置類,免去了我們手動編寫配置註入功能組件等的工作; SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader); Spring Boot在啟動的時候從類路徑下的META-INF/spring.factories中獲取EnableAutoConfiguration指定的值,將
以前我們需要自己配置的東西自動配置類都將幫我找。
J2EE的整體整合解決方案和自動配置都在spring-boot-autoconfigure-1.5.9.RELEASE.jar
6。使用Spring Initializer快速創建Spring Boot項目
1、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應用的配置文件;可以修改一些默認設置;
---恢復內容結束---
Springboot學習筆記01--