我有很多实现接口的bean,我希望它们都具有相同的@PostConstruct。我已将@PostConstruct
注释添加到我的接口方法中,然后添加到我的bean定义中:
<bean class="com.MyInterface" abstract="true" />
但这似乎不起作用。如果可能的话,我哪里出错?
编辑:我已将注释添加到界面中,如下所示:
package com;
import javax.annotation.PostConstruct;
public interface MyInterface {
@PostConstruct
void initSettings();
}
答案 0 :(得分:10)
@PostConstruct必须位于实际的bean本身,而不是Interface类。如果要强制所有类实现@PostConstruct方法,请创建一个抽象类并使@PostConstruct方法也是抽象的。
public abstract class AbstractImplementation {
@PostConstruct
public abstract init(..);
}
public class ImplementingBean extends AbstractImplementation {
public init(..) {
....
}
}
答案 1 :(得分:1)
@PostConstruct
必须继续使用bean java类
本身。我不知道它会在界面上做什么。
你的XML中有这个吗?
<context:annotation-config />
以下是一些示例代码:@PostConstruct example