***
把物件放入物件池(把類註冊到物件池)的方法
使用註解 + @component:可以標記任何類,沒有任何特殊含義
@controller:標記控制器類,明確地暗示這個類是乙個控制器類。spring物件池本身不在乎物件是什麼,對speingmvc有作用
@restcontroller:標記控制器類,每乙個請求處理方法自動被標記為@resonuebody
@service:標記服務類
reposilory:標記資料訪問類(dao)
上面的註解實際都是@componet,只是名字不同,名字對程式起到暗示作用,而在@componer本身也是乙個記號,用來告訴掃瞄器,將標記類註冊到物件池中。
有子標籤,可以決定掃瞄那些包,排除那些包,從而讓注釋掃瞄更精確,速度更快。
不足之處:使用註解的不足是,獲取到的物件僅僅是無參構造方法初始化產生的,其屬性並沒有我們需要的賦值
在物件池的配置檔案中,詳細的描述bean
通過標籤可以向物件池中新增物件(或物件工廠)
好處是:可以隨意初始化bean物件
可以呼叫有參構造方法
可以通過呼叫setter給屬性賦值
= "物件的類"
如果屬性值是其它
bean
屬性名」
ref=「其它bean
名字」 />
屬性名」>
local=「本物件池中的其它bean
名字」 />
parent=」
父物件池中的bean
名字」 />
bean=」
其它bean
名字」 />
如果想給屬性值(乙個物件)的屬性賦值
屬性名.屬性名」 >
如果屬性值比較複雜
列表屬性」>
列表項1
列表項2
集合屬性」>
列表項1
列表項2
字典屬性」>
名稱1」 value=」
值1」 />
名稱2值2
名稱3值3
// 能夠
建立物件的方法被稱為
工廠方法
如果沒有公開的構造方法(通過工廠方法建立物件)
物件的類」 factory-method=」
能建立物件的靜態方法」 />
物件的類」 factory-bean=」
工廠bean」
factory-method=」
能建立物件的例項方法」 />
指定bean
的作用域
@scope(「
作用網域名稱」)
作用網域名稱」>
指定bean
的名稱
不指定名稱時,通過類全名生成,如果同乙個類有多個bean
則後面加#1
編號 註解指定 @component(「beanname」)
配置指定
指定別名
在同乙個物件池中名字不能重複
指定名稱後有利於通過程式設計方式以 getbean()
方法獲取bean
獲取bean
@autowired
按類型別注入,如果物件池中存在多個本類的物件,則報錯
@qualifier(『beanname』)
多個物件時,限定取哪乙個
@lazy
懶建立,使用時才建立bean
,有利於減少記憶體及加快啟動速度
預設情況下,物件池建立時,會建立所有的
bean
可以在根標籤上新增 default-lazy-init=」true」
讓本物件池整體懶建立
@resource
按型別@resource(「beanname」)
按名字程式設計:物件池.getbean();
獲取bean
物件池
在bean
參與bean
的生命週期
註解 @postconstruct, @predestroy …
當bean
構造完成後或銷毀前會呼叫@postconstruct, @predestroy
標記的方法
介面 initialzingbean
也可以獲得相應的事件,而且還多了乙個
afterpropertiesset() //
在屬性都設定完成後會呼叫
Java菜鳥學習日記16
直接使用jsbc開發的問題 當表中的列很多時,需要寫很長的sql語句,還需要寫大量的引數設定語句 set 讀取資料時,還需寫大量的設定屬性語句 set 易錯且不易修改,如某個字段需要去掉,就需要調整後續的很多序號 大量的時間都花在了 搬磚 上 而且很容易埋下bug,後期測試和修復時間大大增加 結論 ...
Java菜鳥學習日記30
bootstrap 響應式按鈕 表現效果 手機上全寬,桌面上2列寬 原理 btn block 會將按鈕變成全寬,但桌面上 col sm 2 生效,按鈕被限制在2列寬中,手機上col sm 2失效 在自己的專案中整合第三方外掛程式或功能 找到所有的依賴項 css js jar 配置檔案 並且注意依賴項...
Java菜鳥學習日記33
使用git分支開發新特性或修復bug 每個分支都有自己的歷史記錄 除了使用eclipse工具建立切換分支之外,也可以使用命令方式建立及切換分支 使用 responsebody和jackson返回json資料 返回json資料時,控制器返回的不是modelandview或string檢視名,而是要返回...