2016-10-25 1 views
0

Möchten Sie eine Klasse in eine HashMap einfügen. Dafür habe ich eine Bean mit @Service erstellt. Das ist es:Spring Boot - So erstellen Sie manuell eine Bean und übergeben sie an eine Hash-Map

@Service 
public class ServiceManagerImpl implements ServiceManager { 

@Override 
public void registerService() { 
    // registerService will put this in the HashMap! 
    dispatcher.registerService("serviceList", getServiceListImpl()); 
} 

@Bean 
public BusinessService getServiceListImpl() { 
    return new ServiceListManager(); 
} 
} 

Ist dies der richtige Weg, um so etwas zu machen?

Antwort

1

Verschieben Sie Ihre Bean-Definition von einer mit @Service deklarierten Klasse in eine mit @Configuration annotierte Konfigurationsklasse (oder wechseln Sie zumindest in Ihre Hauptklasse mit der @SpringBootApplication-Annotation, falls vorhanden). Dann Autowire diese Bohne hier in der Serviceklasse. `

@Autowired Businessservice businessservice

werfen Sie einen Blick hier Where to put @Bean in Spring Boot?

+0

Ändern @ Service @ Konfiguration eines _BeanCreatinException_ wirft. Was meinst du mit _move zur Hauptklasse_? Nicht klar für mich. – MissBonbon

+0

Welches ist der Einstiegspunkt für Ihre Anwendung? Wo ist deine Hauptmethode? werfen Sie einen Blick hier http://stackoverflow.com/questions/29146019/where-to-put-bean-in-spring-boot?rq=1 –

+0

Ok, danke, jetzt weiß ich, was du meinst ... Und was muss ich tun, wenn ich Beans im Application Context dynamisch laden will? Dann würde eine Konfigurationsdatei nicht funktionieren. – MissBonbon

Verwandte Themen