2019

随着互联网时代的不断发展,开发者可能会面临这样的困境:为了解决问题、提升开发效率而竭力研发出来的“创新”,似乎削弱了他们在公司的重要程度,甚至取代了他们原先的地位。比如,在云原生时代,部分企业更愿意选择 K8s 来解决运维、弹性的问题,而不是组建一支需要耗费大量雇佣资金、管理资金的研发团队。 对于 K8s,它的价值在于不仅能帮助公司降低运维成本,同时还可以带来弹性、敏捷、可移植能力,但是对于开发者而言,我们的价值不应该仅仅停留在能与 K8s 解决同样的问题,而是从困境跳脱出来,思考如何更灵活、更高效地运用 K8s 这些 “能为你所用” 的东西,来提升自己的综合技能。 涉及开发的技术人员,永远绕不开的就是将应用部署到相应服务器上,今天给大家讲解,对于容器服务 K8s,怎么实现真正“一键部署“,提高开发部署效率,在 K8s 的运用上做到快人一步。以下是本文提纲: 什么是容器服务 K8s...

前几日,我们对比了一波腾讯云与京东云的优惠活动: 硝烟四起的云服务双十一促销大战,谁更便宜? 总结下来就是,配合京东的送金豆活动之后,京东云的价格更加便宜,同时可选配置也更多一些。 今日凌晨0点,阿里云也终于放出了双十一预热活动的推广。价格也是非常惊人的优惠! 一起来看看吧: 如果您对上述云服务有需求,那么点击链接一起来拼团吧!!!!

尽管,我们之前分享了这么多关于面试的主题: 高薪必备的一些Spring Boot高级面试题 面试必问:设计模式遵循的面向对象设计原则! 面试必问:怎么保证缓存与数据库的双写一致性? 27道高频Spring面试题,你能答对几个? 唠唠面试常问的:面向对象六大原则 一文高效图解二叉树面试题 Java面试中最高频的那20%知识点是什么? 百度面试题:求数组最大值 … 然而,最后这个90%可见的最后一问可能直接让你功亏一篑。这么厉害的最后一问:”你有什么问题想问我吗?“ 看似平淡无奇的问题,但是却蕴含着多方面的含义。这个问题表面上给了你更多了解公司和展现个人优势的机会,但是潜台词,也是考察你对公司的了解以及对想在这里工作的意愿,对岗位是否有自己的理解。这也是我们常常是说的,你的个人价值观是否与公司价值观一致的考察,价值观的一致是直接决定日后工作主动性以及对工作责任心的直接影响因素。 那么...

前几日,给大家推荐了腾讯云的双十一预热活动(探子报!双十一紧急军情!),可以说史无前例的低价。然而,当你以为这是云服务的最低底线的时候,又杀出一个程咬金:京东云。也许京东云用的人不多,这次活动也没有非常大力度的打广告,所以对于京东云的促销活动很少有人知道。我们也是昨天才偶然发现了这个更为牛x的优惠活动。到底有多优惠呢?我们就拿之前以为目前性价比最高的活动:腾讯云双十一促销活动价格来做一次横评。 这里我们以需求量最大的虚拟机做一次深入对比 腾讯云根据个人与企业共推出了一共5个不同的优惠机型: 【个人】1核2G内存1M带宽:88元 / 1年【个人】2核4G内存5M带宽:998元 / 3年【企业】2核4G内存3M带宽:668元 / 3年【企业】2核8G内存5M带宽:1288元 / 3年【企业】4核8G内存5M带宽:2888元 / 3年 京东云的活动没有区分个人与企业,直接推出了6款优惠机型...

之前 Spring Boot 2.2没能按时发布,是由于 Spring Framework 5.2 的发布受阻而推迟。这次随着 Spring Framework 5.2.0 成功发布之后,Spring Boot 2.2 也紧跟其后,发布了第一个版本:2.2.0。下面就来一起来看看这个版本都更新了些什么值得我们关注的内容。 组件版本更新这些Spring框架组件更新了依赖版本: Spring AMQP 2.2 Spring Batch 4.2 Spring Data Moore Spring Framework 5.2 Spring HATEOAS 1.0 Spring Integration 5.2 Spring Kafka 2.3 Spring Security 5.2 Spring Session Corn 框架中涉及的第三方包也更新了依赖版本: Elasticsearch ...

