@BeanMevcut 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;
}
@BeanEk açıklamayı kullanarak, üçüncü taraf bir sınıfı (sahip olmayabilir @Componentve 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 @Beanek 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.
@BeanYukarıdaki kodu kullanarak , açıkça tek bir fasulye bildiririm çünkü yöntemin içinde, açıkça newanahtar 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. @ComponentAynı 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, newanahtar kelimeyi manuel olarak kullanmamıza gerek yoktur . Spring tarafından otomatik olarak kullanılır.