Wie kann die Feder Umgebung injiziert werden richtig in einer Methode aber nicht eine andere?

neo4jDatabase() ist gut, aber environment ist immer null, in graphDatabaseService()... wie/warum?

@Configuration
@PropertySource("classpath:/neo4j.properties")
@EnableNeo4jRepositories("reservation.repository.neo4j")
public class Neo4jConfig extends Neo4jConfiguration {

    @Inject
    Environment environment;

    @Bean(initMethod = "setupDb")
    public Neo4jDatabase neo4jDatabase() {
        //Environment fine here...
        return new Neo4jDatabase(this.environment.getProperty("data.file.path"));
    }

    @Bean(destroyMethod = "shutdown")
    public GraphDatabaseService graphDatabaseService() {
        if (environment == null) {
            //Always gets here for some reason...why?
            return new EmbeddedGraphDatabase("/Temp/neo4j/database");
        } else {
            return new EmbeddedGraphDatabase(this.environment.getProperty("database.path"));
        }
    }
}

Versionen:
Spring 3.2.0.RELEASE, spring-data-neo4j 2.1.0.RELEASE.

  • Hallo, haben Sie versucht, für die Verwendung von 'dieser' in der null-check? "wenn (dies.Umgebung == null)". Indem wir dies tun, werden Sie Spiel die anderen Nutzungen des Objekts in Ihrer Klasse. Einmal synchronisiert, können Sie beginnen, zu entwirren das problem (z.B. mit Spring 3.1).
  • Ist dieser code in einer web-app? Sind Sie sicher, dass Ihr nicht einen Fall, dass zwei anwendungskontexte, eins mit der Umgebung konfiguriert ist und einer nicht?
InformationsquelleAutor chrisjleu | 2013-01-22
Schreibe einen Kommentar