문제

사용하지 않는 환경변수서버에서 jar 파일로 실행아예 주입을 해주지 않을 때 실행이 되지 않음.

// application.yml 
spring:
  profiles:
    active: local
  data:
    redis:
      port: 6379
      primary:
        host: ${P_URL}
      replica:
        host: ${R_URL}

application.yml 파일은 위와 같다.

java -jar redis21-0.0.1-SNAPSHOT.jar --P_URL=localhost

여기서 위와 같이 실행하면 (jar 파일 실행 시 —<환경변수-키>=<환경변수-값> 으로 적어주면 환경변수 주입이 된다.

2024-02-01T13:04:58.545Z ERROR 6137 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisConfig': Injection of autowired dependencies failed

에러가 난다.

해결

java -jar redis21-0.0.1-SNAPSHOT.jar --P_URL=localhost --R_URL=

이렇게 사용하지 않는 변수라도 --R_URL= 로 빈값을 넣어주면 실행이 된다.

2024-02-01T13:05:30.201Z  INFO 6158 --- [           main] ex.redis21.RedisConfig                   : replicaHost :

로그로 확인해보니 빈값이라도 들어는 간다.