SpringMVC專案模組淺析

獵手家園發表於2017-04-14

本文為個人筆記,對於springmvc模組的規劃,仁者見仁、智者見智,請不要生搬硬套。

 

一、基礎模組-basic

主要內容是dao、spring-xml、domain、service等內容,模組內分層如下:

dao 持久層的實現主要有ibatis和mybatis,根據需要選擇。

service

domain 實體類

rpc-api 介面層

web 服務釋出層

 

dao層的注意事項:

<1> resource中除了配置各表的xml,還需要配置sqlmap-config。

<result property="enumCode" column="enum_code"/>

注意這條語句,它對資料庫欄位做了一個對映,前面是程式中實現的實體類,後面是資料庫欄位。

<2> 每個dao類都需要繼承BaseDao。

<3> 順便講一資料庫設計規範:見另一篇文章

 

二、服務層-service

<1> spring-mvc中需要進行注入,注入有兩種方式:註解注入和set注入

a、註解注入方式

@Resource

private InsRiskRuleService insRiskRuleService;

b、set注入方式

public void setInsRiskRuleService(InsRiskRuleService insRiskRuleService) {

this.insRiskRuleService = insRiskRuleService;

}

 

<2>宣告bean的兩種方式: 註解和xml配置

a、註解的方式

@Service

public class InsRiskRuleService {......}

@Component

public final class PayClient {}

但是這個需要在spring-config.xml中進行配置注入,否則不起作用。

<context:component-scan base-package="com.jd.*">

<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>

<context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>

</context:component-scan>

這個註解是把com.jd包下所有的@Compontant 及它的子類註解的類,生命為bean的方式

b、xml配置bean的方式

<bean id="insRiskRuleDao" class="com.jd.ins.risk.basic.dao.InsRiskRuleDao"/>

<bean id="insRiskRuleService" class="com.jd.risk.basic.service.InsRiskRuleService"/>

 

三、實體類層-domain

有一個生成快捷鍵:Alt + Insert 鍵。

 

四、介面層rpc-api

rpc-api層有兩塊的主要內容:介面Interface和DTO實體類(Data Transfer Object 資料傳輸物件)。

介面比較好理解,這裡就不詳細介紹了,主要講一下DTO實體類。

之前我做介面的時候,自己使用的實體類和暴露給使用的是同一個實體類,這樣就會有以下問題:(1). 有不需要傳遞的物件會傳遞了,浪費了資源。(2). 別一個就是你把你的隱私也暴露給別人了。因此這個DTO裡只給對方需要的欄位。

 

介面做好了,但是還需要實現,否則介面不清楚你要幹什麼。實現是要放到service層的,最好要和service分開,這樣清晰、便於管理。實現類一般以impl為結尾。

 

五、應用層web

模組做好了,需要釋出到站點別人才可以呼叫,所以就需要一個web服務層。

web層主要是對專案進行spring-mvc配置,還有一些常規配置,如使用者名稱密碼等。

 

關於WEB層的開發:

我們的整個框架使用的是spring-mvc,持久層使用的是ibatis,表現層使用的是vm,前端使用的是H5,資料庫使用的是MySQL、MongoDB、HBase等。

相關文章