Подтвердить что ты не робот

Можно ли использовать метод @PostConstruct по методу интерфейса?

У меня есть ряд beans, реализующих интерфейс, и я бы хотел, чтобы все они имели тот же @PostConstruct. Я добавил аннотацию @PostConstruct к моему методу интерфейса, а затем добавил к моим определениям bean:

<bean class="com.MyInterface" abstract="true" />

Но это, похоже, не работает. Где я ошибаюсь, если это возможно?

edit: я добавил аннотацию к интерфейсу, как это:

package com;
import javax.annotation.PostConstruct;
public interface MyInterface {
    @PostConstruct
    void initSettings();
}
4b9b3361

Ответ 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