一际歼、項目簡要說明
一個項目分為多個工程,其中parent工程和common工程為其它工程的依賴姑蓝。
parent工程為聚合(pom)工程鹅心,common工程為jar工程。
聚合(pom)工程中可以有model工程纺荧,如interface旭愧、service、pojo宙暇、dao输枯,service為war包,其它為jar包占贫。
web工程為表現(xiàn)層工程桃熄,service工程為服務(wù)層工程。表現(xiàn)層工程既可以是前端頁面型奥,也可以是后臺頁面蜻拨。
web工程和聚合(pom)工程(一般不運行服務(wù)工程service)在pom文件里都要添加tomcat插件池充,每個工程的端口號不同螺捐,默認(rèn)是8080.
二晓锻、服務(wù)層與表現(xiàn)層
service工程即為服務(wù)層、web工程即為表現(xiàn)層布卡。
service工程實現(xiàn)interface工程中的xxx接口血崭,并且使用dubbo暴露出去卧惜,web工程使用dubbo引用后,就可以直接調(diào)用xxx接口中定義的抽象方法夹纫,無需再實現(xiàn)咽瓷,實現(xiàn)的具體細(xì)節(jié)由service執(zhí)行。
2.1舰讹、service工程如下
目錄結(jié)構(gòu)
src
|--main
|--java
|--com.taotao.jedis(redis集群版與單機版的實現(xiàn))
|--com.taotao.xxx.service.impl(實現(xiàn)interface工程中的接口)
|--resources
|--mybatis(SqlMapConfig.xml茅姜,設(shè)置數(shù)據(jù)類型和分頁插件)
|--properties(dp.porperties、resource.properties)
|--spring(下面單獨說明)
|--webapp
|--WEB-INF(web.xml月匣,初始化spring容器和上下文監(jiān)聽)
|--test
pom.xml(各種依賴)
service工程中的spring一般都有dao.xml钻洒、trans.xml,命名可加前綴applicationContext锄开。
manager-service:activemq.xml素标、dao.xml、redis.xml萍悴、service.xml头遭、trans.xml.
search-service:activemq.xml、dao.xml癣诱、service.xml计维、solr.xml.
content-service:dao.xml、reids.xml撕予、service.xml鲫惶、trans.xml.
sso-service:dao.xml、reids.xml嗅蔬、service.xml、trans.xml.
order-service:dao.xml疾就、redis.xml澜术、service.xml、trans.xml.
dao.xml主要作用有:
1猬腰、加載屬性文件
2鸟废、配置數(shù)據(jù)庫連接池(Druid)
3、配置SqlSessionFactory(引用2中的連接池姑荷、加載SqlMapConfig.xml)
4盒延、配置mapper映射文件掃描器(mapper統(tǒng)一放在manager-dao中)
redis.xml主要作用有:
1缩擂、配置上下文注解
2、配置單機版或者集群版
2.1單機版配置對應(yīng)的JedisPool文件添寺,服務(wù)層所有服務(wù)的host和port 參數(shù)相同且只有一個胯盯。再配置對應(yīng)的com.taotao.jedis.JedisClientPool。
2.2集群版配置對應(yīng)的JedisCluster文件计露,所有服務(wù)的配置相同博脑,但在每一個服務(wù)中有多個參數(shù)不同的host和port。再配置對應(yīng)的com.taotao.jedis.JedisClientCluster票罐。
service.xml主要作用有:
1叉趣、配置掃描@service注解的類
2、發(fā)布服務(wù)该押,詳情參考 http://www.reibang.com/p/7b091aac00a3
trans.xml主要作用有:
1疗杉、配置事務(wù)管理器(引用dao.xml中的連接池)
2、配置通知蚕礼,通知所有數(shù)據(jù)庫操作
3烟具、配置aop,引用2中的通知
activemq.xml主要作用有:
1闻牡、配置JMS服務(wù)廠商提供的ConnectionFactory
2净赴、封裝spring對象ConnectionFactory
3、配置JMSTemplate
4罩润、配置消息的Destination對象玖翅,有兩種方式:ActiveMQQueue、ActiveMQTopic
5割以、 配置消息的接收者
solr.xml主要作用有:
1金度、配置單機版或者集群版solr
1.1單機版配置HttpSolrServer文件,參數(shù)值為一個host和一個port严沥。
1.2集群版配置文件CloudSolrServer文件猜极,參數(shù)值為一個host和多個port。
2.2消玄、web工程如下
目錄結(jié)構(gòu)
src
|--main
|--java
|--com.taotao.xxx.controller(服務(wù)層與前端的中間控制器)
|--com.taotao.xxx.pojo 或者interceptor跟伏、utils、listener翩瓜、exception
|--resources
|--properties(resource.properties受扳、client.conf)
|--springmvc.xml 或者springmvc-activemq.xml
|--webapp
|--WEB-INF(web.xml,初始化spring容器和上下文監(jiān)聽)
|--test
pom.xml(各種依賴)
web工程中的spring都有springmvc.xml兔跌。主要作用有:
1勘高、加載屬性文件
2、配置注解驅(qū)動
3、配置視圖解析器
4华望、配置掃描@Controller注解的類
5蕊蝗、引用dubbo服務(wù)
6、配置資源映射(css赖舟、js)
7蓬戚、配置文件上傳解析器(比如manager后臺管理需要上傳圖片文件)
8、配置攔截器(比如訂單系統(tǒng)需要攔截登陸)
9建蹄、配置全局異常處理器(比如在search工程中)
有些需要做靜態(tài)網(wǎng)頁碌更,比如item頁,就會多個freemarker的配置洞慎。
有些web工程還做消息隊列痛单,那么在spring中會加個springmvc-activemq.xml,比如在item工程中劲腿。