「轉載」Spring4集成Swagger:真的只需要四步,五分鐘速成
- 果你所在的公司的還沒有使用swagger甚至沒有聽說過swagger,趕快學習一下我的這篇博客吧,五分鐘速成,傻瓜式的集成,但就是這么簡單的應用一定會讓他們震驚到的。
- 首先對swagger做一個簡介吧:swagger是后臺開發的神器,也是前后端交流的渠道。你可以用swagger做什么?首先,你以后基本可以告別單元測試了;其次,你不用再寫接口文檔了,也不需要寫完之后再去對文檔進行維護了。swagger可以完全模擬http請求,入參出參和實際情況差別幾乎為零。說了這些,直接來干貨吧!
- 集成四部曲:
- 第一步:導入兩個依賴吧,如果你不是maven項目,那你去找找jar包吧,記住只需要兩個,我看別的教程引入了七八個,簡直是浪費。
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 第二步:添加一個類(拷貝下面的即可,注意修改包名,地址)
/**
* Swagger配置
*
* @author wq
* @since 2017-05-16
*/
@EnableWebMvc
@EnableSwagger2
@Configuration
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.z*.b*.c*.controller")) // 注意修改此處的包名
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("接口列表 v1.1.0") // 任意,請稍微規范點
.description("接口測試") // 任意,請稍微規范點
.termsOfServiceUrl("http://url/swagger-ui.html") // 將“url”換成自己的ip:port
.contact("laowu") // 無所謂(這里是作者的別稱)
.version("1.1.0")
.build();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 第三步:在mvc的配置的文件中添加下面配置,可能你的文件也許是叫 dispatcher.xml!(照抄即可,完全不需要修改)
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>
方法上:
@ApiOperation(value="教程", httpMethod="POST", notes="教程")
放在入參中:
@ApiParam(required=true, name="test", value="教程入參")
擔心有些朋友還不太明白,放張圖吧!
- 第五步:啟動服務,然后在瀏覽器輸入:
http://ip:port/swagger-ui.html
出現下面的畫面就代表大功告成:
注意事項:如果你的項目中使用了攔截器,請將swagger資源放行(還是可以直接拷貝下面的配置,全部,不要懷疑v2)
<mvc:exclude-mapping path="/swagger*/**"></mvc:exclude-mapping>
<mvc:exclude-mapping path="/v2/**"></mvc:exclude-mapping>
<mvc:exclude-mapping path="/webjars/**"></mvc:exclude-mapping>
速成指南:從入門到進階,實戰WPF與Unity3D開發
來百度APP暢享高清圖片
//下栽のke:quangneng.com/1983/
C#速成指南:從入門到進階
C# 是一種面向對象的編程語言,被廣泛用于各種平臺和應用程序開發。在本文中,我們將介紹 C# 的基礎知識,并深入探討如何使用 C# 進行 WPF 和 Unity3D 開發。
一、C# 入門
當你開始學習C#時,你會發現它是一門強大而又靈活的編程語言,廣泛用于開發各種類型的應用程序,從桌面應用到Web應用,再到移動應用。下面是一些你可以跟隨的步驟來入門學習C#:
- 安裝和設置開發環境:
- 下載并安裝Visual Studio,這是Microsoft提供的主要的C#開發工具。
- 如果你更喜歡使用跨平臺的開發工具,可以選擇Visual Studio Code,并安裝C#插件。
學習基礎語法:- 開始學習C#的基礎語法,例如變量、數據類型、運算符、條件語句、循環語句等。
- 理解C#中的面向對象編程概念,如類、對象、繼承、多態等。
編寫簡單的控制臺應用程序:- 創建一些簡單的控制臺應用程序,例如打印一些文本、進行簡單的計算等,以鞏固你所學的基礎知識。
學習.NET框架和C#庫:- 了解.NET框架的基本概念,以及C#標準庫中提供的各種功能和類。
- 學習如何使用.NET框架中的類和方法來實現各種功能,例如文件操作、網絡通信、數據庫訪問等。
深入學習面向對象編程:- 深入學習面向對象編程的概念和原則,掌握如何設計和構建面向對象的程序。
- 學習C#中的一些高級特性,如泛型、委托、事件等。
學習GUI編程:- 學習如何使用Windows Forms或WPF等GUI框架來創建圖形用戶界面應用程序。
- 掌握如何設計和布局界面、處理用戶輸入、響應事件等。
學習ASP.NET和Web開發(可選):- 如果你有興趣學習Web開發,可以學習ASP.NET框架以及相關的Web開發技術,如HTML、CSS、JavaScript等。
- 學習如何使用ASP.NET MVC或ASP.NET Core來構建Web應用程序。
實踐項目:- 開始著手一些小型項目,應用你所學的知識來解決實際的問題。
- 不斷地練習和實踐,通過項目來加深對C#語言和.NET框架的理解和掌握。
查閱文檔和教程:- 瀏覽MSDN(Microsoft Developer Network)和其他在線資源,查閱C#和.NET框架的文檔和教程,以解決遇到的問題和學習新的知識。
參與社區和交流:- 加入C#和.NET開發者社區,參與討論和交流,向他人請教問題并分享自己的經驗。
WPF 開發進階
WPF(Windows Presentation Foundation)是一種用于創建Windows桌面應用程序的強大框架。下面是WPF開發的一些進階主題和技巧:
- MVVM 架構:
- 學習和實踐MVVM(Model-View-ViewModel)架構,這是一種用于在WPF應用程序中管理和分離UI邏輯、業務邏輯和數據的模式。
- 使用INotifyPropertyChanged接口來實現數據綁定,確保ViewModel中的數據更改能夠及時地更新UI。
命令系統:- 使用ICommand接口和RelayCommand等實現命令模式,以處理在UI中觸發的動作和操作。
- 學習如何在XAML中綁定命令,使得按鈕點擊等用戶交互可以與ViewModel中的命令進行關聯。
自定義控件和模板:- 創建自定義控件以滿足特定需求,了解如何使用控件模板和數據模板來自定義控件的外觀和行為。
- 學習在XAML中使用ControlTemplate和DataTemplate,以及在代碼中動態創建和管理模板。
動畫和過渡效果:- 利用WPF提供的動畫系統來創建平滑的過渡效果和動畫。
- 學習使用Storyboard和關鍵幀(KeyFrames)來定義動畫,使應用程序界面更加生動和吸引人。
數據綁定進階:- 深入學習數據綁定,包括多重綁定、相對源綁定、數據轉換器等。
- 掌握Binding類的各種屬性和用法,以更靈活地控制數據在UI中的呈現。
觸摸和手勢支持:- 如果你的應用程序需要支持觸摸屏交互,學習如何使用WPF的觸摸和手勢支持功能。
- 實踐在UI元素上實現觸摸事件和手勢識別。
異步編程:- 了解在WPF應用程序中進行異步編程的最佳實踐,以確保UI的響應性。
- 使用async和await關鍵字來處理異步操作,避免在主線程上執行耗時的任務。
測試和調試:- 學習使用單元測試框架對WPF應用程序的ViewModel進行測試。
- 利用Visual Studio的調試工具,深入了解應用程序的運行時行為和性能瓶頸。
國際化和本地化:- 實踐在WPF應用程序中實現國際化(i18n)和本地化(l10n),以支持不同語言和文化的用戶。
性能優化:- 了解WPF應用程序的性能優化技巧,包括UI虛擬化、數據延遲加載等。
- 使用Visual Profiler等工具來分析和改進應用程序的性能。
Unity3D 開發進階
進階Unity3D開發需要深入理解引擎的核心功能和高級技術。以下是一些進階主題和技巧:
- 性能優化:
- 深入了解Unity的性能優化技術,包括批處理、物體合并、LOD(Level of Detail)等。
- 使用Unity Profiler來識別和解決性能瓶頸,確保游戲在各種平臺上都能夠流暢運行。
腳本優化:- 優化腳本代碼以提高游戲的性能,包括減少內存分配、避免不必要的循環、使用對象池等技術。
- 學習C#的高級特性,如委托、事件、LINQ等,以更高效地編寫游戲邏輯。
高級圖形技術:- 探索Unity的渲染管線(Rendering Pipeline)和Shader編程,以實現更高質量的圖形效果。
- 學習編寫自定義Shader和Shader圖形編程語言(Shader Graph)以實現特定的視覺效果。
物理模擬:- 深入了解Unity的物理引擎,并學習如何調優和定制物理模擬以滿足游戲需求。
- 探索剛體約束、碰撞檢測、射線投射等物理相關的高級技術。
網絡和多人游戲:- 學習Unity的網絡功能,包括UNET(Unity Networking)和Mirror等,以實現多人游戲和在線功能。
- 深入了解網絡通信協議、同步技術和反作弊機制,確保游戲的安全和穩定性。
虛擬現實和增強現實:- 探索Unity的VR(Virtual Reality)和AR(Augmented Reality)開發功能,開發沉浸式的虛擬和增強現實應用。
- 學習如何處理頭部跟蹤、手部交互、環境感知等與VR和AR相關的技術。
人工智能和行為設計:- 學習如何使用Unity的機器學習工具和AI算法來創建智能的游戲角色和敵人。
- 探索行為樹(Behavior Trees)、狀態機(State Machines)等技術,實現復雜的角色行為和決策邏輯。
動畫和角色控制:- 深入了解Unity的動畫系統,包括骨骼動畫、融合樹(Blend Trees)、動畫狀態機等。
- 學習角色控制技術,包括基于物理的角色控制、IK(Inverse Kinematics)等。
用戶界面設計:- 學習如何使用Unity的UI工具和Canvas系統來設計響應式的用戶界面。
- 探索UI動畫、過渡效果、布局技術等,以提升游戲的用戶體驗。
持續集成和版本控制:- 實踐使用持續集成工具和版本控制系統,如Unity Cloud Build、Git等,以提高團隊協作效率和項目管理能力。
Unity3D網絡游戲開發和 AI 編程
在Unity3D中進行網絡游戲開發和AI編程都是非常廣泛且有趣的領域。以下是關于這兩個方面的一些基本指導:
Unity3D網絡游戲開發:
- 選擇網絡框架:
- Unity提供了多種網絡框架,如UNET(Unity Networking)、Mirror等,選擇適合項目需求的框架。
- 還可以考慮使用第三方庫,比如Photon Unity Networking(PUN)、Socket.IO等。
客戶端和服務器:- 確定游戲的架構,包括客戶端和服務器之間的通信方式和數據同步策略。
- 學習如何處理客戶端預測、服務器校驗等技術,確保游戲的同步性和穩定性。
網絡同步:- 學習如何同步玩家輸入、游戲狀態和物體位置等重要數據,以確保所有玩家在游戲中看到的是一致的狀態。
- 探索插值、平滑處理等技術,以提升游戲的視覺表現和網絡性能。
安全和反作弊:- 實施安全措施,防止作弊行為如外掛、修改數據等。
- 使用加密技術、服務器端驗證等方式來確保游戲的公平性和安全性。
服務器架設:- 學習如何在云端或本地架設游戲服務器,以支持多人游戲的運行和管理。
- 探索服務器端的性能優化、負載均衡等技術,確保服務器的穩定性和可擴展性。
Unity3D AI 編程:
- 決策樹和行為樹:
- 學習如何使用行為樹(Behavior Trees)等技術來設計智能角色的行為邏輯。
- 探索狀態、條件、動作等節點的組合,以實現復雜的角色決策和行為控制。
路徑規劃:- 學習如何使用導航網格(NavMesh)和尋路算法來實現角色的路徑規劃和導航。
- 探索A*算法、Dijkstra算法等路徑規劃算法,并將其應用到游戲中的AI角色控制中。
感知和決策:- 學習如何設計AI角色的感知系統,包括視覺、聽覺、觸覺等感知方式。
- 實現基于感知的決策邏輯,使AI角色能夠根據環境和目標來做出合適的行為選擇。
機器學習:- 探索使用機器學習技術來訓練智能角色,如神經網絡、遺傳算法等。
- 學習如何使用Unity的ML-Agents工具包來實現基于機器學習的游戲AI。
優化和調試:- 對AI邏輯進行優化,以提高游戲性能和角色行為的質量。
- 使用調試工具和日志系統來識別和解決AI相關的問題,確保游戲的穩定性和可玩性。
無論是網絡游戲開發還是AI編程,都需要不斷的學習和實踐,掌握相關的技術和工具,才能夠創建出優秀的游戲作品。同時,參與社區和交流活動也是提升技能的重要途徑。
學習的優勢和適合人群
學習C#速成指南對于從入門到進階的人群都是有益的。以下是實戰WPF(Windows Presentation Foundation)和Unity3D開發的優勢以及適合的人群:
實戰WPF開發的優勢:
- 強大的圖形用戶界面(GUI):WPF提供了豐富的UI控件和布局選項,可以創建吸引人的用戶界面。
- 數據綁定和MVVM架構:WPF支持強大的數據綁定功能,結合MVVM(Model-View-ViewModel)架構,使開發人員能夠輕松地實現數據與UI的分離和管理。
- 可擴展性和定制性:WPF提供了豐富的擴展和定制選項,可以通過自定義控件、樣式和模板等方式實現個性化的應用程序。
- 直觀的設計工具:Visual Studio等集成開發環境提供了直觀的設計工具和設計器,使開發人員能夠快速創建和調整UI界面。
- Windows平臺原生支持:作為Windows平臺的一部分,WPF應用程序能夠充分利用Windows操作系統的功能和特性,提供更加穩定和高效的用戶體驗。
適合WPF開發的人群:
- 初學者:對于剛開始學習GUI開發和C#編程的人來說,WPF是一個很好的選擇,因為它提供了直觀的界面和豐富的文檔資源。
- 桌面應用程序開發者:如果你希望開發功能豐富、交互性強的桌面應用程序,那么WPF是一個非常合適的工具。
- UI/UX設計師:WPF提供了強大的設計工具和可定制性,對于專注于用戶界面設計和用戶體驗的設計師來說,學習WPF是非常有益的。
實戰Unity3D開發的優勢:
- 跨平臺支持:Unity3D支持多個平臺,包括PC、移動設備、主機等,使開發人員能夠輕松地將游戲發布到不同的平臺上。
- 豐富的資源庫:Unity Asset Store提供了大量的資源包、插件和工具,可以加速游戲開發過程,降低開發成本。
- 可視化編輯器:Unity提供了直觀的可視化編輯器,使開發人員能夠快速創建場景、調整游戲對象屬性和配置游戲邏輯。
- 社區和生態系統:Unity擁有龐大的開發者社區和生態系統,提供了豐富的文檔、教程和支持資源,方便開發者學習和交流。
- 3D渲染引擎:Unity內置了強大的3D渲染引擎,支持高質量的圖形效果和物理模擬,使開發人員能夠創建出令人印象深刻的游戲作品。
適合Unity3D開發的人群:
- 游戲開發者:如果你對游戲開發有興趣,那么學習Unity3D是一個很好的選擇,它可以幫助你快速入門并制作出高質量的游戲作品。
- 3D藝術家:Unity提供了強大的3D渲染引擎和工具,對于喜歡創作和設計3D場景、角色和動畫的藝術家來說,學習Unity是非常有益的。
- 教育者和學生:Unity已經成為許多學校和教育機構的首選教學工具,學習Unity有助于學生掌握游戲開發和計算機圖形學等技能。
總的來說,學習C#語言以及實戰WPF和Unity3D開發都是非常有價值的,它們都有著廣泛的應用領域和強大的社區支持,能夠為開發人員提供豐富的學習資源和職業發展機會。
2014年下半年的神經貓游戲開始,H5已經成為互聯網營銷傳播手段最主要的內容,即使是可口可樂、杜蕾斯、寶馬等等,談及品牌傳播總少不了它。
H5是什么?
H5指的是第5代的Html。Html是“超文本標記語言”的英文縮寫(其實就是上網看到的網頁),誕生于1993年,“超文本”指頁面包含圖片、鏈接、音樂等元素,瀏覽器通過解碼HTML,就開業把網頁內容展示出來,它構成了互聯網興起的基礎。
說人話的話,H5就是升級到第五代的網頁(好比是升級到第五代的iPhone5)。
Html5富含文字、圖片、音樂、視頻、鏈接等多種形式,多媒體形式展現更豐富多元,而且H5能兼容PC端與移動端、Windows、Android與iOS等多種平臺,跨平臺展示效果良好。所以我們才能看到制作精良的H5推廣頁面。
如何速成Html5高手呢?
小編在這提供兩種途徑:
途徑一:有代碼基礎的同學可以繼續擼代碼,一口氣學完HTML5、CSS3、JavaScript三個語言,從此開發不求人。
這種情況下建議題主在網上學習+課本學習同步進行:
網上學習墻裂推薦網易云課堂上浙大的翁愷老師的計算機課程。
其一,翁愷老師本身就是高校里面的人氣教師,別看老師照片兇悍,講起課來可是溫柔又明晰,很適合初學者入門。
其二,翁愷老師在網上授課已經有蠻多經驗了,也不會出現什么講課中途遮住了PPT,代碼看不清等等詭異的問題。
其三,網易云課堂產品穩定,三門課程都已經整理完畢,方便學習,而且這些課程完全免費,每門課都有幾萬人在學,可以感受到戰友的力量~
HTML5入門:http://study.163.com/course/introduction/171001.htm#/courseDetail
CSS3:http://study.163.com/course/introduction/190001.htm#/courseDetail
JavaScript:http://study.163.com/course/introduction/195001.htm#/courseDetail
建議配套食用的教程在下面喲↓↓↓
《Head first HTML&CSS》:入門級必備,難度合適
《JavaScript DOM編程藝術》:同樣入門級教材
《HTML5權威指南》:內容全面,進階階段可看
《JavaScript高級程序設計》:JS圣經,殿堂級教材
途徑二:如果只需要能制作出簡單的H5頁面,就可以繞過代碼這關,善用各類H5制作平臺
在這里也推薦幾個比較好用的吧~
Maka:http://www.maka.im/home/index.html
印象中是最早開始做H5頁面的平臺之一,目前只有web端沒有移動端,但網頁上各類模板齊全,動態效果和交互也做得不錯,只要自己填充內容就好,簡單易上手。
初頁:http://chuye.cloud7.com.cn/
和maka不同,專門做移動端的,也有一些預設的模板,支持添加文字、圖片、音樂等,方便在手機上直接制作,勝在速度。
秀制作:http://xiumi.us/studio/booklet#/for/new
來自微信公眾號排版常用的工具秀米出品,可以和秀米配合使用,目前也只有web端。
Epub360意派:http://www.epub360.com/
模板不多,但自由度較高,適合有設計感的設計師來操刀制作,發揮交互功能,不過只能免費制作10個,而且作品還自帶logo,有ipad版和web版。
當然,光有技術還不行,H5的內容制作和用戶體驗也不能忽視。“重形式輕內容”,這是目前很多市場推廣工作從業者常常犯的錯誤,所以也需要經常關注社會熱點、新聞事件,挖掘可能的傳播點,才能通過H5真正為品牌帶來知名度。
今天的內容就到這里喲╰( ̄ω ̄o)