1. Spring @Configuration 和 @Component 區別
1.@Configuration 和 @Component 區別
我們可以看下,其實@Configuration 本質其實是 @Component註解的,因此 <context:component-scan>和@ComponentScan都能處理@Configuration 類
被@Configuration 標記的類必須符合下面幾點要求
1.配置類必須是要以類的形式提供,不能是工廠返回的實例,允許生成子類在運行是增強cglib動態代理
2配置類不能是fanl 修飾,不能是匿名類( 任何嵌套的類必須是非本地, 既不能在方法中聲明,不能是privater),嵌套的configruation必須是靜態類
3.@Bean 方法可能不會返過來創建進一步的配置類 意思就是返回的bean 帶有@Configuration.也只是當作普通類來處理。
原理分析待續····························
2.@Configuration 和 @bean
這里@Configuration可以看作是用spring的時候xml裡面的<beans>標簽
@Bean可以理解為用spring 的時候裡面<bean>標簽
這兩個註解是spring 裡面的,並不是spring boot裡面的
在spring xml 這種形式的項目的時候 後面都要加上<context:component-scan base-package="com.xxx.xxx"> ,有時候好多註解不起作用, 可能就是這個註解。而在spring boot裡面就不一樣了, 只要保證main方法的入口在這些的列的上層包就行
2. javabean與普通類有什麼區別嗎
javabean是對面向對象思想的一種具體實施的表現,本質就是組件化,模塊化。把復雜的系統拆成若干個小的模塊,就像零件一樣,需要時在按照系統架構對他進行拼接,滿足於一個功能需求而特別獨立出來的java類,具體表現提供若干個公開的構造方法,以及對類中的欄位,遵照javabean規范提供相應的set和get方法。
廣義上來說,所有的類都可以被稱做javabean,因為都是根據一個特定的功能需求而獨立出來的java類
3. spring 自動裝配 和配置bean的區別
spring IoC容器可以自動裝配(autowire)相互協作bean之間的關聯關系。因此,如果可能的話,可以自 動讓Spring通過檢查BeanFactory中的內容,來替我們指定bean的協作者(其他被依賴的bean)。由於 autowire可以針對單個bean進行設置
4. JAVA BEAN和CLASS的區別
JavaBean和class的區別:JavaBean只是比class多一些限制條件,其他無區別。
JavaBean實質也是一個類,這個類遵循:
類必須是具體的和公共的。
具有無參數的構造器。
通過提供符合一致性設計模式的公共方法將內部域暴露成員屬性(即getters和setters)。
實現java.io.Serializable介面(這個目前是默認實現的,不需要特殊申明)。
例如以下為一個簡單的JavaBean:
packagecom.test;
importjava.lang.*;
publicclassJavaBean{
privateStringattr;
publicJavaBean(){
//無參構造函數
}
//setter
publicvoidsetAttr(Stringstr){
attr=str;
}
//getter
publicStringgetAttr(){
returnattr;
}
}