前言通过之前的两篇关于Swagger入门以及具体使用细节的介绍之后,我们已经能够轻松地为Spring MVC的Web项目自动构建出API文档了。如果您还不熟悉这块,可以先阅读: Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档 Spring Boot 2.x基础教程:Swagger接口分类与各元素排序问题详解 在这两篇文章中,我们构建的文档必须通过在项目中整合swagger-ui、或使用单独部署的swagger-ui和/v2/api-docs返回的配置信息才能展现出您所构建的API文档。而有些时候,我们可能只需要提供静态文档给其他对接方的时候,我们要如何快速轻便的产生静态API文档呢? 接下来我们就来学习一个解决该问题的工具:Swagger2Markup。 Swagger2Markup简介Swagger2Markup是Github上的一个开源项目。...

之前通过Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档一文,我们学习了如何使用Swagger为Spring Boot项目自动生成API文档,有不少用户留言问了关于文档内容的组织以及排序问题。所以,就特别开一篇详细说说Swagger中文档内容如何来组织以及其中各个元素如何控制前后顺序的具体配置方法。 接口的分组我们在Spring Boot中定义各个接口是以Controller作为第一级维度来进行组织的,Controller与具体接口之间的关系是一对多的关系。我们可以将同属一个模块的接口定义在一个Controller里。默认情况下,Swagger是以Controller为单位,对接口进行分组管理的。这个分组的元素在Swagger中称为Tag,但是这里的Tag与接口的关系并不是一对多的,它支持更丰富的多对多关系。 默认分组首先,我们通过一个简单的例子,来看...

请求参数的校验是很多新手开发非常容易犯错,或存在较多改进点的常见场景。比较常见的问题主要表现在以下几个方面: 仅依靠前端框架解决参数校验,缺失服务端的校验。这种情况常见于需要同时开发前后端的时候,虽然程序的正常使用不会有问题,但是开发者忽略了非正常操作。比如绕过前端程序,直接模拟客户端请求,这时候就会突然在前端预设的各种限制,直击各种数据访问接口,使得我们的系统存在安全隐患。 大量地使用if/else语句嵌套实现,校验逻辑晦涩难通,不利于长期维护。 所以,针对上面的问题,建议服务端开发在实现接口的时候,对于请求参数必须要有服务端校验以保障数据安全与稳定的系统运行。同时,对于参数的校验实现需要足够优雅,要满足逻辑易读、易维护的基本特点。 接下来,我们就在本篇教程中详细说说,如何优雅地实现Spring Boot服务端的请求参数校验。 JSR-303在开始动手实践之前,我们先了解一下接...

“开源(Open Source)”,这个在程序员界耳熟能详的词,几乎充斥着我们的整个职业生涯。相信没有一个程序员不知道啥是“开源”,相信没有一个程序员从来没用过“开源”产品。回顾一下,我们所熟知的一些伟大开源项目几乎都出自国外的程序大师或组织。然而,这几年国人也贡献了不少优秀的开源项目与产品,甚至有一些也收到国外同行的认可与赞许。下面我们就在一起盘点下,那些产自中国,走向世界的伟大开源项目吧! Kylin Kylin™是第一个成为Apache顶级开源项目的中国作品。它是一个分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,能够处理TB乃至PB级别的分析任务。它能在亚秒内查询巨大的Hive表,并支持高并发。 Kylin的核心思想是预计算(以空间换时间),即对多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube,供查询时直接访问。...

随着前后端分离架构和微服务架构的流行,我们使用Spring Boot来构建RESTful API项目的场景越来越多。通常我们的一个RESTful API就有可能要服务于多个不同的开发人员或开发团队:IOS开发、Android开发、Web开发甚至其他的后端服务等。为了减少与其他团队平时开发期间的频繁沟通成本,传统做法就是创建一份RESTful API文档来记录所有接口细节,然而这样的做法有以下几个问题: 由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等),高质量地创建这份文档本身就是件非常吃力的事,下游的抱怨声不绝于耳。 随着时间推移,不断修改接口实现的时候都必须同步修改接口文档,而文档与代码又处于两个不同的媒介,除非有严格的管理机制,不然很容易导致不一致现象。 为了解决上面这样的问题,本文将介绍RESTful API的重磅好伙伴Sw...

