Ниже приведено требование, которое я хочу реализовать
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 некоторого класса, скорее я предпочитаю реализовать любой класс среды для переопределения свойства, поскольку эта библиотека является общей для любое приложение (пружинное, пружинное или не пружинное).
Наконец, спасибо, что заглянули:)