整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

「转载」Spring4集成Swagger:真的只需要

「转载」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/"/>

  • 1
  • 2
  • 第四步:在方法和参数上添加注解

方法上:

@ApiOperation(value="教程", httpMethod="POST", notes="教程")

放在入参中:

@ApiParam(required=true, name="test", value="教程入参")

  • 1
  • 2
  • 3
  • 4

担心有些朋友还不太明白,放张图吧!

- 第五步:启动服务,然后在浏览器输入:

http://ip:port/swagger-ui.html

  • 1

出现下面的画面就代表大功告成:

注意事项:如果你的项目中使用了拦截器,请将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#:

  1. 安装和设置开发环境
  • 下载并安装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开发的一些进阶主题和技巧:

    1. 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开发需要深入理解引擎的核心功能和高级技术。以下是一些进阶主题和技巧:

    1. 性能优化
    • 深入了解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网络游戏开发:

    1. 选择网络框架
    • Unity提供了多种网络框架,如UNET(Unity Networking)、Mirror等,选择适合项目需求的框架。
    • 还可以考虑使用第三方库,比如Photon Unity Networking(PUN)、Socket.IO等。
  • 客户端和服务器
    • 确定游戏的架构,包括客户端和服务器之间的通信方式和数据同步策略。
    • 学习如何处理客户端预测、服务器校验等技术,确保游戏的同步性和稳定性。
  • 网络同步
    • 学习如何同步玩家输入、游戏状态和物体位置等重要数据,以确保所有玩家在游戏中看到的是一致的状态。
    • 探索插值、平滑处理等技术,以提升游戏的视觉表现和网络性能。
  • 安全和反作弊
    • 实施安全措施,防止作弊行为如外挂、修改数据等。
    • 使用加密技术、服务器端验证等方式来确保游戏的公平性和安全性。
  • 服务器架设
    • 学习如何在云端或本地架设游戏服务器,以支持多人游戏的运行和管理。
    • 探索服务器端的性能优化、负载均衡等技术,确保服务器的稳定性和可扩展性。

    Unity3D AI 编程:

    1. 决策树和行为树
    • 学习如何使用行为树(Behavior Trees)等技术来设计智能角色的行为逻辑。
    • 探索状态、条件、动作等节点的组合,以实现复杂的角色决策和行为控制。
  • 路径规划
    • 学习如何使用导航网格(NavMesh)和寻路算法来实现角色的路径规划和导航。
    • 探索A*算法、Dijkstra算法等路径规划算法,并将其应用到游戏中的AI角色控制中。
  • 感知和决策
    • 学习如何设计AI角色的感知系统,包括视觉、听觉、触觉等感知方式。
    • 实现基于感知的决策逻辑,使AI角色能够根据环境和目标来做出合适的行为选择。
  • 机器学习
    • 探索使用机器学习技术来训练智能角色,如神经网络、遗传算法等。
    • 学习如何使用Unity的ML-Agents工具包来实现基于机器学习的游戏AI。
  • 优化和调试
    • 对AI逻辑进行优化,以提高游戏性能和角色行为的质量。
    • 使用调试工具和日志系统来识别和解决AI相关的问题,确保游戏的稳定性和可玩性。

    无论是网络游戏开发还是AI编程,都需要不断的学习和实践,掌握相关的技术和工具,才能够创建出优秀的游戏作品。同时,参与社区和交流活动也是提升技能的重要途径。

    学习的优势和适合人群

    学习C#速成指南对于从入门到进阶的人群都是有益的。以下是实战WPF(Windows Presentation Foundation)和Unity3D开发的优势以及适合的人群:

    实战WPF开发的优势:

    1. 强大的图形用户界面(GUI):WPF提供了丰富的UI控件和布局选项,可以创建吸引人的用户界面。
    2. 数据绑定和MVVM架构:WPF支持强大的数据绑定功能,结合MVVM(Model-View-ViewModel)架构,使开发人员能够轻松地实现数据与UI的分离和管理。
    3. 可扩展性和定制性:WPF提供了丰富的扩展和定制选项,可以通过自定义控件、样式和模板等方式实现个性化的应用程序。
    4. 直观的设计工具:Visual Studio等集成开发环境提供了直观的设计工具和设计器,使开发人员能够快速创建和调整UI界面。
    5. Windows平台原生支持:作为Windows平台的一部分,WPF应用程序能够充分利用Windows操作系统的功能和特性,提供更加稳定和高效的用户体验。

    适合WPF开发的人群:

    1. 初学者:对于刚开始学习GUI开发和C#编程的人来说,WPF是一个很好的选择,因为它提供了直观的界面和丰富的文档资源。
    2. 桌面应用程序开发者:如果你希望开发功能丰富、交互性强的桌面应用程序,那么WPF是一个非常合适的工具。
    3. UI/UX设计师:WPF提供了强大的设计工具和可定制性,对于专注于用户界面设计和用户体验的设计师来说,学习WPF是非常有益的。

    实战Unity3D开发的优势:

    1. 跨平台支持:Unity3D支持多个平台,包括PC、移动设备、主机等,使开发人员能够轻松地将游戏发布到不同的平台上。
    2. 丰富的资源库:Unity Asset Store提供了大量的资源包、插件和工具,可以加速游戏开发过程,降低开发成本。
    3. 可视化编辑器:Unity提供了直观的可视化编辑器,使开发人员能够快速创建场景、调整游戏对象属性和配置游戏逻辑。
    4. 社区和生态系统:Unity拥有庞大的开发者社区和生态系统,提供了丰富的文档、教程和支持资源,方便开发者学习和交流。
    5. 3D渲染引擎:Unity内置了强大的3D渲染引擎,支持高质量的图形效果和物理模拟,使开发人员能够创建出令人印象深刻的游戏作品。

    适合Unity3D开发的人群:

    1. 游戏开发者:如果你对游戏开发有兴趣,那么学习Unity3D是一个很好的选择,它可以帮助你快速入门并制作出高质量的游戏作品。
    2. 3D艺术家:Unity提供了强大的3D渲染引擎和工具,对于喜欢创作和设计3D场景、角色和动画的艺术家来说,学习Unity是非常有益的。
    3. 教育者和学生: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)