L'appel d'une @Bean méthode annotée au Printemps de configuration java

Je suis curieux de savoir comment le printemps injection gère l'appel de méthodes à la @Bean annotation. Si j'ai mis un @Bean annotation sur une méthode, et de retourner une instance, je comprends que qui dit printemps pour créer un bean par l'appel de la méthode et obtenir le retour de l'instance. Il arrive parfois que le bean doit être utilisé pour le fil d'autres graines ou de configuration à un autre code. De la manière habituelle, c'est fait, c'est d'appeler le @Bean méthode annotée pour obtenir une instance. Ma question est, pourquoi n'est-il pas provoquer de multiples instances de la fève flottant autour?

Voir, par exemple, le code ci-dessous (suivis d'une autre question). Le entryPoint() méthode est annoté avec @Bean, donc j'imagine que le printemps va créer une nouvelle instance de BasicAuthenticationEntryPoint comme un haricot. Ensuite, nous appelons entryPoint() de nouveau dans la configuration de bloc, mais il semble que entryPoint() renvoie l'exemple d'haricot, et n'est pas appelé à plusieurs reprises (j'ai essayé de journalisation, et n'ai qu'une entrée de journal). Potentiellement on pourrait appeler entryPoint() plusieurs fois dans d'autres parties de la configuration, et on obtenait toujours la même instance. Est ma compréhension de ce correct? Ne ressort ne magiques réécriture des méthodes annotées avec @Bean?

@Bean
public BasicAuthenticationEntryPoint entryPoint() {
    BasicAuthenticationEntryPoint basicAuthEntryPoint = new BasicAuthenticationEntryPoint();
    basicAuthEntryPoint.setRealmName("My Realm");
    return basicAuthEntryPoint;
}

@Override
protected void configure(HttpSecurity http) throws Exception {

    http
        .exceptionHandling()
            .authenticationEntryPoint(entryPoint())
            .and()
        .authorizeUrls()
            .anyRequest().authenticated()
            .and()
        .httpBasic();       
}
InformationsquelleAutor markwatson | 2015-01-16