@Component 和 @Bean 的區別
阿新 • • 發佈:2018-11-09
Spring幫助我們管理Bean分為兩個部分,一個是註冊Bean,一個裝配Bean。
完成這兩個動作有三種方式,一種是使用自動配置的方式、一種是使用JavaConfig的方式,一種就是使用XML配置的方式。
@Compent 作用就相當於 XML配置
@Component public class Student { private String name = "lkm"; public String getName() { return name; } public void setName(String name) { this.name = name; } }
@Bean 需要在配置類中使用,即類上需要加上@Configuration註解
@Configuration
public class WebSocketConfig {
@Bean
public Student student(){
return new Student();
}
}
兩者都可以通過@Autowired裝配
@Autowired
Student student;
那為什麼有了@Compent,還需要@Bean呢?
如果你想要將第三方庫中的元件裝配到你的應用中,在這種情況下,是沒有辦法在它的類上新增@Component註解的,因此就不能使用自動化裝配的方案了,但是我們可以使用@Bean,當然也可以使用XML配置。