Как использовать значения потребителя application.properties в библиотеке - PullRequest
0 голосов
/ 05 августа 2020

Ниже приведено требование, которое я хочу реализовать

Consumer (использует библиотеку для получения токена)

Consumer (проект загрузки Spring) -> Помимо потребительских logi c, он также имеет такие свойства, как apikey, scope Speci c для приложения, которое определено в application.properties. И эти свойства необходимы для получения токена.

Библиотека (Java Project) -> которая содержит logi c для получения токена JWT, но написана в общем c способе, она использует потребительские свойства ( apiKey и область видимости), чтобы получить токен и переслать его потребителю

Потребительский API использует библиотечную зависимость в build.gradle (т.е. библиотека jar добавлена ​​в путь к классам потребителя)

JWT Library

public class JWTTokenGenerator {

     // here wanted to load the Consumer API properties from appliation.properties file 
     String apiKey = environment.getProperties("apiKey"); 
     String scope = environment.getProperties("scopes"); 

     public String getJwtToken() {

        // some logic here to use above property apiKey and scope to connect API and 
        // get token specific to Consumer - this logic is not concern

        return token;
    }
}

После этого захотелось зарегистрировать этот класс (JWTTokenGenerator) как bean-компонент, чтобы я мог использовать его в потребительском API с помощью автоматического подключения.

Consumer API (приложение Spring Boot)

public class JWTConfig {

   @Autowired
   JWTTokenGenerator jwtTokenGenerator; // use library class by autowiring

   public String someMethod() {
    String jwtToken = jwtTokenGenerator.getJwtToken() 
       //  rest of the business logic 
    }   
}

Consumer API файл application.properties

apiKey=548sdfKIas4sdfk 
scope=Auth_API

Как я могу вставить application.properties в библиотеку? Что мне следует использовать EnvironmentAware или что-то еще? Какой будет лучший подход для этого?

Кроме того, я хотел избежать использования каких-либо аннотаций, таких как @PropertySource или @Autowired некоторого класса, скорее я предпочитаю реализовать любой класс среды для переопределения свойства, поскольку эта библиотека является общей для любое приложение (пружинное, пружинное или не пружинное).

Наконец, спасибо, что заглянули:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...