Spring boot入門

Spring Boot簡介:


簡化Spring應用開發(fā)的一個框架;(減少繁瑣的配置)

整個Spring技術棧的一個大整合;(整合了Spring技術棧實現(xiàn))

J2EE開發(fā)的一站式解決方案;(微服務)

微服務


微服務:架構風格(服務微化)

一個應用應該是一組小型服務;可以通過HTTP的方式進行互通;

單體應用:ALL IN ONE

微服務:每一個功能元素最終都是一個可獨立替換和獨立升級的軟件單元;

詳細參照微服務文檔

簡單的說:傳統(tǒng)的服務器開發(fā)需將所有配置整合并創(chuàng)建war文件,用tomcat進行部署才能打開,當要擴增新功能或者修改代碼時,需要把整個程序重新部署一遍(效率低)
而微服務則是將每個功能模塊分別部署到服務器中,整合時只需要通過HTTP交互的方式將它們組合起來,加強了開發(fā)效率

SpringBoot入門程序


首先導入相關依賴
    <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>
編寫一個Spring boot應用
/**
 *  @SpringBootApplication 來標注一個主程序類,說明這是一個Spring Boot應用
 */
@SpringBootApplication
public class HelloWorldMainApplication {

    public static void main(String[] args) {
        // Spring應用啟動起來
        SpringApplication.run(HelloWorldMainApplication.class,args);
    }
}
編寫相關的Controller、Service
@Controller
public class HelloController {

    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "Hello World!";
    }
}

一個Spring boot程序就這樣完成了



打包運行的方式
 <!-- 這個插件,可以將應用打包成一個可執(zhí)行的jar包;-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

<!--將這個應用打成jar包,直接使用java -jar的命令進行執(zhí)行;-->

Spring boot自動配置原理


父項目

<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>
他來真正管理Spring Boot應用里面的所有依賴版本;

Spring Boot的版本仲裁中心;

以后我們導入依賴默認是不需要寫版本;(沒有在dependencies里面管理的依賴自然需要聲明版本號)

啟動器

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

? spring-boot-starter:spring-boot場景啟動器;幫我們導入了web模塊正常運行所依賴的組件;

Spring Boot將所有的功能場景都抽取出來,做成一個個的starters(啟動器),只需要在項目里面引入這些starter相關場景的所有依賴都會導入進來。要用什么功能就導入什么場景的啟動器


主程序類,主入口類

/**
 *  @SpringBootApplication 來標注一個主程序類,說明這是一個Spring Boot應用
 */
@SpringBootApplication
public class HelloWorldMainApplication {

    public static void main(String[] args) {

        // Spring應用啟動起來
        SpringApplication.run(HelloWorldMainApplication.class,args);
    }
}

@SpringBootApplication: Spring Boot應用標注在某個類上說明這個類是SpringBoot的主配置類,SpringBoot就應該運行這個類的main方法來啟動SpringBoot應用;

常用配置

使用@ConfigurationProperties注解 提示 “Spring Boot Configuration Annotation Processor not found in classpath ”


解決方法:
注入依賴

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-configuration-processor</artifactId>
   <optional>true</optional>
</dependency>

Controller(控制器獲取參數(shù)注解的使用)



@PathVariable使用方法:


package com.ygg.luckeymoney;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;

@RestController
@RequestMapping("/hello")
public class HelloController {

    @GetMapping("/say/{id}")
    //這里id是抓取鏈接中占位符位置的那個參數(shù)值
    public String say(@PathVariable("id")Integer id){
        return "id  " + id;
    }
}

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容