Yay enjeksiyonunun, @Bean
ek açıklamalarıyla çağrı yöntemlerini işleme şeklini merak ediyorum. Bir yönteme @Bean
ek açıklaması koyar ve bir örnek döndürürsem, bu yöntemin çağrılıp döndürülmüş örneğini alıp bir fasülyenin oluşturulması için yayı anlattığını anlıyorum. Bununla birlikte, bazen fasülyenin diğer fasulyeleri bağlamak veya başka bir kod kurmak için kullanılması gerekir. Her zamanki yol, bir örnek almak için @Bean
açıklamalı yöntemini çağırmaktır. Benim sorum şu, neden bu fasülyenin etrafında yüzen birden çok örneği var? Örneğin, aşağıdaki koda bakın (başka bir sorudan alınmıştır). entryPoint()
yönteminin @Bean
ile açıklaması açıklanmıştır, bu nedenle yayın yeni bir BasicAuthenticationEntryPoint
örneğini fasulye olarak oluşturacaktır. Ardından, yapılandırma bloğunda entryPoint()
'u tekrar ararız, ancak entryPoint()
fasulye örneğini döndürür ve birden çok kez çağrılmaz (günlüğe kaydetmeyi denedim ve yalnızca bir günlük girdisi var). Potansiyel olarak konfigürasyonun diğer bölümlerinde entryPoint()
'u birden çok kez arayabilirdik ve her zaman aynı örneği alırdık. Bu benim anlayışımı doğru mu? İlkbahar @Bean
ile açıklamalı bazı yöntemlerin yeniden yazılmasını sağlıyor mu?Spring java yapılandırmasında @Bean açıklamalı bir yöntem çağrısı
@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();
}
Bu şekilde oluşturulan fasulyeleri geçersiz kılmak mümkün mü? Örneğin, doğrudan bir fasulye oluşturma yöntemini çağıran bir Bahar tanımlı sınıfım var. İstediğim şey, bu yöntemle yaratılan fasülyenin kullanılmadığı, ancak ben kendimi tanımladığım ('Bean' ve 'Primary') ile açıklama yapmasıdır. – Fons