1. 程式人生 > >Springboot學習筆記01--

Springboot學習筆記01--

只需要 target 單元 ssl hello relative ges 發的 depend

---恢復內容開始---

-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 編寫相關的ControllerService
@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項目

1IDEA:使用 Spring Initializer快速創建項目

IDE都支持使用Spring的項目創建向導快速創建一個Spring Boot項目; 選擇我們需要的模塊;向導會聯網創建Spring Boot項目; 默認生成的Spring Boot項目;

主程序已經生成好了,我們只需要我們自己的邏輯 resources文件夾中目錄結構

static:保存所有的靜態資源; js css images;
templates:保存所有的模板頁面;(Spring Boot默認jar包使用嵌入式的Tomcat,默認不支持JSP頁 面);可以使用模板引擎(freemarkerthymeleaf);
       application.properties:Spring Boot應用的配置文件;可以修改一些默認設置;


---恢復內容結束---

Springboot學習筆記01--