Java 11 - замените Spring @PostConstruct на afterPropertiesSet или используйте initMethod - PullRequest
0 голосов
/ 07 апреля 2019

Я использую Spring-приложения, которые иногда используют @PostConstruct для настройки в коде и тестах

Похоже, что аннотация будет исключена из Java 11 :

Обратите внимание, что аннотации @PostConstruct и @PreDestroy являются частью Java EE.А поскольку Java EE устарела в Java 9 и удалена в Java 11, мы должны добавить дополнительную зависимость для использования этих аннотаций

Статья предлагает заменить все @PostConstruct на afterPropertiesSet method

Я рекомендую вам изменить реализацию с аннотации @PostConstruct для реализации интерфейса org.springframework.beans.factory.InitializingBean.

Можно ли заменить его вслепую ввсе дела?или есть другие соображения?

РЕДАКТИРОВАТЬ

Как предположил @JBNizet, это может быть не обязательным или необходимым, так как Spring doc предлагает противоположное

Мы рекомендуем не использовать интерфейс InitializingBean , поскольку он излишне связывает код с Spring .В качестве альтернативы мы предлагаем использовать аннотацию @ PostConstruct или указать метод инициализации POJO.

РЕДАКТИРОВАТЬ 2

Другой вариант использует initMethod:

В конфигурации Java вы можете использовать атрибут initMethod@ Bean

@Bean(initMethod = "init")
public BeanOne beanOne() {
    return new BeanOne();
}
...