1. 程式人生 > 實用技巧 >springboot:springboot初識(相關概念、新建專案)

springboot:springboot初識(相關概念、新建專案)

1、簡介

(1)出現的背景

  • javaee的開發需要笨重繁多的配置,開發效率低下,部署流暢複雜,第三方技術整合度大。springboot能夠簡化spring的開發,約定大於配置
  • 整合了spring技術棧
  • javaee開發的一站式解決方案

(2)優點

  • 快速建立獨立執行的spring專案以及主流框架整合
  • 使用嵌入式的servlet容器,應用無需打成war包
  • struts自動依賴於版本控制
  • 大量的自動配置,簡化開發,也可以修改預設值
  • 無需配置xml,無程式碼生成,開箱即可
  • 準生產環境的執行時應用監控
  • 與雲端計算的天然整合

(3)微服務

單體應用:

  • 開發部署簡單,不牽涉到多個應用的互聯。但是隻要修改一處就要重新部署,還有日益增長的軟體需求,使得應用過大。

微服務:

  • 與單體用用的單體複製部署到多個伺服器來滿足使用者需求不同,微服務是把每一個功能元素放進一個獨立的伺服器中,是功能模組級別的複製,而不是整個應用。
  • 每一個功能元素都是一個可獨立替換和獨立升級的軟體單元
  • 存在部署和運維較複雜的缺點
  • springboot快速構建一個應用、springcloud用於模組之間的互調、springcloud Data Flow分散式之間的流式計算批處理

2、新建SpringBoot專案

(1)新建一個maven的web工程

(2)在maven的配置檔案中匯入springboot的依賴

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.5.9.RELEASE</version>
      <type>pom</type>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>1.5.9.RELEASE</version>
    </dependency>

(3)編寫主程式並啟動SpringBoot應用:

//添加註解,標註一個主程式類,說明這是一個springboot應用
@SpringBootApplication(scanBasePackages = "pers")
public class HelloWorld {
    public static void main(String[] args) {
        //啟動spring應用
        SpringApplication.run(HelloWorld.class,args);
    }
}

(4)書寫controller層程式碼

@Controller
public
class HelloController { @ResponseBody// @RequestMapping("/hello") public String hello(){ return "hello world"; } }

@ResponseBody:這個類的所有方法返回的資料直接寫給瀏覽器,如果是物件轉換為json型別的資料

(5)執行主程式

可以看出,在springboot的專案中,不需要配置檢視解析器、前端控制器,甚至連tomcat都不需要配置

3、將springboot專案打成jar包

(1)匯入依賴

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <version>1.5.9.RELEASE</version>
    </dependency>

(2)執行生命週期函式

要確保maven的配置檔案中的配置是生成jar包:

生成jar包成功:

(3)執行生成的jar包:在cmd中用java -jar命令執行

4、依賴

(1)父專案

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.5.9.RELEASE</version>
      <type>pom</type>
    </dependency>

來管理springboot應用裡面的所有依賴,是springboot的版本仲裁中心,例如:匯入它管理範圍內的依賴是不需要寫版本號的,因為裡面蘊含所有的版本資訊

(2)spring-boot-starter-web依賴

   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>1.5.9.RELEASE</version>
    </dependency>

spring-boot-starter:springboot的場景啟動器,幫我們匯入了web模組正常執行所依賴的元件。根據不同的功能,可以選擇springboot的不同啟動器。因為springboot將所有的功能都抽取了出來,做成一個個的啟動器,只需要在專案裡面引入這些啟動器,相關場景的所有依賴都會匯入進來

5、主程式類

(1)@SpringBootApplication註解

@SpringBootApplication(scanBasePackages = "pers")
public class HelloWorld {
    public static void main(String[] args) {
        //啟動spring應用
        SpringApplication.run(HelloWorld.class,args);
    }
}

@SpringBootApplication標註在某一個類上面後就說明這個類是springboot的主配置類,可以執行這個類的main方法來啟動springboot應用

(2)檢視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}
)}
)

@SpringBootConfiguration:springboot的配置類,表示這是一個springboot的配置類

@EnableAutoConfiguration:開啟自動配置功能。例如:包掃描等。在配置@SpringBootApplication註解的時候,預設情況是隻掃描主類的包,因此在掃描其他包的時候需要新增引數

6、使用spring initializer快速建立Spring Boot專案

(1)新建專案

(2)輸入相關引數

(3)選擇需要的功能(這裡只選擇web功能)

(4)建立專案成功

能夠正常訪問:

(5)特點

主程式已經生成,只需要新增業務邏輯即可

目錄結構: