最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring?Boot?根據(jù)配置決定服務(wù)(集群、單機(jī))是否使用某些主件的操作代碼

 更新時(shí)間:2025年04月18日 08:46:18   作者:VipSoft  
這篇文章主要介紹了Spring?Boot根據(jù)配置決定服務(wù)(集群、單機(jī))是否使用某些主件,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

比如:在集群模式下,我想用 Nacos 組件,單機(jī)版不想用它。

server:
  name: VipSoft Server Dev
  port: 8193
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848     #注冊(cè)中心地址(集群用,號(hào)分隔)
        cluster-name: DEFAULT              #可以通過(guò)集群名稱(chēng)區(qū)分不同的項(xiàng)目
        server-name: netty-service
        group-name: NETTY_GROUP
@Component
public class NettyServer {
    private static final Logger logger = LoggerFactory.getLogger(LoggerConfig.NETTY_LOGGER);
    @Value("${server.cloud.nacos.discovery.server-addr}")
    private String nacosServer;
    @Value("${server.cloud.nacos.discovery.server-name}")
    private String serviceName;
    @Value("${server.cloud.nacos.discovery.group-name}")
    private String groupName;
}
@Component
public class XXXService {
    @Autowired
    private NacosUtil nacosUtil;
}

解決文案

方案1:使用條件注解 + 配置開(kāi)關(guān)

  • 修改 application.yml 添加啟用開(kāi)關(guān):
server:
  name: Telemetry Cloud Server Dev
  port: 8193
  cloud:
    nacos:
      enabled: false  # 添加這個(gè)開(kāi)關(guān)
      discovery:
        server-addr: 127.0.0.1:8848
        cluster-name: DEFAULT
        server-name: netty-service
        group-name: NETTY_GROUP
  • 修改 NettyServer 類(lèi):
@Component
@ConditionalOnProperty(name = "server.cloud.nacos.enabled", havingValue = "true")
public class NettyServer {
    // 原有代碼...
}
@Component
public class XXXService {
    // 允許依賴(lài)不存在
    @Autowired(required = false)
    private NacosUtil nacosUtil;
}

方案2:使用 Profile 區(qū)分

  • 創(chuàng)建不同環(huán)境的配置文件:
  • application.yml (公共配置)
  • application-nacos.yml (Nacos相關(guān)配置)
  • application-standalone.yml (單機(jī)版配置)
  • application.yml 中激活不同配置:
spring:
  profiles:
    active: standalone # 或 nacos
  • 將 Nacos 相關(guān)配置移到 application-nacos.yml 中

方案3:編程式條件加載(更靈活)

  • 添加配置開(kāi)關(guān):
netty:
  mode: standalone # 或 cloud
  • 創(chuàng)建配置類(lèi):
@Configuration
public class NettyConfig {
    @Bean
    @ConditionalOnProperty(name = "netty.mode", havingValue = "cloud")
    public NettyServer nettyServer() {
        return new NettyServer();
    }
}

方案4:使用 @ConfigurationProperties 更優(yōu)雅地管理配置

  • 創(chuàng)建配置類(lèi):
@ConfigurationProperties(prefix = "server.cloud.nacos.discovery")
public class NacosProperties {
    private boolean enabled;
    private String serverAddr;
    private String clusterName;
    private String serverName;
    private String groupName;
    // getters and setters
}
  • 修改 NettyServer:
@Component
public class NettyServer {
    private final NacosProperties nacosProperties;
    public NettyServer(NacosProperties nacosProperties) {
        this.nacosProperties = nacosProperties;
        if(nacosProperties.isEnabled()) {
            // 初始化Nacos相關(guān)邏輯
        }
    }
}

最佳實(shí)踐建議:

推薦方案1或方案4:

  • 如果只是簡(jiǎn)單開(kāi)關(guān),用方案1最簡(jiǎn)單:
server:
  cloud:
    nacos:
      enabled: false
@Component
@ConditionalOnProperty(name = "server.cloud.nacos.enabled", matchIfMissing = false)
public class NettyServer {
    // ...
}
  • 如果需要更復(fù)雜的配置管理,用方案4更優(yōu)雅。

這樣你可以通過(guò)修改配置文件的 enabled 值來(lái)決定是否啟用Nacos相關(guān)功能,無(wú)需修改代碼。

到此這篇關(guān)于Spring Boot 根據(jù)配置決定服務(wù)(集群、單機(jī))是否使用某些主件的文章就介紹到這了,更多相關(guān)Spring Boot 根據(jù)配置決定服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決@JsonIgnore的使用以及自己踩坑

    解決@JsonIgnore的使用以及自己踩坑

    這篇文章主要介紹了解決@JsonIgnore的使用以及自己踩坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Jar包如何導(dǎo)入本地maven倉(cāng)庫(kù)

    Jar包如何導(dǎo)入本地maven倉(cāng)庫(kù)

    將本地jar包導(dǎo)入本地maven倉(cāng)庫(kù),可以通過(guò)maven命令-Dfile、-DgroupId、-DartifactId、-Dversion、-Dpackaging指定jar包的詳細(xì)信息,然后執(zhí)行命令即可
    2024-11-11
  • Java for循環(huán)常見(jiàn)優(yōu)化方法案例詳解

    Java for循環(huán)常見(jiàn)優(yōu)化方法案例詳解

    這篇文章主要介紹了Java for循環(huán)常見(jiàn)優(yōu)化方法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • SpringBoot Controller中的常用注解

    SpringBoot Controller中的常用注解

    這篇文章主要介紹了SpringBoot Controller中的常用注解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Mybatis中sql映射文件中的增刪查改

    Mybatis中sql映射文件中的增刪查改

    本文主要介紹了Mybatis中sql映射文件中的增刪查改,包括創(chuàng)建數(shù)據(jù)表、配置Maven項(xiàng)目、編寫(xiě)實(shí)體類(lèi)和接口,以及mapper映射文件的增刪查改操作,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-10-10
  • 最新評(píng)論

    驻马店市| 昌宁县| 沈丘县| 新巴尔虎右旗| 奉化市| 大石桥市| 宁夏| 庆云县| 铜梁县| 丰顺县| 天全县| 佛教| 禄劝| 阳朔县| 金寨县| 抚远县| 昌平区| 江西省| 巍山| 东辽县| 呈贡县| 利川市| 巴林左旗| 阿坝| 潜江市| 柳林县| 盐亭县| 景德镇市| 闸北区| 徐闻县| 玛沁县| 怀来县| 上杭县| 榆中县| 涞源县| 六枝特区| 铜陵市| 屏山县| 靖西县| 龙口市| 博客|