Можно ли использовать метод @PostConstruct по методу интерфейса?
У меня есть ряд beans, реализующих интерфейс, и я бы хотел, чтобы все они имели тот же @PostConstruct. Я добавил аннотацию @PostConstruct
к моему методу интерфейса, а затем добавил к моим определениям bean:
<bean class="com.MyInterface" abstract="true" />
Но это, похоже, не работает. Где я ошибаюсь, если это возможно?
edit: я добавил аннотацию к интерфейсу, как это:
package com;
import javax.annotation.PostConstruct;
public interface MyInterface {
@PostConstruct
void initSettings();
}
Ответы
Ответ 1
@PostConstruct должен находиться в самом фактическом bean, а не в классе Interface. Если вы хотите, чтобы все классы применяли метод @PostConstruct, создайте абстрактный класс и также создайте абстрактный метод @PostConstruct.
public abstract class AbstractImplementation {
@PostConstruct
public abstract init(..);
}
public class ImplementingBean extends AbstractImplementation {
public init(..) {
....
}
}
Ответ 2
@PostConstruct
должен перейти в класс bean java
сам. Я не знаю, что он будет делать на интерфейсе.
У вас есть это в XML?
<context:annotation-config />
Вот пример кода: @Пример PostConstruct