, Это оставляет код без изменений.

м@Configuration класс у меня есть зависимости, подобные следующим:

@Configuration
public class MyConfig {
    @Resource(name = "firstDataSource")
    private DataSource firstDataSource;

    // more code
}

Внедрение зависимостей работает в Oracle JDK 8:firstDataSource поле было успешно введено с ненулевым значением.

Теперь я попытался запустить приложение (без изменений) в JDK 9. В результате@Resource больше не запускает внедрение зависимостей: все, что отмечено этой аннотацией, остаетсяnull.

В чем может быть причина@Resource перестать работать?

Spring 4.0.9 используется в проекте.

Вот тестовый проект, демонстрирующий проблему:https://github.com/rpuch/test-spring-injection-jdk9

Он содержит один тест:MainTest который я запускаю из моей IDE. Когда я использую JDK 8, он выводит

сен 29, 2017 10:45:13 PM org.springframework.context.annotation.AnnotationConfigApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@5f8ed237: startup date [Fri Sep 29 22:45:13 SAMT 2017]; root of context hierarchy
OK

Но в JDK 9 при запуске выдается исключение, которое вызвано следующим:

Caused by: java.lang.IllegalStateException: bean1 is not injected
    at Bean2.<init>(Bean2.java:7)
    at Config2.bean2(Config2.java:16)

что происходит, когда зависимость не вводится.

Ответы на вопрос(0)

Ваш ответ на вопрос