Skip to content
Advertisement

Property file reading error in spring boot

Below is my yml file in spring boot app

stack:
  apiContext: data-service
  domainOwner: trata
  domainContext: Madata-service
  #cluster:
   # servicePort: 12000
    #gossipPort: 13000
    #seedName: seed-service
   # seeds:
  #    - localhost:14000
  cluster:
    servicePort: 21000
    gossipPort: 15000
#    seedName: seed-service
    seeds:
      - localhost:13000
  providers:
    com.cloudimpl.out.collection.CollectionProvider:
      - name: MemCollection
        impl: com.cloudimpl.outstack.collection.MemCollectionProvider
        status: active

      - name: com.cloudimpl.outstack.collection.CollectionProvider
        impl: com.cloudimpl.outstack.collection.AwsCollectionProvider
        #        status: active
        configs:
          endpoint: http://localhost:1234
          leaderTable: LeaderTable
    com.cloudimpl.outstack.runtime.EventRepositoryFactory:
      - name: MemRepositoryFactory
        impl: com.cloudimpl.outstack.runtime.repo.MemEventRepositoryFactory


      - name: PostgresRepositoryFactory
        impl: com.cloudimpl.outstack.spring.repo.PostgresRepositoryFactory
        status: active
        configs:
          jdbcUrl: jdbc:postgresql://localhost:5432/test
          username: postgres
          password: QazWsx@1234
          defaultTable: masterdataService
          #UserTable: userTable
server:
  port: 9096
spring:
  main:
    web-application-type: reactive

below value access is working file

@Value("${outstack.domainOwner}")
private String abc;

but when I try to access in below way it gives an error.

@Value("${outstack.providers.com.cloudimpl.outstack.runtime.EventRepositoryFactory.name}")
private String abc;

I checked it gives error only when add “com.cloudimpl.outstack.runtime.EventRepositoryFactory” this part.

How can I solve this??

Advertisement

Answer

It doesn’t work so. You have list with values under “outstack.providers.com.cloudimpl.outstack.runtime.EventRepositoryFactory”. It means you can add variable like so:

@Value("${outstack.providers.com.cloudimpl.outstack.runtime.EventRepositoryFactory}")
private List<ParamWrapper> abc;

class ParamWrapper {

private String name;
private String impl;

....
getters and setters
}

And then check your params in this list.

7 People found this is helpful
Advertisement