Autowire в классе, упомянутом в начальной загрузке

Когда приложение запускается, EncryptionBootstrapConfiguration не может автоматически подключать мой пользовательский TextEncryptor - https://github.com/spring-cloud/spring-cloud-commons/blob/cde7c7f3118382490c28776f66e0a56dr248149/java/org/springframework/cloud/bootstrap/encrypt/EncryptionBootstrapConfiguration.java

Как я могу гарантировать, что этот класс автоматически подключает мою реализацию TextEncryptor.

Кроме того, META-INF / spring.factories этот класс упоминается как boostrap, как я могу изменить это поведение?

Мой сервер конфигурации Spring-Boot -

@SpringBootApplication
@EnableConfigServer
public class App 
{


    public static void main( String[] args )
    {

        SpringApplication.run(App.class, args);
    }

}

и application.yml

server:
  port: 8760
  ssl:
    key-store: //path
    key-store-password: '{cipher}abc'
    key-store-type: jks
    key-password: '{cipher}abc'

Как только он находит {cipher}, происходит сбой FailFastTextEncryptor.


person Swappy    schedule 20.10.2016    source источник


Ответы (1)


Чтобы вы TextEncrytor автоматически подключили его

  • должен реализовать интерфейс TextEncryptor
  • должен быть доступен как bean либо явно в конфигурации, либо с аннотацией (например, Component)
person jny    schedule 21.10.2016
comment
Извините, это как-то было опубликовано. У меня уже есть защищенный статический класс MyTextEncryptor, реализующий TextEncryptor с @Component, и он работает при запуске сервера конфигурации. Проблема заключается в том, чтобы ввести его в этот класс. - person Swappy; 21.10.2016
comment
Класс должен быть публичным. ApplicationContext не имеет доступа к bean-компонентам с защищенным модификатором. - person jny; 21.10.2016
comment
Нет разницы, изменено на - открытый класс MyEncryptor реализует TextEncryptor с аннотацией @Component, но шифровальщик все еще имеет значение null в EncryptionBootstrapConfiguration.java. Отредактировал вопрос и добавил простой код - person Swappy; 22.10.2016
comment
Вы когда-нибудь догадывались об этом? - person mad_fox; 07.01.2017