首先,回顾并详细说明一下在快速入门中使用的@Controller、@RestController、@RequestMapping注解。如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下快速入门的内容。 @Controller:修饰class,用来创建处理http请求的对象 @RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式 @RequestMapping:配置url映射。现在更多的也会直接用以Http Method直接关联的映射注解来定义,比如:GetMapping、PostMapping、DeleteMapping、PutMappin...

记录一个昨天碰到的问题以及解决方法,希望对碰到一样问题的你有用! 昨天升级了一下Mac OS,重启后再打开IntelliJ,突然Git就不能用了,报了下面这样的错: 开始以为是不是Git出了问题,打开终端试了一下git命令,是一切正常的,排除git客户端的损坏。 再仔细看错误原因,推测可能是路径配置问题,打开IntelliJ的菜单:Preferences...。 在左侧搜索框中直接搜索git或者直接找到Version Control菜单项,点击下属的Git功能项,此时可以看到当前的Git命令路径配置如下图: 问题就出在这里,将该路径修改为: /usr/local/bin/git 点击右侧的Test按钮,测试一下,可以看到如下图所示的结果: 完成之后,记得点击Apply和Ok按钮,然后关闭设置窗口之后,Git就可以正常使用了!

好消息!好消息! 经过1周的数据验证 + 邀请用户测试。OpenWrite(官网: https://openwrite.cn )正式推出一款超级实用的增长小工具:ReadMore! 该工具旨在帮助拥有个人博客的用户,快速的讲博客流量利用起来,为微信公众号实现粉丝增长。 截止到现在,仅仅2周不到的时候,OpenWrite (官网: https://openwrite.cn )出品的ReadMore小工具已经整合了30+不同技术平台的个人博客,帮助增长粉丝超过10000+。 如果你也有自己的独立博客,也在运营公众号,但是不知道如何优雅的引导用户关注公众号? 那你一定要试试ReadMore的神奇作用~~~ ReadMore的效果整合后的博客文章内容将自动隐藏一半,同时显示“阅读全文”按钮(重点:虽然隐藏,但只是视觉上的,并不影响SEO): 点击“阅读全文”按钮,自动弹出引导关注公众号的话...

在过去很长一段时间里,由于大量网络抄袭现象的出现,不断打击着很多如我们一样的笔耕者们。因为维权成本之高,大部分人都选择了默默承受,久而久之,很多人也因为这样的无奈,开始陆续放弃这项原本非常好的业余爱好。 如今,知识付费的趋势越来越被读者类用户所接受,各大内容平台也开始越来越重视内容创作者的使用体验,对于内容的审核也变得非常严格。所以,越来越多的内容创作者们也开始重新加入了写作分享的行列。 但是,上有政策下有对策,那些擅长运营的操盘手们依然找到了很多漏洞来窃取原创作者们的内容来给自己增加流量,比如:扩平台的内容搬运。对此,最简单的预防就是作者要将每篇文章扩散到各个有读者的平台,由于平台对内容的严格审核会拦截到这些运营者的发布内容,从而起到对原创者品牌的维护。但是,对于大部分刚起步的创作者来说,多平台的扩散其实是一件非常耗费时间的工作。这样的机械性操作,将会挤压大量创作者的业余时间,而影...

很早以前,在刚开始搞Spring Cloud基础教程的时候,写过这样一篇文章:《微服务架构的基础框架选择:Spring Cloud还是Dubbo?》,可能不少读者也都看过。之后也就一直有关于这两个框架怎么选的问题出来,其实文中我有明确的提过,Spring Cloud与Dubbo的比较本身是不公平的,主要前者是一套较为完整的架构方案,而Dubbo只是服务治理与RPC实现方案。 由于Dubbo在国内有着非常大的用户群体,但是其周边设施与组件相对来说并不那么完善。很多开发者用户又很希望享受Spring Cloud的生态,因此也会有一些Spring Cloud与Dubbo一起使用的案例与方法出现,但是一直以来大部分Spring Cloud整合Dubbo的使用方案都比较别扭。这主要是由于Dubbod的注册中心采用了ZooKeeper,而开始时Spring Cloud体系中的注册中心并不支持Zo...