powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как так может быть при создании Bean ?
4 сообщений из 4, страница 1 из 1
Как так может быть при создании Bean ?
    #39659053
Фотография Герой дня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создается бин:

Код: java
1.
2.
3.
4.
    @Bean
    ProductService productService(ProductDao productDao, ....) {
        return new ProductServiceImpl(productDao....);
    }



внутри класса ProductServiceImpl имеются аннотации @Cachable. При таком создании через new они не процесятся, а если ProductServiceImpl создавать через @Component, то аннотации @Cachable анализируются.

В чем может быть причина ?
...
Рейтинг: 0 / 0
Как так может быть при создании Bean ?
    #39659562
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Герой дня, вы причину только что описали: аннотированные @bean - хоть и являеются частью ioc контейнера, но после инициализации по ним не проходят всякие BeanPostProcessor`ы, BeanFactoryPostProcessor`ы.
...
Рейтинг: 0 / 0
Как так может быть при создании Bean ?
    #39659572
Фотография Герой дня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

почему тогда внутри этого бина срабатывает аннотация @PostConstruct ? почему эта аннотация читается, а @Cacheable - нет ?
...
Рейтинг: 0 / 0
Как так может быть при создании Bean ?
    #39659574
Фотография Герой дня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кажется, нашел ответ на вопрос - видимо, @Cacheable не входит в числе аннотаций, которые по JSR-250 обрабатываются фреймворком при создании бина через new:

JavaConfig, like the core Spring Framework, supports use of JSR-250 "Common Annotations". For example:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class FooService {
    @PostConstruct
    public void init() {
        // custom initialization logic
    }
}

@Configuration
@AnnotationDrivenConfig
public class ApplicationConfig {
    @Bean
    public FooService fooService() {
        return new FooService();
    }
}



In the above example, FooService declares @PostConstruct . This annotation will be respected by the container and called immediately after construction. See The core framework documentation on support for JSR-250 annotations for further details.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как так может быть при создании Bean ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]