Question Puis-je utiliser @PostConstruct sur une méthode d'interface?


J'ai un certain nombre de beans implémentant une interface et j'aimerais qu'ils aient tous le même @PostConstruct. J'ai ajouté le @PostConstruct annotation à ma méthode d'interface, puis ajouté à mes définitions de beans:

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

Mais cela ne semble pas fonctionner. Où est-ce que je me trompe si c'est même possible?

edit: J'ai ajouté l'annotation à l'interface comme ceci:

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

11
2018-05-16 14:02


origine


Réponses:


Le @PostConstruct doit être sur le bean proprement dit, pas sur la classe Interface. Si vous souhaitez que toutes les classes implémentent la méthode @PostConstruct, créez une classe abstraite et rendez également la méthode @PostConstruct abstraite.

public abstract class AbstractImplementation {

    @PostConstruct
    public abstract init(..);
}

public class ImplementingBean extends AbstractImplementation {
    public init(..) {
        ....
    }
}

9
2018-05-16 14:20



@PostConstruct doit aller sur la classe java haricot lui-même Je ne sais pas ce que ça va faire sur une interface.

Avez-vous cela dans votre XML?

<context:annotation-config />

Voici un exemple de code: @PostConstruct exemple


1
2018-05-16 14:09