我可以在接口方法上使用@PostConstruct吗?

时间:2013-05-16 14:02:26

标签: java spring interface postconstruct

我有很多实现接口的bean,我希望它们都具有相同的@PostConstruct。我已将@PostConstruct注释添加到我的接口方法中,然后添加到我的bean定义中:

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

但这似乎不起作用。如果可能的话,我哪里出错?

编辑:我已将注释添加到界面中,如下所示:

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

2 个答案:

答案 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