Java 8 hinzugefügt eine neue Funktion, mit der wir Methodenimplementierung in Schnittstellen bereitstellen können. Gibt es einen Weg in Frühling 4, durch den wir Bohnen in die Schnittstelle injizieren können, die innerhalb des Methodenkörpers verwendet werden kann? Unten ist der BeispielcodeJava 8 und Spring 4: Verwenden Sie Autowirhining in Schnittstelle
public interface TestWiring{
@Autowired
public Service service;// this is not possible as it would be static.
//Is there any way I can inject any service bean which can be used inside testWiringMethod.
default void testWiringMethod(){
// Call method of service
service.testService();
}
}
Sie können eine Schnittstelle nicht instanziieren. Wie würdest du ein Feld darin autowire? – Tunaki
Ich möchte federverwaltete Dienste in meinem Methodenkörper verwenden. Eine Möglichkeit ist die Verwendung von ApplicationContext.getbean (") Methode. Aber ich bin auf der Suche nach jeder Funktion in Spring 4, die ich für die Injektion von Spring verwalteten Beans in Schnittstelle verwenden kann. Schnittstelle würde durch einige Bean implementiert werden. So sollte es in verfügbar sein." Die Implementierungsklasse Standardmäßig sind die Mitglieder der Schnittstelle statisch, daher kann ich @autowiring nicht direkt verwenden –
DI in Spring funktioniert entweder durch Festlegen der Abhängigkeiten im Konstruktor (Konstruktorinjektion) oder über die Eigenschaft (Setterinjektion) Interface, Sie haben weder einen Konstruktor, noch Instanzvariablen (die Variablen, die Sie in einer Schnittstelle deklarieren, sind 'static final'), also gibt es keine Möglichkeit, etwas zu injizieren. – Ruben