好文分享--java企業(yè)架構(gòu) spring mvc +mybatis + KafKa+Flume+Zookeeper分布式架構(gòu)

1、基本概念

1.1、Spring

Spring?是一個(gè)開源框架,?Spring?是于?2003??年興起的一個(gè)輕量級(jí)的?Java??開發(fā)框架,由?Rod?Johnson??在其著作?Expert?One-On-One?J2EE?Development?and?Design?中闡述的部分理念和原型衍生而來。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。?Spring?使用基本的?JavaBean?來完成以前只可能由?EJB?完成的事情。然而,?Spring?的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測(cè)試性和松耦合的角度而言,任何?Java?應(yīng)用都可以從?Spring?中受益。?簡單來說,?Spring?是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(?IoC?)和面向切面(?AOP?)的容器框架。

1.2、SpringMVC

Spring?MVC?屬于?SpringFrameWork?的后續(xù)產(chǎn)品,已經(jīng)融合在?Spring?Web?Flow?里面。?Spring?MVC??分離了控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓它們更容易進(jìn)行定制。

1.3、MyBatis

MyBatis??本是apache的一個(gè)開源項(xiàng)目iBatis,?2010?年這個(gè)項(xiàng)目由?apache?software?foundation??遷移到了?google?code?,并且改名為?MyBatis??。?MyBatis?是一個(gè)基于?Java?的持久層框架。?iBATIS?提供的持久層框架包括?SQL?Maps?和?Data?Access?Objects?(?DAO?)?MyBatis??消除了幾乎所有的?JDBC?代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。?MyBatis??使用簡單的??XML?或注解用于配置和原始映射,將接口和??Java??的?POJOs?(?Plain?Old?Java?Objects?,普通的??Java對(duì)象)映射成數(shù)據(jù)庫中的記錄。

愿意了解框架技術(shù)或者源碼的朋友直接加求求(企鵝)2042849237

4、SSM整合

下面主要介紹三大框架的整合,至于環(huán)境的搭建以及項(xiàng)目的創(chuàng)建,參看上面的博文。這次整合我分了?2?個(gè)配置文件?,分別是?spring-mybatis.xml?,包含?spring?和?mybatis?的配置文件,還有個(gè)是?spring-mvc?的配置文件,此外有?2?個(gè)資源文件?:?jdbc.propertis?和?log4j.properties?。完整目錄結(jié)構(gòu)如下:

經(jīng)典介紹:

源碼結(jié)構(gòu)

使用框架都是較新的版本 :

Spring?4.0.2?RELEASE

Spring?MVC?4.0.2?RELEASE

MyBatis?3.2.6

4.1、Maven引入需要的JAR包

為了方便后面說的時(shí)候不需要引入JAR包,我這里?直接給出所有需要的JAR包,這都是基本的JAR包?,每個(gè)包的是干什么的都有注釋,就不再多說了。

pom.xml

4.0.2.RELEASE3.2.61.7.71.2.17junitjunit4.11testorg.springframeworkspring-core${spring.version}org.springframeworkspring-web${spring.version}org.springframeworkspring-oxm${spring.version}org.springframeworkspring-tx${spring.version}org.springframeworkspring-jdbc${spring.version}org.springframeworkspring-webmvc${spring.version}org.springframeworkspring-aop${spring.version}org.springframeworkspring-context-support${spring.version}org.springframeworkspring-test${spring.version}org.mybatismybatis${mybatis.version}org.mybatismybatis-spring1.2.2javaxjavaee-api7.0mysqlmysql-connector-java5.1.30commons-dbcpcommons-dbcp1.2.2jstljstl1.2log4jlog4j${log4j.version}com.alibabafastjson1.1.41org.slf4jslf4j-api${slf4j.version}org.slf4jslf4j-log4j12${slf4j.version}org.codehaus.jacksonjackson-mapper-asl1.9.13commons-fileuploadcommons-fileupload1.3.1commons-iocommons-io2.4commons-codeccommons-codec1.9

4.2、Spring與MyBatis的整合

所有需要的?JAR?包都引入以后,首先進(jìn)行?Spring?與?MyBatis?的整合,然后再進(jìn)行?JUnit?測(cè)試,先看一個(gè)項(xiàng)目結(jié)構(gòu)圖:

OPEN CI

開源規(guī)范化項(xiàng)目管理解決方案,實(shí)現(xiàn)軟件流水線式生產(chǎn),保證正確性、可靠性

向?qū)絼?chuàng)建、導(dǎo)入項(xiàng)目,集成版本控制(GIT/SVN)、項(xiàng)目管理(Trac/Redmine)、代碼質(zhì)量(Sonar)、持續(xù)集成(Jenkins)

私有部署,統(tǒng)一管理,為開發(fā)者而生

愿意了解框架技術(shù)或者源碼的朋友直接加求求(企鵝)2042849237

分布式

分布式服務(wù):Dubbo+Zookeeper+Proxy+Restful

分布式消息中間件:KafKa+Flume+Zookeeper

分布式緩存:Redis??? 分布式文件:FastDFS

負(fù)載均衡:Keepalived+Nginx+Proxy(三重負(fù)載)

歡迎大家一起學(xué)習(xí)研究相關(guān)技術(shù)愿意了解框架技術(shù)或者源碼的朋友直接加求求(企鵝):2042849237

更多詳細(xì)源碼參考來源:http://minglisoft.cn/technology

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容