亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數據源對象被 Cloud Foundry 配置覆蓋

數據源對象被 Cloud Foundry 配置覆蓋

蠱毒傳說 2023-06-21 13:37:52
我有一個 Spring Boot 應用程序綁定到 Cloud Foundry 環境中的數據庫服務實例(postgres)。應用程序的 VCAP 包括以下綁定:"postgresql": [? ?{? ? "binding_name": null,? ? "credentials": {? ? ?"dbname": "yD6nAoGVmfmqnbex",? ? ?"end_points": [? ? ? {? ? ? ?"host": "10.11.241.0",? ? ? ?"network_id": "SF",? ? ? ?"port": "50257"? ? ? }? ? ?],? ? ?"hostname": "10.11.241.0",? ? ?"password": "No963ndbbsfndJoj",? ? ?"port": "50257",? ? ?"ports": {? ? ? "5432/tcp": "50257"? ? ?},? ? ?"uri": "postgres://Gw7n8pHTvpM2gh7t:[email protected]:50257/yD6nAoGVmfmqnbex",? ? ?"username": "Gw7n8pHTvpM2gh7t"? ? },? ? "instance_name": "cispostgres",? ? "label": "postgresql",? ? "name": "cispostgres",? ? "plan": "v9.6-dev",? ? "provider": null,? ? "syslog_drain_url": null,? ? "tags": [? ? ?"postgresql",? ? ?"relational"? ? ],? ? "volume_mounts": []? ?}? ]當我啟動該應用程序時,cloud foundry 正在創建一個 DataSource 對象,并將其放入 spring 的上下文中,并按預期使用先前 vcaps 的精確配置。我正在嘗試覆蓋數據源 neam 對象,以便能夠將數據庫的架構名稱連接到 url,如下所示:@Bean(name = "dataSource")? ? @Primary? ? public DataSource createDataSource() throws SQLException {? ? ? ? String dbUri = "jdbc:postgresql://10.11.241.0:50257/yD6nAoGVmfmqnbex?currentSchema=accounts";? ? ? ? String username = "Gw7n8pHTvpM2gh7t";? ? ? ? String password = "No963ndbbsfndJoj";? ? ? ? DataSource dataSource = DataSourceBuilder.create()? ? ? ? ? ? ? ? .url(dbUri)? ? ? ? ? ? ? ? .username(username)? ? ? ? ? ? ? ? .password(password)? ? ? ? ? ? ? ? .type(org.postgresql.ds.PGSimpleDataSource.class)? ? ? ? ? ? ? ? .driverClassName(DRIVER_CLASS_NAME)? ? ? ? ? ? ? ? .build();? ? ? ? return dataSource;? ? }不幸的是,cloudfounday 似乎覆蓋了我的 bean,并在創建我的 bean 后創建了一個新的 bean。當我執行以下 CF 命令時:$?cf?us?myapp?mypostgres $?cf?restart?myapp我的豆子沒有被過度使用,而且效果很好。我正在嘗試找到一種方法來取消由云基金會或任何為我做的事情完成的自動配置。任何想法?提前致謝
查看完整描述

1 回答

?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

有幾種方法可以選擇退出自動重新配置。

  1. AbstractCloudConfig如果您的應用程序具有從 擴展的 Java 配置,或者如果您定義了@Bean類型為 的,則可以選擇退出自動重新配置Cloud。在任何一種情況下,自動重新配置都應該看到您正在進行手動配置并退出。

  2. 您可以通過將 env 變量設置JBP_CONFIG_SPRING_AUTO_RECONFIGURATION為 來完全禁用自動重新配置{ enabled: false }。這將完全打開自動重新配置。

這兩個選項之間的主要區別在于,后者告訴 Java buildpack 甚至不安裝自動重新配置,這意味著您會失去一些附加功能,例如屬性cloud.services占位符和自動添加cloudSpring 配置文件。

我個人更喜歡選項#2,因為我不使用屬性占位符,并且如果您需要的話,通過添加 env 變量并將其設置為 來cloud.services啟用云配置文件很容易。SPRING_PROFILES_ACTIVEcloud

希望有幫助!


查看完整回答
反對 回復 2023-06-21
  • 1 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號