CodePipeline実行時にconfig.propertiesを使って環境ごとの値を切り替える方法【application.ymlの環境変数のように設定】

Code Pipeline内のCode Build実行時にconfig.propertiesに環境変数から値を取得しようと思ったときに躓いた話です。
環境変数から値を取得することはできず、config.propertiesにプレースホルダーを使いbuildspec.yml内で「sed」にて置換することで対応しました。
今まで携わったJava開発のプロジェクトはSpring Bootでapplication.ymlを使用していたため、以下のように設定すれば自動(プログラム対応無し)で環境変数から値を取得することができました。

application.yml

datasource:
  username: ${DB_USERNAME}
  password: ${DB_PASSWORD}


結論

Spring Bootを利用していないJavaプロジェクトでは自動でconfig.propertiesに環境変数から値は取得できない。
Javaコードで環境変数を読み込む」や「config.propertiesにプレースホルダーを使いJavaで置換する」などでプログラム対応すれば可能

プログラム修正はせずに対応する方法

目的がconfig.propertiesを各AWS環境で共通化することであれば、config.propertiesに環境変数から値を取得したかのようにはできます。
config.propertiesにプレースホルダーを使い、buildspec.yml内で「sed」にて置換する方法になります

前提:Secrets Managerに値は設定(Parameter StoreでもOK)

config.properties

test.db.username={DB_USERNAME}
test.db.password={DB_PASSWORD}

buildspec.yml(必要な箇所のみ抜粋)

env:
  secrets-manager:
    dbusername: /cmn/db:username   # 右辺はSecrets Managerキー
    dbpassword: /cmn/db:password   # 右辺はSecrets Managerキー
・
・
・
  build:
    commands:
      - sed -i "s/{DB_USERNAME}/${dbusername}/g" config.properties
      - sed -i "s/{DB_PASSWORD}/${dbpassword}/g" config.properties


以上になります。
もっとシンプルな方法で対応できそうな気もしますが、思いつきませんでした。