2016-03-28 8 views
0

Wir verwenden Guice für Abhängigkeitsinjektion. Jetzt wollen wir ein neues Projekt mit Spring Boot schreiben. Da wir Springboots verwenden, denken wir, dass es besser ist, die Feder für die Abhängigkeitsinjektion zu verwenden.Binding Annotation im Frühjahr

In guice verwendeten wir Binding Annoation. Dies ist sehr nützlich, wenn mehrere Beans verfügbar sind und diese entsprechend den Anmerkungen injiziert werden können.

Ähnlich wie das, was wir im Frühjahr haben? Müssen wir die Bean entsprechend benennen und sie mit @Autowire und @Qualifier verwenden?

Antwort

1

Sie @Autowired verwenden können, wenn Sie eine Bohne von irgendeiner Art haben.

@Autowired 
private MyBean myBean; 

Für viele Bohnen Beispiel Konfigurationsklasse:

@Configuration 
public class MyConfiguration { 

@Bean(name="myFirstBean") 
public MyBean oneBean(){ 
    return new MyBean(); 
} 

@Bean(name="mySecondBean") 
public MyBean secondBean(){ 
    return new MyBean(); 
} 
} 

@Autowired mit @Qualifier („somename“), wenn Sie mehr als eine Bohne von irgendeiner Art haben, und Sie wollen einige spezifisch.

@Autowired 
@Qualifier("myFirstBean") 
private MyBean myFirstBean; 

@Autowired 
@Qualifier("mySecondBean") 
private MyBean mySecondBean; 

Wenn Sie alle Bohnen des gleichen Typs injizieren können Sie:

@Autowired 
private List<MyBean> myBeans; 
1

erste Hand Beispiel:

public class MovieRecommender { 

private final CustomerPreferenceDao customerPreferenceDao; 

@Autowired 
private MovieCatalog movieCatalog; 

@Autowired 
public MovieRecommender(CustomerPreferenceDao customerPreferenceDao) { 
    this.customerPreferenceDao = customerPreferenceDao; 
} 
// ... 
} 

Dies ist eine Frage, um die Grundlagen Konzepte von Spring Framework gefragt, nämlich Bohnen und Dependency Injection.

Was ich vorschlagen würde ist eine der Beispielprojekte wie kickstart-sample zu starten und sich mit Spring während des Spielens mit Code vertraut zu machen.

Dann wäre es auch nicht schlecht, zu offiziellen Dokumenten als Referenz zu springen. Weil bei der Verwendung von Anmerkungen mehr Optionen beachtet werden müssen.

http://docs.spring.io/spring/docs/4.3.0.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/#beans-autowired-annotation

+0

Diese einfache autowiring ist. Meine Frage ist, ob mehrere Beans im Anwendungskontext verfügbar sind. https://github.com/google/guice/wiki/BindingAnnotations#binding-annotations macht es. Ähnlich wie das können wir es im Frühling verwenden – sag