springboot之對以前的補充

Spring Cloud 初級

1、 Spring Boot 回顧

 

1 什麼是 Spring Boot?

 
Spring Boot 是在 Spring 的基礎之上產生的(確切的說是在 Spring4.0 的版本的基礎之上),
其中「Boot」的意思就是「引導」,意在簡化開發模式,是開發者可以快速的開發出基於
Spring 的應用。Spring Boot 含有一個內嵌的 web 容器。咱們開發的 web 應用不須要做爲 war
包部署到 web 容器中,而是做爲一個 jar 包,在啓動時根據 web 服務器的配置進行加載。
 

2 在沒有使用 Spring Boot 開發時項目時什麼樣的?

 
2.1在項目中存在大量的 xml 文件,配置至關繁瑣
 
2.2整合第三方框架時的配置問題
 
2.3低效的開發效率與部署效率問題3 Spring Boot 解決了什麼?
3.1Spring Boot 使配置簡單
3.2Spring Boot 使編碼加單
3.3Spring Boot 使部署簡單
3.4Spring Boot 使監控簡單
 

2、 Spring Boot 快速構建項目

 

1 打開 Spring Boot 的官網

 
https://projects.spring.io/spring-boot/
https://start.spring.io/ 構建 Spring Boot 的頁面

 

 

2 使用 Spring Boot 官網構建項目

 
2.1會自動的幫助咱們生成啓動類
 
2.2會自動生成存放靜態資源的目錄,還會生成全局配置文件
 
2.3會自動生成測試代碼,固然只是的一個結構。
 
2.4Spring Boot 官方推薦的 jdk 版本爲 1.8 或者更高
 

3 構建項目目錄結構

 

 

3、 Spring Boot 全局配置文件講解

 

1 修改內嵌容器的端口號

 
server.port=8888
 

2 自定義屬性配置

msg=Hello World
@Value("${msg}")
private String msg;
 

3 配置變量引用

 
hello=bjsxt
msg=Hello World ${hello}
@Value("${msg}")
private String msg;
 

4 隨機值配置

 

4.1配置隨機值

 
num=${random.int}
msg=Hello World ${num}
@Value("${msg}")
private String msg;
用處:配置隨機值,在程序中若是有一些運算須要一個隨機值,那麼能夠使用該方式來
生成。注意,只生成一次。
 

4.2配置隨機端口

 
server.port=${random.int[1024,9999]}用處:在 SpringCloud 的微服務中,咱們是不須要記錄 IP 與端口號的。那麼咱們也就不
須要去維護服務的端口號。讓他隨機生成就能夠了。

 

 

4、 yml 配置文件

 
是 Spring Boot 中新增的一種配置文件格式。特色:具有自然的樹狀結構
 
1 yml 配置文件與 properties 文件的區別
 
1.1配置文件的擴展名有變化
1.2配置文件中的語法有變化
 

2 yml 配置文件的語法

 
2.1在 properties 文件中單詞與單詞之間是以「.」進行分割,在 yml 中使用「:」進行分割
 
 
2.2yml 的數據格式和 json 的格式很像,都是 K-V 結構的。而且是經過「:」賦值
 
 
2.3在 yml 中縮進必定不能使用 TAB 件,不然會報錯。
 
2.4每一個 K 的冒號後面必定要加一個空格
 
2.5最後一層key能夠直接跟value

5、 logback 日誌記錄講解

 
1 導入相關的 jar 包
2 添加 logback.xml 配置文件
 
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!--定義日誌文件的存儲地址 勿在 LogBack 的配置中使用相對路徑--> <property name="LOG_HOME" value="${catalina.base}/logs/"
/>
<!-- 控制檯輸出 -->
<appender name="Stdout"
class="ch.qos.logback.core.ConsoleAppender">
<!-- 日誌輸出編碼 --> <layout
class="ch.qos.logback.classic.PatternLayout">
<!--格式化輸出:%d 表示日期,%thread 表示線程
名,%-5level:級別從左顯示 5 個字符寬度%msg:日誌消息,%n 是換行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} 
[%thread] %-5level %logger{50} - %msg%n 
</pattern>
</layout>
</appender>
<!-- 按照天天生成日誌文件 --> <appender name="RollingFile"
class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日誌文件輸出的文件名--> <FileNamePattern>${LOG_HOME}/server.%d{yyyy-MM-dd}.log</FileNa
mePattern> <MaxHistory>30</MaxHistory>
</rollingPolicy> <layout
class="ch.qos.logback.classic.PatternLayout">
<!--格式化輸出:%d 表示日期,%thread 表示線程
名,%-5level:級別從左顯示 5 個字符寬度%msg:日誌消息,%n 是換行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} 
[%thread] %-5level %logger{50} - %msg%n 
</pattern>
</layout>
<!--日誌文件最大的大小--> <triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日誌輸出級別 --> <root level="info"> <appender-ref ref="Stdout" />
<appender-ref ref="RollingFile" />
</root>
<!--日誌異步到數據庫 -->
<!-- <appender name="DB" 
class="ch.qos.logback.classic.db.DBAppender">
日誌異步到數據庫
<connectionSource 
class="ch.qos.logback.core.db.DriverManagerConnectionSource">
鏈接池
<dataSource 
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
<user>root</user>
<password>root</password>
</dataSource>
</connectionSource>
</appender> -->
</configuration>
View Code

 

 

 

