成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SpringCloud項目開發中實用技巧總結

開發 前端
如果使用 Spring Boot 配置日志設置,則應將此配置放在 bootstrap.[yml | properties] 中,以便將其應用于所有事件。

環境:SpringBoot2.7.12 + SpringCloud2021.0.7

1. 日志配置

如果使用 Spring Boot 配置日志設置,則應將此配置放在 bootstrap.[yml | properties] 中,以便將其應用于所有事件。注意:為了讓 Spring Cloud 正確初始化日志配置,不能使用自定義前綴。例如,在初始化日志系統時,Spring Cloud 無法識別使用 custom.loggin.logpath 的情況。

2. 配置發生變化

應用程序會偵聽EnvironmentChangeEvent事件,并以幾種標準方式對變化做出反應。當EnvironmentChangeEvent事件被監聽到時,它將收到發生變化的keys,應用程序將會做如下處理:

  • 重新綁定@ConfigurationProperties的Bean對象
    監聽器:ConfigurationPropertiesRebinder
  • 為 logging.level.* 中的任何屬性設置日志記錄器級別。
    監聽器:LoggingRebinder

你也可以自定義監聽EnvironmentChangeEvent事件

@Component
public class PackApplicationEventListener implements ApplicationListener<EnvironmentChangeEvent> {


  @Override
  public void onApplicationEvent(EnvironmentChangeEvent event) {
    System.out.println(event.getKeys()) ;
  }
}

3. @RefreshScope不是什么都能刷新

那些只能初始化一次的 Bean 上使用 @RefreshScope 注解。如果某個 Bean 是 "不可變"的,則必須使用 @RefreshScope 注解或通過如下配置指明完整的類名:

spring:
  cloud: 
    refresh: 
      extra-refreshable: com.pack.PackUser

注意:

如果你使用的數據源 Bean 是 HikariDataSource,則無法刷新。這是 spring.cloud.refresh.never-refreshable 的默認值。如果需要刷新,請選擇不同的數據源實現。

4. 加密與解密

Spring Cloud 有一個環境預處理器,用于在本地解密屬性值。可以使用 {cipher}* 形式的加密值,只要存在有效的密鑰,它們就會在主應用程序上下文獲得環境設置之前被解密。要在應用程序中使用加密功能,需要在類路徑中包含 Spring Security RSA(Maven 坐標:org.springframework.security:spring-security-rsa)。

#加密配置
encrypt:
  key: aaaabbbbccccdddd
  salt: dead
#---
#加密關鍵信息
db:
  password: '{cipher}6c05a3e62aa1f71b814fd283fc15197ec18a83b67d9da27dcb63c1b3925d68c1'

這里默認使用的AES算法,所以通過如下方式生成密文即可

TextEncryptor textEncryptor = new EncryptorFactory("xxx").create("xxxx") ;
textEncryptor.encrypt(...)

5. Acturator接口

對于 Spring Boot Actuator 應用程序,還提供了一些額外的管理端點:

  • POST 到 /actuator/env,以更新環境并重新綁定 @ConfigurationProperties 和日志級別。要啟用此端點,必須設置 management.endpoint.env.post.enabled=true。
  • /actuator/refresh 重新加載引導帶上下文并刷新 @RefreshScope Bean。
  • /actuator/restart 關閉 ApplicationContext 并重新啟動(默認禁用)。
  • /actuator/pause 和 /actuator/resume,用于調用生命周期方法(ApplicationContext 上的 stop() 和 start())。

6. 自定義屬性源

通過 spring.factories添加 PropertySourceLocator 類型的 Bean 來添加其他屬性源。如下示例:

public class CustomPropertySourceLocator implements PropertySourceLocator {


  @Override
  public PropertySource<?> locate(Environment environment) {
    Map<String, Object> values = new HashMap<>() ;
    values.put("config.mq.queue", "pack.test.queue") ;
    MapPropertySource source = new MapPropertySource("PACK", values) ;
    return source ;
  }


}

在spring.factories中添加如下配置

org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.pack.CustomPropertySourceLocator

以上是本篇文章的全部內容,希望對你有幫助。

責任編輯:武曉燕 來源: Spring全家桶實戰案例源碼
相關推薦

2022-10-11 08:00:47

多線程開發技巧

2020-03-09 10:31:58

vue前端開發

2009-09-04 10:27:28

Linux實用技巧linux操作系統linux

2022-03-23 09:18:10

Git技巧Linux

2009-12-21 15:50:39

2009-01-03 09:34:30

ASP.NET.NET性能優化

2011-04-08 15:40:01

Oracle認證

2022-11-03 10:28:59

PandasSAC機制

2024-05-17 08:52:43

SQL實用技巧行列轉換

2011-08-11 22:35:58

投影機常見問題

2009-07-24 11:25:15

asp.net編程

2025-03-03 00:15:00

JavaScript開發效率

2010-10-08 15:44:17

vim

2019-12-22 23:10:19

LinuxSSH加密

2009-12-09 11:21:30

Linux實用技巧

2019-11-25 10:12:59

Python技巧工具

2010-09-14 10:41:24

DIV+CSS排版

2024-04-16 08:24:58

Python_str__()方法字符串

2009-12-23 17:32:35

Linux構建軟路由

2019-10-10 16:31:51

PyCharmPythonWindows
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国模一区二区三区 | 精品久久久久久久 | 一区中文字幕 | 国产中的精品av涩差av | 一区二区成人在线 | 精品国产欧美一区二区 | 日韩精品一区二区三区视频播放 | 视频精品一区 | 毛片免费观看视频 | 国产福利视频在线观看 | 久草视频观看 | av毛片| 国产在线二区 | 日韩av网址在线观看 | 久久精品在线播放 | 日韩欧美专区 | 美女天天干天天操 | 亚洲精选一区二区 | 日日骚网 | 国产精品成人一区二区三区夜夜夜 | 亚洲一区二区久久 | 欧美久久久久久久 | 中文字幕亚洲一区二区va在线 | 久久小视频 | 成人aaa视频 | 欧美精品一级 | 日韩欧美在线观看 | 国产精品久久久久久影院8一贰佰 | 精品久久久久国产免费第一页 | 亚洲国产精品久久人人爱 | 久久这里只有精品首页 | 美女黄网站 | 亚洲精品1 | 国产欧美日韩一区二区三区在线观看 | 中文字幕一区二区三区四区五区 | 久久久精品一区 | 国产精品69毛片高清亚洲 | 色性av| 91观看| 我我色综合 | 91污在线 |