redis筆記,《Spring Boot實戰》讀書筆記

 2023-11-01 阅读 27 评论 0

摘要:2019獨角獸企業重金招聘Python工程師標準>>> 一、 讀后感 Spring Boot在技術圈火了好多年了,直到最近才去系統學習它,真是相見恨晚。當我在IDE編寫幾行代碼就把WEB應用啟動,頁面訪訪問出來hello world的時候,我驚訝的感嘆Spring構建WEB

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

一、 讀后感

Spring Boot在技術圈火了好多年了,直到最近才去系統學習它,真是相見恨晚。當我在IDE編寫幾行代碼就把WEB應用啟動,頁面訪訪問出來hello world的時候,我驚訝的感嘆Spring構建WEB應用竟如此簡單。

Spring Boot起源于2014年,是為簡化Spring項目中復雜難記的配置而生。回顧Spring開發歷程,我們定義bean以及依賴關系大概經歷這樣兩個階段:

  1. 在配置文件中定義。
  2. 使用注解定義。

redis筆記。雖然使用注解后我們寫配置文件的工作量減少了很多,但是還是得在配置文件中編寫一系列jar依賴,當實現一個功能時可能要引入多個依賴,而這些依賴關系我們難以記得住,更難以搞得清楚。我覺得以前的Spring開發還有兩個比較明顯的痛點:

  1. 配置文件中的jar依賴較多,且依賴關系復雜。
  2. 屬性配置值不規范,不方便讀取配置值。

Spring Boot最基本作用就是解決以上痛點,但是其集成的功能遠超過這些。Convention over configuration(約定優于配置)一句話可以簡單概述Spring Boot的基本功能,其起步依賴、自動配置已經約定的屬性值可以把以上兩個痛點處理得相當棒。

另外,Spring Boot自帶的端點度量功能可以讓我們更了解應用的運行狀況。其提供的快速測試和部署方法提高了我們的工作效率。

不得不承認,國外大牛寫的這本書確實容易理解,是一本很好的入門書籍,接下來是我對本書的一些技術總結。

二、啟動第一個Spring Boot項目

java高手筆記,只要三步就可以構建一個Spring Web應用

1. 使用Spring Initializr初始化Spring Boot項目

這一步創建Spring Boot腳手架,方式有好幾種,包括:通過Spring 官網Web界面創建、Spring Tool Suite創建、IDEA等。我就直接使用IDEA創建,效果如下:

這里java、和test目錄定義跟以前一樣。resources下面放應用的資源,static放頁面靜態文件,比如css,html文件。templates下面放模板文件,比如Velocity,Thymeleaf等。application.properties默認屬性文件,只要放里面寫key value對,應用就可以讀取到。

2.生成依賴文件,可以用gradle,maven,我是用maven。只要加入一個web的依賴,一個maven的插件

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

3. 寫代碼

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ControllerDemo {@RequestMapping("/")public String index(){return "hello springboot";}
}package com.example.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class ReadlistApplication {public static void main(String[] args) {SpringApplication.run(ReadlistApplication.class, args);}}

bootstrap心得體會,然后在IDEA啟動應用,一個web應用就起來了。默認插件服務器是tomcat,端口是8080.從中我們可以看到依賴是多么的簡潔,只要一個約定好的起步依賴就好了。

其中啟動引導注解:@SpringBootApplication,其包含三部分

  1. @Configuration。作用是告訴spring用基于java的配置,即java config
  2. @ComponentScan。開啟組件掃描
  3. @EnableAutoConfiguration。開啟自動配置,自動配置bean依賴的jar(自動配置是通過@Conditional 去關聯的,條件滿足就注入相關的依賴,步步關聯jar)

三、配置的設置方式

  1. 命令行參數
  2. java:comp/env里的JNDI屬性配置文件
  3. JVM系統屬性
  4. 操作系統環境變量
  5. random.*前綴屬性
  6. 應用程序以外的 application.properties,.application.yml文件
  7. 打包在應用程序內的 application.properties,.application.yml文件
  8. 通過PropertySource標注的屬性源
  9. 默認屬性

優先級從高到低,1優先級最高,高優先級的可以覆蓋低優先級的屬性值。

另外 兩個默認加載的兩個文件(application.properties,.application.yml)能放在以下四個位置,優先級從高到低

  1. 外置,在相對于應用程序運行目錄的 /config 目錄下
  2. 外置,在應用程序運行目錄下
  3. 內置,classpath的/config目錄下
  4. 內置,classpath目錄下

java程序設計讀書筆記?其它名稱的屬性文件,比如xx.properties文件,也可以放到以上四個位置加載,優先級一樣,但是需要用到@PropertySource("xx")加載,比如@PropertySource("classpath:aa.properties"),這個注解不能加載yml文件

xml文件需要使用@ImportResource加載

同一優先級同時有application.properties,.application.yml,那么application.yml的優先級更高

有兩種方式引用屬性值: @ConfigurationProperties("prefix")和@Value("key")

四、端點度量

python讀書筆記,訪問地址:http://localhost:8080/actuator/health

spring boot 2.x 以上默認只加載了 info / health 其他端點需要在配置文件中開啟: management.endpoints.web.exposure.include=*

各端點功能如下: beans:看到依賴 conditions:自動配置報告,依賴的匹配條件 env:查看屬性值,password、secret、key的值會*號屏蔽顯示。后面加屬性key可以查看單個屬性值,例如env/server.port mapping:查看映射 metrics:度量信息。運行時數據 trace:跟蹤web請求,查看請求頭信息 dump:線程活動 health:服務的健康狀態,健康指示器

shutdown:關閉運行中的應用程序,默認關閉 management.endpoint.shutdown.enabled=ture開啟

除了REST獲取端點信息,端點可以用shell,MBean查看端點信息

可以定制actuator,返回需要的健康信息, 也可以改變端點的id,啟用或者禁用端點 management.context-path=/actuator 設置端點的根目錄,2.x以上似乎已經加上了/actuator

五、單元測試

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ReadlistApplication.class)
@WebAppConfiguration
public class ReadlistApplicationTests {@Testpublic void contextLoads() {}
}

@RunWith(SpringJUnit4ClassRunner.class):引入Spring對JUnit4的支持。 @SpringBootTest(classes = ReadlistApplication.class):加載應用程序上下文。 @WebAppConfiguration:開啟WEB應用的配置,用于模擬ServletContext。

轉載于:https://my.oschina.net/chenzanjin/blog/3057548

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/165899.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息