In Spring javaconfig, wie zum initialisieren einer @Bean, die abhängig von einem @ - Service

Habe ich Umgerechnet eine Feder 4.0-basierten Projekt von xml zu javaconfig.

Zur Initialisierung, einer meiner Bohnen benötigt Zugriff auf Hibernate zu Holen, config-Daten aus der DB, durch eine Feder @Service (buildingService). Die bean-Initialisierung sieht wie folgt aus:

@Bean
@DependsOn({ "transactionManager", "webSocketHandler", "buildingService" })
Smarty smarty() {
    Smarty bean = new Smarty();
    bean.init(); //I also tried @Bean(initMethod = "init") with no difference
    return bean;
}

Das problem ist, dass in bean.init()den service zugegriffen wird, was nicht mit einem NullPointerException.

Fügte ich buildingService zu @DependsOn aber es hat nicht geholfen.

Wahrscheinlich die @Service-annotierten Klassen werden verarbeitet, nachdem die @Bean !?

Kann ich initialisieren die @Service-annotierten Klasse mich im Voraus?

Bearbeiten 1

Danke soweit für das feedback !

Muss ich hinzufügen, einige details:

buildingService ist nicht ein @Bean ist es gut, eine @Service und sieht wie folgt aus:

@Service("buildingService")
@Transactional
public class BuildingService {

...

    public List<Building> getAll() {
        final Session session = sessionFactory.getCurrentSession();
        final Query query = session.createQuery("from Building order by name");
        return query.list();
    }

...

}

Smarty ist ein Spring managed Bean und initialisiert in einem @Configuration-annotierten Klasse, die das tun der Initialisierung des root-Kontext.

Smarty hat eine direkte Abhängigkeit von buildingService, etwa so:

@Resource(name = "buildingService")
private BuildingService     buildingService;

Habe ich versucht Anmerkungen Smarty.init() mit @PostConstruct aber das änderte nichts.

Beachten Sie, dass das erste, was Smarty.init() tut, ist die Berufung buildingService.getAll();

InformationsquelleAutor der Frage yglodt | 2014-01-26

Schreibe einen Kommentar