突破常規,這樣好不好?

2021-08-23 15:09:46 字數 1452 閱讀 2246

剛到乙個新的專案組,專案採用常規的ssh架構,還處於初期階段。專案分層是:

jsp-->action-->service-->dao--->entity--->db table

一般情況是一張表或檢視,往往會對應乙個entity,然後針對這個entity會有乙個dao bean來維護,dao也會有乙個相應的service bean,最後由action來呼叫。這樣一來,似乎很麻煩,因為我們還需要做很多事情:

1.entity對映,一張表需要乙個hbm.xml檔案;

2.在hibernate配置檔案中注入需要維護的entity 所有hbm.xml檔案;

3.在spring中配置dao bean;

4.在spring中配置service bean,同時還需要配置引用的dao ref;

剩下就是action bean及調整配置了;

鑑於此,很多地方配置改用annotation方式,比如entity與表的關聯,屬性與表字段關聯,dao和service也採用annotation,甚至連struts2的調整也用annotation...,似乎感覺到annotation的氾濫了,這樣的確是方便了很多,甚至可以0配置;但也帶來了問題,導致沒有乙個全域性性的檔案來檢視頁面流程跳轉,業務元件的依賴,感覺專案的可維護性變差;

因此決定對其做一定的改造,entity用annotation,用packagetoscan簡化配置,針對service和dao層,則有如下種想法,

想法一:

1.整個專案只採用乙個泛型dao, 泛型機制只用於方法,因此有別於basedao這樣的dao。這樣的dao已經寫好,支援簡單的crud及複雜查詢,包括自定義查詢(結果返回可自定義);

2.再些乙個通用的baseservice元件,注入basedao,提供常規的crud方法,作為父類;然後其他業務類直接繼承即可;

優點:1.不需要做繁瑣的dao bean配置,因為只有乙個basedao,僅配置一次即可;

2.針對service bean也僅需做簡單的配置,而無需配置dao ref(因為在父類已注入);

這樣一來,**量和配置大大減輕。

缺點:還是需要為為乙個service bean做配置。

想法二:

1.整個專案只採用乙個泛型dao;

2.提供乙個強大的baseservice,重寫struts action父類,將baseservice注入,推薦專案組只用這乙個baseservice,不建議專案組為每個業務物件寫乙個類;如果有baseservice不能滿足的,就在action中提供乙個private來方法,封裝業務。

優點:1.服務層類會大大減少,一定程度上減少**量,同時更簡化了服務層配置;

2.action的配置也簡化,不需要為每個action配置service的ref,因為已經重寫父類,在父類中已注入;

缺點: action中**量會有所增加,因為有些baseservice不能提供的,需要在action中寫業務**。

不知道採用方法一好還是方法二好,大家給我點意見吧,

人單純點好不好?

今天在乙個群裡看到乙個人問 人單純點好不好?有人說 人太單純了會變傻的。有人說 單純點好!但是現在單純的人難找啊!有人說 現在單純的人總是被人欺負。人們眾說紛紜,但是總體觀點是人太單純了不好,這個世界上太單純的人是很少的。乙個人生活在這個複雜的社會上,有時想單純都很難,世事紛擾,瑣事繁雜,人際關係複...

Django框架好不好

django框架是什麼?實話說,django這個詞可真拗口,不好發音不好寫,我用django用了很多年,還是經常拼不好。可以說django是python事實上最好的web 框架,也幾乎可以說是唯一了,主要是python語言的重點方向是演算法,它更多的是作為大型專案中外掛程式輔助的角色存在的,它的長處...

《做我老婆好不好》

和idea很配哦 easyui springboot springdatajpa 是我最近幾個月一直在做得事情 疾控中心管理系統 如果明天的路你不知該往哪兒走 就留在我身邊做我老婆 好不好 我不夠寬闊的臂膀也會是你的 溫暖懷抱 如果你疲倦了外面的 風風雨雨 就留在我身邊做我老婆 好不好 我一定會承受...