Yay enjeksiyonunun @Bean
açıklama ile yöntemleri çağırmayı nasıl ele aldığını merak ediyorum . @Bean
Bir yönteme ek açıklama koyup bir örnek döndürürsem, bunun spring'e yöntemi çağırıp döndürülen örneği alarak bir fasulye oluşturmasını söylediğini anlıyorum. Bununla birlikte, bazen bu fasulyenin diğer fasulyeleri bağlamak veya başka bir kod ayarlamak için kullanılması gerekir. Bunun olağan yolu, @Bean
bir örnek almak için açıklamalı yöntemi çağırmaktır . Sorum şu, bu neden birden fazla fasulyenin etrafta dolaşmasına neden olmuyor?
Örneğin, aşağıdaki koda bakın (başka bir sorudan alınmıştır). entryPoint()
Yöntem ile açıklamalı @Bean
Bahar yeni bir örneğini oluşturur hayal diye, BasicAuthenticationEntryPoint
bir fasulye olarak. Ardından, entryPoint()
configure bloğunda tekrar çağırıyoruz , ancak entryPoint()
bean örneğini döndürüyor gibi görünüyor ve birden çok kez çağrılmıyor (günlüğe kaydetmeyi denedim ve yalnızca bir günlük girişi aldım). Potansiyel entryPoint()
olarak, konfigürasyonun diğer bölümlerinde birden çok kez arayabiliriz ve her zaman aynı örneği alırız. Bunu anladığım doğru mu? Bahar, ek açıklamalarda bulunan yöntemlerin büyülü bir şekilde yeniden yazılmasını sağlıyor @Bean
mu?
@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();
}
@Bean
ve@Primary
).