6、 Spring Boot 的配置文件 - 多環境配置

 
profile:表明的就是一個環境變量
語法結構:application-{profile}.properties
 

1 需求:

 
application-dev.properties 開發環境
application-test.properteis 測試環境
application-prod.properteis 生產環境
 

2 運行項目:

 
java -jar xxx.jar --spring.profiles.active={profile}
 

3 完成的命令:

 
java -jar springboot-helloworld-0.0.1-SNAPSHOT.jar --spring.profiles.active=test|dev|prod
 

7、 Spring Boot 核心註解講解

 
@SpringBootApplication:表明是 SpringBoot 的啓動類。
@SpringBootConfiguration:經過 bean 對象來獲取配置信息
@Configuration:經過對 bean 對象的操做替代 spring 中 xml 文件
@EnableAutoConfiguration:完成一些初始化環境的配置。
@ComponentScan:來完成 spring 的組件掃描。替代以前咱們在 xml 文件中配置組件掃描的
配置<context:component-scan pacage=」....」>
@RestController:1,表示一個 Controller。2,表示當前這個 Controller 下的全部的方法都會以
json 格式的數據響應。
 

8、 回顧 SpringBoot 異常處理:

 
@ControllerAdvice+@ExceptionHandler 註解處理異常
代碼
@ControllerAdvice
public class MyControllerAdvice {
@ResponseBody
@ExceptionHandler(value=java.lang.Exception.class)
public Map<String, Object> myException(Exception ex) {
Map<String, Object> map = new HashMap<>();
map.put("code", 500);
map.put("msg", "出錯了。");
return map; }
@ResponseBody
@ExceptionHandler(value=java.lang.NullPointerException.c
lass)
public Map<String, Object> myException2(Exception ex) {
Map<String, Object> map = new HashMap<>();
map.put("code", -500);
map.put("msg", "空指針異常");
return map; }
@ResponseBody
@ExceptionHandler(value=com.bjsxt.springboothelloworld.e
xception.ApplicationException.class)
public Map<String, Object> myException3(Exception ex) {
Map<String, Object> map = new HashMap<>();
map.put("code", -800);
map.put("msg", ex.getMessage());
return map; } }
View Code

 

 

9、 如何監控 Spring Boot 的健康情況

 
1 使用 Actuator 檢查與監控的步驟
1.1在 pom 文件中添加 Actuator 的座標
1.2在全局配置文件中設置關閉安全限制
 

 

 

 

 

2 使用可視化的監控報表-Spring Boot Admin

 
2.1使用 Spring Boot Admin 的步驟
2.1.1搭建服務端
 
服務端其實也是一個 SpringBoot 項目
 
2.1.1.1 建立項目

 

 

 

 

2.1.1.2 訪問 Spring Boot Admin 的首頁
 
https://github.com/codecentric/spring-boot-admin
修改 pom 文件添加 Spring Boot Admin 座標
 
 
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>1.5.7</version>
</dependency>
 
2.1.1.3 修改啓動類,添加@EnableAdminServer
 
@SpringBootApplication
@EnableAdminServer
public class SpringbootServerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootServerApplication.class, 
args);
} }
View Code

 

 

2.1.2搭建客戶端
其實客戶端就是咱們須要監控的工程。
2.1.2.1 修改客戶端的 pom 文件添加依賴
 
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>1.5.7</version>
</dependency>
2.1.2.2 修改客戶端的 application.properteis 配置文件
management.security.enabled=false
#http://localhost:9090 表示是 Spring Boot Admin 服務單的 IP 地
址以及端口號
spring.boot.admin.url: http://localhost:9090
2.2監控信息講解
 
相關文章
相關標籤/搜索