Problem with Bean Selection

  • do not apply @service annotation to the stripepaymentservice

Solutions

@Primary

  • application run properly
  • we cannot apply primary to multiple classes. we can only have a single primary

@Qualifier

  • inorder to use @Qualifier we have to assign a name to our bean

Example Implementation

Externalizing Configuration

  • we don’t wanna hard code values like apiUrl, apiKey
  • we should store them in application properties

  • press CTRL+SPACE in intellij to see the available properites

  • values doesn’t have to be only strings

  • you can also give a default value
  • if there is not stripe.timeout value in properties file it will use the default 3000 value.
  • if it is defined in the properties file it will be used s

  • we can also use a yaml file instead of properties file