原型模式

vo:value object:值對象
po:persistant object:持久層對象
bo:business object:業務對象 PO組合,如投保人是一個PO,被保險人是一個PO,險種信息是一個PO等等,他們組合氣來是第一張保單的BO
dto:data transfer object:數據傳輸對象
pojo:可以額轉化爲PO、DTO、VO;比如POJO在傳輸過程中就是DTO
entity:實體,和PO的功能類似,和數據表一一對應,一個實體一張表
如何區分

轉https://blog.csdn.net/qq_41604862/article/details/79675223

深克隆,淺克隆

DTO和VO之間存在一些屬性名稱和類型相同的數據從數據表中查詢出來的對象,賦值給DTO,再給mvc中的MODEL。但不能直接給過去
先把DTO賦值給VO,再VO中把值傳到View中
複製就是把DTO每個屬性賦值給VO中每個屬性,包括值,類型
如Apache 使用反射實現(原型模式)
java推薦使用CloneAble接口實現,spring使用反射
spring中 把對象配置依賴關係,在每次使用對象前,都會創建一個新的對象,並把依賴關係完整的賦值給這個新創建的對象
常用scope屬性
新創建的對象(新bean)原型模式
scope="propotype"
spring默認使用單例模式
只創建一個
scope="singleton"

當設置爲prototype時:每次連接請求,都會生成一個bean實例,也會導致一個問題,當請求數越多,性能會降低,因爲創建的實例,導致GC頻繁,gc時長增加。

設置爲單例模式:保證了全局都會有一個實例,對性能有所提高,但是如果實例中有非靜態變量時,會導致線程安全問題,共享資源的競爭。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章