Yay enjeksiyonunun @Beanaçıklama ile yöntemleri çağırmayı nasıl ele aldığını merak ediyorum . @BeanBir 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, @Beanbir ö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ı @BeanBahar yeni bir örneğini oluşturur hayal diye, BasicAuthenticationEntryPointbir 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 @Beanmu?
@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();
}
@Beanve@Primary).