@Bean
Mevcut bir üçüncü taraf sınıfını Spring framework uygulama içeriğiniz için kullanılabilir hale getirmek için kullanabilirsiniz .
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Bean
Ek açıklamayı kullanarak, üçüncü taraf bir sınıfı (sahip olmayabilir @Component
ve Bahar kullanamayabilir), Bahar çekirdeği olarak sarabilirsiniz . Ve sonra bir kez kullanılarak sarılır @Bean
, tek bir nesne olarak ve Bahar çerçeve uygulama bağlamında kullanılabilir. Artık bağımlılığı enjeksiyon kullanarak ve kullanarak bu fasulye kolayca paylaşmak / yeniden kullanabilirsiniz @Autowired
.
Bu yüzden @Bean
ek açıklama üçüncü taraf sınıfları için bir sarıcı / adaptör olduğunu düşünün . Üçüncü taraf sınıflarını Spring framework uygulama içeriğiniz için kullanılabilir hale getirmek istiyorsunuz.
@Bean
Yukarıdaki kodu kullanarak , açıkça tek bir fasulye bildiririm çünkü yöntemin içinde, açıkça new
anahtar kelimeyi kullanarak nesneyi oluşturuyorum . Ben de verilen sınıfın setter yöntemlerini elle arıyorum. Böylece önek alanının değerini değiştirebilirim. Dolayısıyla bu manuel çalışmaya açık yaratma denir. @Component
Aynı sınıf için kullanırsam, Bahar kapsayıcısında kayıtlı fasulye önek alanı için varsayılan değere sahip olacaktır.
Öte yandan, bir sınıfa açıklama eklediğimizde @Component
, new
anahtar kelimeyi manuel olarak kullanmamıza gerek yoktur . Spring tarafından otomatik olarak kullanılır.