漢服放量是什么意思(漢服的放量)
2024-07-03
更新時(shí)間:2024-07-03 09:01:27作者:未知
作為一枚Java程序員,需要掌握哪些技術(shù)和工具才能完成一個(gè)JavaWeb項(xiàng)目呢?今天羅列一些常用技術(shù)和工具,這些技術(shù)都是我這10年工作中用的比較多的,我知道技術(shù)棧遠(yuǎn)不止這些,本人只列自己熟悉和用的最多的,完成一個(gè)項(xiàng)目絕對夠用了。說這么多技術(shù)不是讓大家都要熟悉,有些太老的現(xiàn)在也用的少了甚至不用了,本人主要結(jié)合我這10年開發(fā)經(jīng)驗(yàn)告訴大家JavaWeb的常用技術(shù)棧。
下面這張是技術(shù)棧思維導(dǎo)圖:
什么是技術(shù)棧? 舉個(gè)例子: 開發(fā)一個(gè)普通管理系統(tǒng),會用到Sprin Boot+MyBatis+Spring+Mysql+Redis+RabbitMq+Nginx+Vue+Shiro+html+等等,這些技術(shù)合起來就可以稱為技術(shù)棧。
我將技術(shù)棧大致分為5大塊:前端、后端、中間件、數(shù)據(jù)庫和工具。
JSP全稱Java Server Pages,是一種動態(tài)網(wǎng)頁開發(fā)技術(shù)。它使用JSP標(biāo)簽在HTML網(wǎng)頁中插入Java代碼。
JSP本質(zhì)上是一個(gè)servlet,主要用于實(shí)現(xiàn)Java web應(yīng)用程序的用戶界面部分。
<html> <head> <title>第一個(gè) JSP 程序</title> </head> <body> <% out.println("Hello World!"); %> </body></html>
JSP這種網(wǎng)頁技術(shù)我猜5年以下的程序員基本沒接觸過,10年前我接觸的項(xiàng)目前端基本都是采用的JSP技術(shù),jsp配合各種html+jquery/JavaScript+css完成前端頁面開發(fā)。
DWZ、EasyUI、EXT、BootStrap、KendoUI 都是基于基于 HTML、CSS、JavaScript/jquery的一些富文本客戶端UI框架,在當(dāng)時(shí)簡直是后端開發(fā)人員的福音。這些框架最大的特點(diǎn)就是官網(wǎng)上提供了各種組件的使用方法,后端人員只要套到JSP頁面中,進(jìn)行數(shù)據(jù)渲染即可。這些UI框架風(fēng)格基本已經(jīng)固定,更適合開發(fā)一些管理類系統(tǒng),都包括:強(qiáng)大的數(shù)據(jù)源,通用的拖拉(Drag-and-Drop)功能,模板,和UI控件。
是中國人自己開發(fā)的基于jQuery實(shí)現(xiàn)的Ajax RIA開源框架,設(shè)計(jì)目標(biāo)是簡單實(shí)用,快速開發(fā),降低ajax開發(fā)成本。
官網(wǎng):https://jui.org/
easyui是一種基于jQuery的用戶界面插件集合,為創(chuàng)建現(xiàn)代化,互動,JavaScript應(yīng)用程序,提供必要的功能。使用easyui你不需要寫很多代碼,你只需要通過編寫一些簡單HTML標(biāo)記,就可以定義用戶界面,為網(wǎng)頁開發(fā)的時(shí)間和規(guī)模。
官網(wǎng);http://www.jeasyui.com/
ExtJS是基于YUI(雅虎用戶界面)的sencha的JavaScript框架和產(chǎn)品,它基本上是具有現(xiàn)代UI的桌面應(yīng)用程序開發(fā)平臺。
中文官網(wǎng):
http://extjs-doc-cn.github.io/ext4api/#!/api/Ext
bootstrap是Twitter推出的一個(gè)用于前端開發(fā)的開源工具包
中文官網(wǎng):https://www.bootcss.com/
是一套 JavaScript 函式庫,提供抽象化、可自訂主題的 GUI 控制項(xiàng)與動畫效果。基于 jQuery JavaScript 函式庫,可用來建構(gòu)互動式的 Web 應(yīng)用
官網(wǎng):http://www.kendoui.io/
FreeMarker是一個(gè)免費(fèi)的模板引擎,一個(gè)基于模板生成文本輸出的通用工具,使用純Java編寫的,用來生成HTML Web頁面,特別是基于MVC模式的應(yīng)用程序。通常由Java程序準(zhǔn)備要顯示的數(shù)據(jù),由FreeMarker生成頁面,通過模板顯示準(zhǔn)備的數(shù)據(jù)(如下圖)
FreeMarker不是一個(gè)Web應(yīng)用框架,F(xiàn)reeMarker與容器無關(guān),也可以在模板中使用JSP標(biāo)記庫。
<html><head> <title>Welcome!</title></head><body> <h1>Welcome ${user}!</h1> <p>Our latest product: <a href="${latestProduct.url}">${latestProduct.name}</a>!</body></html>
上面很多前端框架都是基于html的,需要你有js/jq、css基礎(chǔ),這是所有前端框架的基礎(chǔ)。因?yàn)楣饪蚣苡袝r(shí)并不能滿足我們的需求,有時(shí)需要對框架無法實(shí)現(xiàn)的功能需要在框架基礎(chǔ)上調(diào)整;還有這個(gè)飛速發(fā)展的互聯(lián)網(wǎng)時(shí)代,對前端的要求越來越高,原生html得到了快速發(fā)展,基本所有前端效果使用原生時(shí)可以實(shí)現(xiàn)的。
vue.js 使用了基于 HTML 的模板語法,允許開發(fā)者聲明式地將 DOM 綁定至底層 Vue 實(shí)例的數(shù)據(jù)。所有 Vue.js 的模板都是合法的 HTML,所以能被遵循規(guī)范的瀏覽器和 HTML 解析器解析。
在底層的實(shí)現(xiàn)上,Vue 將模板編譯成虛擬 DOM 渲染函數(shù)。結(jié)合響應(yīng)系統(tǒng),Vue 能夠智能地計(jì)算出最少需要重新渲染多少組件,并把 DOM 操作次數(shù)減到最少。
VUE+elementUI目前使用最多的,尤其是開發(fā)一些后臺管理系統(tǒng)還是比較簡單便捷的。
servlet是Server Applet的簡稱,翻譯過來就是服務(wù)程序,簡單的講就是是運(yùn)行在服務(wù)器上的一個(gè)小程序,用來處理服務(wù)器請求的。我們通過瀏覽器訪問一個(gè)應(yīng)用,在這個(gè)過程中,我們的瀏覽器發(fā)送訪問請求,服務(wù)器接收請求,并對瀏覽器的請求作出相應(yīng)的處理,這就是我們熟悉的B/S模型(瀏覽器-服務(wù)器模型).而servlet就是對請求作出處理的組件,運(yùn)行于支持Java的應(yīng)用服務(wù)器中。如圖如是:
struts主要是指struts1和struts2,是經(jīng)典的MVC框架,除去一些老項(xiàng)目,現(xiàn)在用的越來越少了。但struts1和struts2還是有區(qū)別的,主要區(qū)別二者本質(zhì)不一樣。
struts1:通過采用Java Servlet/JSP技術(shù),實(shí)現(xiàn)了基于Java EE Web應(yīng)用的Model-View-Controller(MVC)設(shè)計(jì)模式的應(yīng)用框架,是MVC經(jīng)典設(shè)計(jì)模式中的一個(gè)經(jīng)典產(chǎn)品。
struts2:以WebWork為核心,采用攔截器的機(jī)制來處理用戶的請求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產(chǎn)品。
最經(jīng)典的組合strutsMVC+SPring+Hibernate,號稱SSH,當(dāng)年都是面試必問的技術(shù)。
Spring框架是一個(gè)開源Java應(yīng)用框架,解決了開發(fā)者在開發(fā)中遇到的許多常見的問題,提供了功能強(qiáng)大IOC、AOP及Web MVC等功能。Spring可以單獨(dú)應(yīng)用于應(yīng)用程序,也可以和Struts、Webwork等眾多Web框架組合使用。Spring框架主要由七部分組成,分別是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序。
早期項(xiàng)目大部分都是通過對JDBC封裝來操作數(shù)據(jù)庫,實(shí)現(xiàn)增刪改查,對性能考慮也不多,隨時(shí)間推移不斷衍生出很多框架,例如:mybatis,hibernate等。
iBATIS一詞來源于“internet”和“abatis”的組合,是一個(gè)由Clinton Begin在2001年發(fā)起的開放源代碼項(xiàng)目。最初側(cè)重于密碼軟件的開發(fā),現(xiàn)在是一個(gè)基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO),同時(shí)還提供一個(gè)利用這個(gè)框架開發(fā)的JPetStore實(shí)例。
iBATIS 目前提供了三種語言實(shí)現(xiàn)的版本,包括:Java、.NET以及Ruby。
MyBatis 本是apache的一個(gè)開源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis 。
MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設(shè)置參數(shù)以及獲取結(jié)果集。
Mybatis 增強(qiáng)工具包 – 只做增強(qiáng)不做改變,簡化CRUD操作
JPA是Java Persistence API的簡稱,中文名Java持久層API,是JDK 5.0注解或XML描述對象-關(guān)系表的映射關(guān)系,并將運(yùn)行期的實(shí)體對象持久化到數(shù)據(jù)庫中。
Sun引入新的JPA ORM規(guī)范出于兩個(gè)原因:其一,簡化現(xiàn)有Java EE和Java SE應(yīng)用開發(fā)工作;其二,Sun希望整合ORM技術(shù),實(shí)現(xiàn)天下歸一。
SpringBoot是由Pivotal團(tuán)隊(duì)在2013年開始研發(fā)、2014年4月發(fā)布第一個(gè)版本的全新開源的輕量級框架。它基于Spring4.0設(shè)計(jì),不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過簡化配置來進(jìn)一步簡化了Spring應(yīng)用的整個(gè)搭建和開發(fā)過程。另外SpringBoot通過集成大量的框架使得依賴包的版本沖突,以及引用的不穩(wěn)定性等問題得到了很好的解決。
Spring Cloud 為開發(fā)者提供了在分布式系統(tǒng)(如配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、一次性 Token、全局鎖、決策競選、分布式會話和集群狀態(tài))操作的開發(fā)工具。使用 Spring Cloud 開發(fā)者可以快速實(shí)現(xiàn)上述這些模式。
Spring Cloud 的 GitHub 主頁:
https://github.com/spring-cloud
Dubbo 是阿里巴巴公司開源的一個(gè)高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過高性能的 RPC 實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和 Spring 框架無縫集成。
主要核心部件:
Remoting: 網(wǎng)絡(luò)通信框架,實(shí)現(xiàn)了 sync-over-async 和 request-response 消息機(jī)制
RPC: 一個(gè)遠(yuǎn)程過程調(diào)用的抽象,支持負(fù)載均衡、容災(zāi)和集群功能
Registry: 服務(wù)目錄框架用于服務(wù)的注冊和服務(wù)事件發(fā)布和訂閱
Spring Cloud Alibaba 致力于提供分布式應(yīng)用服務(wù)開發(fā)的一站式解決方案。此項(xiàng)目包含開發(fā)分布式應(yīng)用服務(wù)的必需組件,方便開發(fā)者通過 Spring Cloud 編程模型輕松使用這些組件來開發(fā)分布式應(yīng)用服務(wù)。
依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以將 Spring Cloud 應(yīng)用接入阿里分布式應(yīng)用解決方案,通過阿里中間件來迅速搭建分布式應(yīng)用系統(tǒng)。
Apache Shiro 是 Java 的一個(gè)安全框架。目前,使用 Apache Shiro 的人越來越多,因?yàn)樗喈?dāng)簡單,對比 Spring Security,可能沒有 Spring Security 做的功能強(qiáng)大,但是在實(shí)際工作時(shí)可能并不需要那么復(fù)雜的東西,所以使用小而簡單的 Shiro 就足夠了。對于它倆到底哪個(gè)好,這個(gè)不必糾結(jié),能更簡單的解決項(xiàng)目問題就好了。
Spring Security是一個(gè)能夠?yàn)榛赟pring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。它提供了一組可以在Spring應(yīng)用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反轉(zhuǎn)Inversion of Control ,DI:Dependency Injection 依賴注入)和AOP(面向切面編程)功能,為應(yīng)用系統(tǒng)提供聲明式的安全訪問控制功能,減少了為企業(yè)系統(tǒng)安全控制編寫大量重復(fù)代碼的工作。
OAuth(開放授權(quán))是一個(gè)開放標(biāo)準(zhǔn),允許用戶讓第三方應(yīng)用訪問該用戶在某一網(wǎng)站上存儲的私密的資源(如照片,視頻,聯(lián)系人列表),而無需將用戶名和密碼提供給第三方應(yīng)用。
OAuth 2.0 是目前比較流行的做法,它率先被Google, Yahoo, Microsoft, Facebook等使用。之所以標(biāo)注為 2.0,是因?yàn)樽畛跤幸粋€(gè)1.0協(xié)議,但這個(gè)1.0協(xié)議被弄得太復(fù)雜,易用性差,所以沒有得到普及。2.0是一個(gè)新的設(shè)計(jì),協(xié)議簡單清晰,但它并不兼容1.0,可以說與1.0沒什么關(guān)系。
Maven 是 Apache 下的一個(gè)純 Java 開發(fā)的開源項(xiàng)目。利用一個(gè)中央信息片斷能管理一個(gè)項(xiàng)目的構(gòu)建、報(bào)告和文檔等步驟。是一個(gè)項(xiàng)目管理工具,可以對 Java 項(xiàng)目進(jìn)行構(gòu)建、依賴管理。
ant 是一個(gè)將軟件編譯、測試、部署等步驟聯(lián)系在一起加以自動化的一個(gè)工具,大多用于Java環(huán)境中的軟件開發(fā)。在實(shí)際軟件開發(fā)中,有很多地方可以用到ant。
Gradle是一個(gè)基于Apache Ant和Apache Maven概念的項(xiàng)目自動化構(gòu)建開源工具。它使用一種基于Groovy的特定領(lǐng)域語言(DSL)來聲明項(xiàng)目設(shè)置,目前也增加了基于Kotlin語言的kotlin-based DSL,拋棄了基于XML的各種繁瑣配置。
Tomcat 服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web 應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選
Apache(阿帕奇)是世界使用排名第一的Web服務(wù)器軟件。它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一
Jetty 是一個(gè)開源的servlet容器,它為基于Java的web容器,例如JSP和servlet提供運(yùn)行環(huán)境。
WebLogic Server是專門為企業(yè)電子商務(wù)應(yīng)用系統(tǒng)開發(fā)的。企業(yè)電子商務(wù)應(yīng)用系統(tǒng)需要快速開發(fā),并要求服務(wù)器端組件具有良好的靈活性和安全性,同時(shí)還要支持關(guān)鍵任務(wù)所必需的擴(kuò)展、性能、和高可用性。WebLogic Server簡化了可移植及可擴(kuò)展的應(yīng)用系統(tǒng)的開發(fā),并為其它應(yīng)用 系統(tǒng)和系統(tǒng)提供了豐富的互操作性。
Nginx是一款輕量級的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like 協(xié)議下發(fā)行。其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng)。
緩存是現(xiàn)在系統(tǒng)中必不可少的模塊,并且已經(jīng)成為了高并發(fā)高性能架構(gòu)的一個(gè)關(guān)鍵組件。緩存的主要作用:提升性能和緩解數(shù)據(jù)庫壓力,
Redis是一個(gè)開源的內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲,用作數(shù)據(jù)庫、緩存和消息代理。提供諸如字符串、哈希、列表、集合、帶范圍查詢的排序集合、位圖、超日志、地理空間索引和流等數(shù)據(jù)結(jié)構(gòu)。具有內(nèi)置的復(fù)制、Lua腳本、LRU逐出、事務(wù)和不同級別的磁盤持久性,并通過Redis Sentinel和Redis Cluster的自動分區(qū)提供高可用性。
MongoDB 是一個(gè)基于分布式文件存儲的數(shù)據(jù)庫。由 C++ 語言編寫。旨在為 WEB 應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。
Memcached是一個(gè)自由開源的,高性能,分布式內(nèi)存對象緩存系統(tǒng),用來提高Web應(yīng)用擴(kuò)展性的重要因素。是一個(gè)基于內(nèi)存的key-value存儲,用來存儲小塊的任意數(shù)據(jù)(字符串、對象)。簡潔而強(qiáng)大,它的簡潔設(shè)計(jì)便于快速開發(fā),減輕開發(fā)難度,解決了大數(shù)據(jù)量緩存的很多問題。一般的使用目的是,通過緩存數(shù)據(jù)庫查詢結(jié)果,減少數(shù)據(jù)庫訪問次數(shù),以提高動態(tài)Web應(yīng)用的速度、提高可擴(kuò)展性。
差異性我就不多說了,簡單說下他們的使用場景:
Memcached:動態(tài)系統(tǒng)中減輕數(shù)據(jù)庫負(fù)載,提升性能;做緩存,適合多讀少寫,大數(shù)據(jù)量的情況(如人人網(wǎng)大量查詢用戶信息、好友信息、文章信息等)。Redis:適用于對讀寫效率要求都很高,數(shù)據(jù)處理業(yè)務(wù)復(fù)雜和對安全性要求較高的系統(tǒng)(如新浪微博的計(jì)數(shù)和微博發(fā)布部分系統(tǒng),對數(shù)據(jù)安全性、讀寫要求都很高)。MongoDB:主要解決海量數(shù)據(jù)的訪問效率問題。Solr是一個(gè)獨(dú)立的企業(yè)級搜索應(yīng)用服務(wù)器,它對外提供類似于Web-service的API接口。用戶可以通過http請求,向搜索引擎服務(wù)器提交一定格式的XML文件,生成索引;也可以通過Http Get操作提出查找請求,并得到XML格式的返回結(jié)果。
Elasticsearch是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式多用戶能力的全文搜索引擎,基于RESTful web接口
es基本是開箱即用,非常簡單,Solr略微復(fù)雜。
Solr 支持更多格式的數(shù)據(jù),比如JSON、XML、CSV,而 Elasticsearch 僅支持json文件格式。
Solr 查詢快,但更新索引時(shí)慢(即插入刪除慢),ES建立索引快(即查詢慢),即實(shí)時(shí)性查詢快。
之所以推薦ELK是因?yàn)槊鎸Ψ植际轿⒎?wù)情況下,會顯示出他的威力,不管是數(shù)據(jù)收集、數(shù)據(jù)處理、還是數(shù)據(jù)分析可以節(jié)約很多時(shí)間。ELK是Elasticsearch + Logstash + Kibana三個(gè)開源軟件的組合,但是通常為了提高性能需要借助kafka,利用Filebeat進(jìn)行日志收集,下面這個(gè)架構(gòu)圖是我做過的一個(gè)日志服務(wù)平臺。
說定定時(shí)任務(wù)大家可能都接觸過,例如Spring自帶的定時(shí)任務(wù)SpringTask,但是SpringTask是存在很多問題的,例如:最致命的一個(gè)問題就是一旦定時(shí)拋出異常,生命就結(jié)束,下一次不會再執(zhí)行。復(fù)雜業(yè)務(wù)中使用起來是不方便的,這里推薦兩個(gè)定時(shí)任務(wù)框架Quartz和xx-job,第三方的功能比較強(qiáng)大,好用。
Quartz是OpenSymphony開源組織在Job scheduling領(lǐng)域又一個(gè)開源項(xiàng)目,完全由Java開發(fā),可以用來執(zhí)行定時(shí)任務(wù),類似于java.util.Timer。但是相較于Timer, Quartz增加了很多功能:
持久性作業(yè) – 就是保持調(diào)度定時(shí)的狀態(tài);作業(yè)管理 – 對調(diào)度作業(yè)進(jìn)行有效的管理;XXL-JOB是一個(gè)輕量級分布式任務(wù)調(diào)度平臺,其核心設(shè)計(jì)目標(biāo)是開發(fā)迅速、學(xué)習(xí)簡單、輕量級、易擴(kuò)展?,F(xiàn)已開放源代碼并接入多家公司線上產(chǎn)品線,開箱即用。
目前已有多家公司接入xxl-job,包括比較知名的大眾點(diǎn)評,京東,優(yōu)信二手車,北京尚德,360金融 (360),聯(lián)想集團(tuán) (聯(lián)想),易信 (網(wǎng)易)等等…. Quartz作為開源作業(yè)調(diào)度中的佼佼者,是作業(yè)調(diào)度的首選
Quartz在集群環(huán)境下只能通過API的方式對任務(wù)管理,同時(shí),系統(tǒng)侵入性相當(dāng)嚴(yán)重,而XX-JOB可以完美解決集群下任務(wù)額管理。所以,可以根據(jù)自己業(yè)務(wù)情況選擇合適定時(shí)任務(wù)框架,
什么是配置中心?
集中將應(yīng)用系統(tǒng)中對配置信息的管理作為一個(gè)新的應(yīng)用功能模塊,區(qū)別與傳統(tǒng)的配置信息分散到系統(tǒng)各個(gè)角落方式,進(jìn)行集中統(tǒng)一管理,并且提供額外功能。尤其是在微服務(wù)架構(gòu)中,是不可或缺組件,甚至是必要組件之一。
為什么要使用配置中心?
在微服務(wù)體系中,服務(wù)的數(shù)量以及配置信息的日益增多,比如各種服務(wù)器參數(shù)配置、各種數(shù)據(jù)庫訪問參數(shù)配置、各種環(huán)境下應(yīng)用配置信息的不同、配置信息修改之后實(shí)時(shí)生效等等,傳統(tǒng)的配置文件方式或者將配置信息存放于數(shù)據(jù)庫中的方式已無法滿足開發(fā)人員對配置管理的要求。常見的配置中心中間件有:SpringCloud Config ,Nacos,apollo等。
2014年9月開源,Spring Cloud 生態(tài)組件,可以和Spring Cloud體系無縫整合,Spring Cloud Config支持通過/bus/refresh端點(diǎn)的destination參數(shù)來指定要更新配置的機(jī)器,不過整個(gè)流程不夠自動化和體系化。相對于Apollo和Nacos還是比較弱的。
2018年6月,阿里開源的配置中心,也可以做DNS和RPC的服務(wù)發(fā)現(xiàn)。Nacos使用起來相對比較簡潔,在對性能要求比較高的大規(guī)模場景更適合。此外,Nacos除了提供配置中心的功能,還提供了動態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)共享與管理的功能,降低了服務(wù)化改造過程中的難度。
2016年5月,攜程開源的配置管理中心,具備規(guī)范的權(quán)限、流程治理等特性,Apollo可以直接在控制臺上點(diǎn)灰度發(fā)布指定發(fā)布機(jī)器的IP,接著再全量發(fā)布,做得比較體系化。
核心功能: Apollo和Nacos相對于Spring Cloud Config的生態(tài)支持更廣
實(shí)時(shí)推送: Nacos和Apollo在配置實(shí)時(shí)推送鏈路上是比較簡單高效的,Spring Cloud Config比較復(fù)雜。
高可用部署: Nacos的部署結(jié)構(gòu)比較簡單,運(yùn)維成本較低。Apollo部署組件較多,運(yùn)維成本比Nacos高。Spring Cloud Config生產(chǎn)高可用的成本最高。
服務(wù)器監(jiān)控是實(shí)時(shí)掌握服務(wù)器工作狀態(tài),并在需要時(shí)可以隨時(shí)調(diào)用監(jiān)控記錄進(jìn)行查看。
Spring Boot Admin用來管理和監(jiān)控Spring Boot應(yīng)用程序,通過UI來查看應(yīng)用程序的狀態(tài),例如Spring Beans,系統(tǒng)屬性,線程,http的調(diào)用情況等有限狀態(tài)。
我知道Druid更多的用途就是連接池,其實(shí)他還有一個(gè)對SQL監(jiān)控功能。
Skywalking是由國內(nèi)開源愛好者吳晟(原OneAPM工程師,目前在華為)開源并提交到Apache孵化器的產(chǎn)品,它同時(shí)吸收了Zipkin/Pinpoint/CAT的設(shè)計(jì)思路,支持非侵入式埋點(diǎn)。是一款基于分布式跟蹤的應(yīng)用程序性能監(jiān)控系統(tǒng)。另外社區(qū)還發(fā)展出了一個(gè)叫OpenTracing的組織,旨在推進(jìn)調(diào)用鏈監(jiān)控的一些規(guī)范和標(biāo)準(zhǔn)工作。
把涉及到數(shù)據(jù)庫相關(guān)或者可以作為數(shù)據(jù)倉庫的中間件都?xì)w到一起了。
Mycat是一個(gè)開源數(shù)據(jù)庫中間件,是一個(gè)實(shí)現(xiàn)了MySQL協(xié)議的的數(shù)據(jù)庫中間件服務(wù)器,我們可以把它看作是一個(gè)數(shù)據(jù)庫代理,用MySQL客戶端工具和命令行訪問Mycat,而Mycat再使用用MySQL原生(Native)協(xié)議與多個(gè)MySQL服務(wù)器通信,也可以用JDBC協(xié)議與大多數(shù)主流數(shù)據(jù)庫服務(wù)器通信,包括SQL Server、Oracle、DB2、PostgreSQL等主流數(shù)據(jù)庫,也支持MongoDB這種新型NoSQL方式的存儲,未來還會支持更多類型的存儲;一般地,Mycat主要用于代理MySQL數(shù)據(jù)庫,雖然它也支持去訪問其他類型的數(shù)據(jù)庫;
Mycat官網(wǎng):http://www.mycat.io/
我們先看官網(wǎng)的介紹
canal,譯意為水道/管道/溝渠,主要用途是基于 MySQL 數(shù)據(jù)庫增量日志解析,提供增量數(shù)據(jù)訂閱和消費(fèi)。
這句介紹有幾個(gè)關(guān)鍵字:增量日志,增量數(shù)據(jù)訂閱和消費(fèi)。
這里我們可以簡單地把canal理解為一個(gè)用來同步增量數(shù)據(jù)的一個(gè)工具。
接下來我們看一張官網(wǎng)提供的示意圖:
定位為輕量級Java框架,在Java的JDBC層提供的額外服務(wù)。 它使用客戶端直連數(shù)據(jù)庫,以jar包形式提供服務(wù),無需額外部署和依賴,可理解為增強(qiáng)版的JDBC驅(qū)動,完全兼容JDBC和各種ORM框架。
主要功能
分庫 & 分表讀寫分離分布式主鍵ZooKeeper是Hadoop的正式子項(xiàng)目,它是一個(gè)針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等。ZooKeeper的目標(biāo)就是封裝好復(fù)雜易出錯(cuò)的關(guān)鍵服務(wù),將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。
這個(gè)事務(wù)更多指的是分布式事務(wù)處理插件。
Apache ShardingSphere(Incubator) 是一套開源的分布式數(shù)據(jù)庫中間件解決方案組成的生態(tài)圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(規(guī)劃中)這3款相互獨(dú)立,卻又能夠混合部署配合使用的產(chǎn)品組成。它們均提供標(biāo)準(zhǔn)化的數(shù)據(jù)分片、分布式事務(wù)和數(shù)據(jù)庫治理功能,可適用于如Java同構(gòu)、異構(gòu)語言、容器、云原生等各種多樣化的應(yīng)用場景。
Seata 是 Simple Extensible Autonomous Transaction Architecture 的簡寫,由 feascar 改名而來。是阿里開源的分布式事務(wù)框架,屬于二階段提交模式。
消息隊(duì)列是一個(gè)存放消息的容器,當(dāng)我們需要使用消息的時(shí)候可以取出消息供自己使用。消息隊(duì)列是分布式系統(tǒng)中重要的組件,使用消息隊(duì)列主要是為了通過異步處理提高系統(tǒng)性能和削峰、降低系統(tǒng)耦合性。目前使用較多的消息隊(duì)列有ActiveMQ,RabbitMQ,Kafka,RocketMQ。
1.通過異步處理提高系統(tǒng)性能(削峰、減少響應(yīng)所需時(shí)間);
2.降低系統(tǒng)耦合性;
Kafka是由Apache軟件基金會開發(fā)的一個(gè)開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費(fèi)者在網(wǎng)站中的所有動作流數(shù)據(jù)。這些數(shù)據(jù)通常是由于吞吐量的要求而通過處理日志和日志聚合來解決。 對于像Hadoop一樣的日志數(shù)據(jù)和離線分析系統(tǒng),但又要求實(shí)時(shí)處理的限制,這是一個(gè)可行的解決方案。Kafka的目的是通過Hadoop的并行加載機(jī)制來統(tǒng)一線上和離線的消息處理,也是為了通過集群來提供實(shí)時(shí)的消息。
AMQP,即Advanced Message Queuing Protocol,高級消息隊(duì)列協(xié)議,是應(yīng)用層協(xié)議的一個(gè)開放標(biāo)準(zhǔn),為面向消息的中間件設(shè)計(jì)。消息中間件主要用于組件之間的解耦,消息的發(fā)送者無需知道消息使用者的存在,反之亦然。 AMQP的主要特征是面向消息、隊(duì)列、路由(包括點(diǎn)對點(diǎn)和發(fā)布/訂閱)、可靠性、安全。 RabbitMQ是一個(gè)開源的AMQP實(shí)現(xiàn),服務(wù)器端用Erlang語言編寫,支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系統(tǒng)中存儲轉(zhuǎn)發(fā)消息,在易用性、擴(kuò)展性、高可用性等方面表現(xiàn)不俗。
ActiveMQ是一種開源的基于JMS(Java Message Servie)規(guī)范的一種消息中間件的實(shí)現(xiàn),ActiveMQ的設(shè)計(jì)目標(biāo)是提供標(biāo)準(zhǔn)的,面向消息的,能夠跨越多語言和多系統(tǒng)的應(yīng)用集成消息通信中間件。
特性 ActiveMQ RabbitMQ kafka 開發(fā)語言 java erlang scala 單機(jī)吞吐量 萬級 萬級 10萬級 時(shí)效性 ms級 us級 ms級以內(nèi) 可用性 高(主從架構(gòu)) 高(主從架構(gòu)) 非常高(分布式架構(gòu)) 功能特性 成熟的產(chǎn)品,在很多公司得到應(yīng)用;有較多的文檔;各種協(xié)議支持較好 基于erlang開發(fā),所以并發(fā)能力很強(qiáng),性能極其好,延時(shí)很低;管理界面較豐富 只支持主要的MQ功能,像一些消息查詢,消息回溯等功能沒有提供,畢竟是為大數(shù)據(jù)準(zhǔn)備的,在大數(shù)據(jù)領(lǐng)域應(yīng)用廣。
該數(shù)據(jù)庫主要是指關(guān)系型數(shù)據(jù)庫,是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫,數(shù)據(jù)庫是存放數(shù)據(jù)的倉庫,是一個(gè)系統(tǒng)或者軟件必不可少的一部分。每個(gè)數(shù)據(jù)庫都有一個(gè)或多個(gè)不同的 API 用于創(chuàng)建,訪問,管理,搜索和復(fù)制所保存的數(shù)據(jù)。我們也可以將數(shù)據(jù)存儲在文件中,但是在文件中讀寫數(shù)據(jù)速度相對較慢。
所以,現(xiàn)在我們使用關(guān)系型數(shù)據(jù)庫管理系統(tǒng)來存儲和管理大數(shù)據(jù)量。所謂的關(guān)系型數(shù)據(jù)庫,是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。
關(guān)系數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn):
1.數(shù)據(jù)以表格的形式出現(xiàn)2.每行為各種記錄名稱3.每列為記錄名稱所對應(yīng)的數(shù)據(jù)域4.許多的行和列組成一張表單5.若干的表單組成database常見的數(shù)據(jù)管理系統(tǒng)主要有:oracle、mysql、SQL Server、access、TiDB。
Oracle Database,簡稱 Oracle。Oracle 數(shù)據(jù)庫系統(tǒng)是美國 Oracle 公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是目前最流行的客戶/服務(wù)器(client/server)的數(shù)據(jù)庫之一。Oracle 數(shù)據(jù)庫是目前世界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系型數(shù)據(jù)庫,它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫它實(shí)現(xiàn)了分布式處理功能,但它的所有知識,只要在一種機(jī)型上學(xué)習(xí)了Oracle知識,便能在各種類型的機(jī)器上使用它。
MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。目前也是Oracle 公司來托管。
美國Microsoft公司推出的一種關(guān)系型數(shù)據(jù)庫系統(tǒng)。SQL Server是一個(gè)可擴(kuò)展的、高性能的、為分布式客戶機(jī)/服務(wù)器計(jì)算所設(shè)計(jì)的數(shù)據(jù)庫管理系統(tǒng),實(shí)現(xiàn)了與WindowsNT的有機(jī)結(jié)合,提供了基于事務(wù)的企業(yè)級信息管理系統(tǒng)方案。
Access是微軟把數(shù)據(jù)庫引擎的圖形用戶界面和軟件開發(fā)工具結(jié)合在一起的一個(gè)數(shù)據(jù)庫管理系統(tǒng)。它是微軟OFFICE的一個(gè)成員, 在包括專業(yè)版和更高版本的office版本里面被單獨(dú)出售。
TiDB 是 PingCAP 公司自主設(shè)計(jì)、研發(fā)的開源分布式關(guān)系型數(shù)據(jù)庫,是一款同時(shí)支持在線事務(wù)處理與在線分析處理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式數(shù)據(jù)庫產(chǎn)品,具備水平擴(kuò)容或者縮容、金融級高可用、實(shí)時(shí) HTAP、云原生的分布式數(shù)據(jù)庫、兼容 MySQL 5.7 協(xié)議和 MySQL 生態(tài)等重要特性。目標(biāo)是為用戶提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解決方案。TiDB 適合高可用、強(qiáng)一致要求較高、數(shù)據(jù)規(guī)模較大等各種應(yīng)用場景。
上面這幾個(gè)數(shù)據(jù)庫優(yōu)缺點(diǎn)都比較明顯,不在啰嗦了,大家在工作中可以根據(jù)自己實(shí)際情況選擇合適的數(shù)據(jù)。
IntelliJ在業(yè)界被公認(rèn)為最好的java開發(fā)工具,尤其在智能代碼助手、代碼自動提示、重構(gòu)、JavaEE支持、各類版本工具(git、svn等)、JUnit、CVS整合、代碼分析、 創(chuàng)新的GUI設(shè)計(jì)等方面的功能可以說是超常的。IDEA是JetBrains公司的產(chǎn)品,這家公司總部位于捷克共和國的首都布拉格,開發(fā)人員以嚴(yán)謹(jǐn)著稱的東歐程序員為主。它的旗艦版本還支持HTML,CSS,PHP,MySQL,Python等。免費(fèi)版只支持Java,Kotlin等少數(shù)語言。
Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺, 是 Java 的集成開發(fā)環(huán)境(IDE),當(dāng)然 Eclipse 也可以作為其他開發(fā)語言的集成開發(fā)環(huán)境,如C,C++,PHP,和 Ruby 等。
MyEclipse,是在Eclipse 基礎(chǔ)上加上自己的插件開發(fā)而成的功能強(qiáng)大的企業(yè)級集成開發(fā)環(huán)境,主要用于Java、Java EE以及移動應(yīng)用的開發(fā)。在最新版本的MyEclipse中,配合CodeMix使用支持也十分廣泛,尤其是對各種開源產(chǎn)品和主流開發(fā)框架的支持相當(dāng)不錯(cuò)。目前已支持PHP、Python、Vue、Angular、React、Java、Java EE等語言和框架開發(fā)。
這三款工具好壞我也不做任何評價(jià),每個(gè)工具用戶都不少,我周圍IntelliJ IDEA和MyEclipse都有,我個(gè)人比較喜歡用IntelliJ IDEA。
常見的版本空間工具svn和git
TortoiseSVN 是 Subversion 版本控制系統(tǒng)的一個(gè)免費(fèi)開源客戶端,可以超越時(shí)間的管理文件和目錄。文件保存在中央版本庫,除了能記住文件和目錄的每次修改以外,版本庫非常像普通的文件服務(wù)器。你可以將文件恢復(fù)到過去的版本,并且可以通過檢查歷史知道數(shù)據(jù)做了哪些修改,誰做的修改。這就是為什么許多人將 Subversion 和版本控制系統(tǒng)看作一種“時(shí)間機(jī)器”。
Git 是用于Linux內(nèi)核開發(fā)的版本控制工具。與常用的版本控制工具 Subversion 不同,它采用了分布式版本庫的方式,不必服務(wù)器端軟件支持,代碼的發(fā)布和交流極其方便。 Git 的速度很快,這樣的大項(xiàng)目來說自然很重要。 Git 最為出色的是它的合并跟蹤(merge tracing)能力。
SVN的特點(diǎn)是簡單,只是需要一個(gè)放代碼的地方時(shí)用是OK的。
Git的特點(diǎn)版本控制可以不依賴網(wǎng)絡(luò)做任何事情,對分支和合并有更好的支持(這應(yīng)該算是開發(fā)者最關(guān)心的地方)。
Navicat是一套快速、可靠并價(jià)格相當(dāng)便宜的數(shù)據(jù)庫管理工具,專為簡化數(shù)據(jù)庫的管理及降低系統(tǒng)管理成本而設(shè)。它的設(shè)計(jì)符合數(shù)據(jù)庫管理員、開發(fā)人員及中小企業(yè)的需要。Navicat 是以直覺化的圖形用戶界面而建的,讓你可以以安全并且簡單的方式創(chuàng)建、組織、訪問并共用信息。
PL/SQL Developer是一個(gè)集成開發(fā)環(huán)境,專門開發(fā)面向Oracle數(shù)據(jù)庫的應(yīng)用。PL/SQL也是一種程序語言,叫做過程化SQL語言(Procedural Language/SQL)。PL/SQL是Oracle數(shù)據(jù)庫對SQL語句的擴(kuò)展。在普通SQL語句的使用上增加了編程語言的特點(diǎn),所以PL/SQL把數(shù)據(jù)操作和查詢語句組織在PL/SQL代碼的過程性單元中,通過邏輯判斷、循環(huán)等操作實(shí)現(xiàn)復(fù)雜的功能或者計(jì)算,PL/SQL 只有 Oracle 數(shù)據(jù)庫有。
Redis Desktop Manager是一款windows平臺下的可視化redis數(shù)據(jù)庫桌面管理工具,使用它你可以查看、刪除、修改你的redis數(shù)據(jù)庫數(shù)據(jù)!
XShell是一個(gè)強(qiáng)大的安全終端模擬軟件,它支持SSH1,SSH2,以及Microsoft Windows平臺的TELNET協(xié)議。 XShell可以在Windows界面下用來訪問遠(yuǎn)端不同系統(tǒng)下的服務(wù)器,從而比較好的達(dá)到遠(yuǎn)程控制終端的目的。
寶塔面板是一個(gè)可以安裝在服務(wù)器上的集成環(huán)境,并配套了web管理面板,可以在瀏覽器上直接控制你的服務(wù)器,非常方便。 可以一鍵創(chuàng)建網(wǎng)站、FTP、數(shù)據(jù)庫、SSL;安全管理,計(jì)劃任務(wù),文件管理,PHP多版本共存及切換;自帶基礎(chǔ)網(wǎng)站環(huán)境,支持windows系統(tǒng)(apache)和linux系統(tǒng)(apache或nginx)。
Secure CRT 是一款SSH客戶端軟件,通過使用內(nèi)含的VCP命令行程序可以進(jìn)行加密文件的傳輸。
Postman一款非常流行的API調(diào)試工具。其實(shí),開發(fā)人員用的更多。因?yàn)闇y試人員做接口測試會有更多選擇,例如Jmeter、soapUI等。不過,對于開發(fā)過程中去調(diào)試接口,Postman確實(shí)足夠的簡單方便,而且功能強(qiáng)大。
Typora+PicGo,最好用的Markdown+最好用的圖床工具!如果寫博客的可以收藏起來。
Notepad++中文版是程序員必備的文本編輯器,Notepad++中文版小巧高效,支持27種編程語言,通吃C,C++ ,Java ,C#, XML, HTML, PHP,JS 等,Notepad++中文版編輯器可完美地取代微軟的記事本。
Office Visio 是Office軟件系列中的負(fù)責(zé)繪制流程圖和示意圖的軟件,是一款便于IT和商務(wù)人員就復(fù)雜信息、系統(tǒng)和流程進(jìn)行可視化處理、分析和交流的軟件。使用具有專業(yè)外觀的 Office Visio 圖表,可以促進(jìn)對系統(tǒng)和流程的了解,深入了解復(fù)雜信息并利用這些知識做出更好的業(yè)務(wù)決策。常見軟件架構(gòu)、流程圖都可以在里面完成。
ProcessOn是一個(gè)在線作圖工具的聚合平臺, 它可以在線畫流程圖、思維導(dǎo)圖、UI原型圖、UML、網(wǎng)絡(luò)拓?fù)鋱D、組織結(jié)構(gòu)圖等等, 您無需擔(dān)心下載和更新的問題,不管Mac還是Windows,一個(gè)瀏覽器就可以隨時(shí)隨地的發(fā)揮創(chuàng)意,規(guī)劃工作。
官網(wǎng):
https://www.processon.com/
owerDesigner是一款非常全面的數(shù)據(jù)庫設(shè)計(jì)工具。使用PowerDesigner可以快速創(chuàng)建表,支持表與表之間建立關(guān)系,界面簡潔,功能強(qiáng)大。同時(shí)支持將sql腳本導(dǎo)出,多種導(dǎo)出類型任意挑選,簡單實(shí)用。
XMind 是一個(gè)全功能的思維導(dǎo)圖和頭腦風(fēng)暴軟件,為激發(fā)靈感和創(chuàng)意而生。作為一款有效提升工作和生活效率的生產(chǎn)力工具,受到全球百千萬用戶的青睞。
說到 iReport 不得不先介紹 Jasperreport,Jasperreport 是一個(gè)報(bào)表制作程序,用戶需要按照它制定的規(guī)則編寫一個(gè) XML 文件,然后得到用戶需要輸出的格式文件。它支持輸出的文件格式包括 PDF,HTML,XML,XLS,CVS 等等。而 iReport 就是一個(gè)制作 Jasperreport 的 XML 文件的可視化開發(fā)工具。
Google Chrome是一款由Google公司開發(fā)的網(wǎng)頁瀏覽器,該瀏覽器基于其他開源軟件撰寫,包括WebKit,目標(biāo)是提升穩(wěn)定性、速度和安全性,并創(chuàng)造出簡單且有效率的使用者界面。
搜狗瀏覽器 由搜狗公司開發(fā),基于谷歌chromium內(nèi)核,力求為用戶提供跨終端無縫使用體驗(yàn),讓上網(wǎng)更簡單、網(wǎng)頁閱讀更流暢的瀏覽器。
Mozilla Firefox,中文俗稱“火狐”,是一個(gè)由Mozilla開發(fā)的自由及開放源代碼的網(wǎng)頁瀏覽器。其使用Gecko排版引擎,支持多種操作系統(tǒng),如Windows、macOS及GNU/Linux等
Internet Explorer(簡稱:IE)是微軟公司微軟公司推出的一款網(wǎng)頁瀏覽器。原稱Microsoft Internet Explorer(6版本以前)和Windows Internet Explorer(7、8、9、10、11版本)。在IE7以前,中文直譯為“網(wǎng)絡(luò)探路者”,但在IE7以后官方便直接俗稱”IE瀏覽器”。
如果做前端開發(fā),這幾款瀏覽器兼容性都得兼顧。很早之前IE瀏覽器市場是比較大,隨著時(shí)間推移,谷歌瀏覽器占據(jù)了比較大的市場。我個(gè)人日常開發(fā)中谷歌用的比較多,特殊情況才會使用其它瀏覽器。
JMeter是Apache組織開發(fā)的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設(shè)計(jì)用于Web應(yīng)用測試,但后來擴(kuò)展到其他測試領(lǐng)域。 它可以用于測試靜態(tài)和動態(tài)資源,例如靜態(tài)文件、Java 服務(wù)程序、CGI 腳本、Java 對象、數(shù)據(jù)庫, 等等。
apache bench簡稱ab,它是apache自帶的壓力測試工具。ab非常實(shí)用,它不僅可以對apache服務(wù)器進(jìn)行網(wǎng)站訪問壓力測試,也可以對或其它類型的服務(wù)器進(jìn)行壓力測試。
MAT是Java堆內(nèi)存分析工具,可從
http://www.eclipse.org/mat/中下載。
你在成為大神的路上都學(xué)習(xí)了哪些技術(shù),歡迎留言交流。