java服务端推送消息有那么难吗?
场景今天项目经理交给我一个开发任务。如果有人在前台下了订单就给后台仓库管理一个发货通知。也就是服务端触发一个事件,推送消息到客户端。如果我用websocket来做还要搞个websocket服务器,而且还有不少配置。websocket是全双工通信,单向通信简直是杀鸡用牛刀。用轮询吧,浪费服务器资源不说
全网首发Spring Cloud Gateway 添加统一前缀功能
1.前言今天学习一下SpringCloudGateway,就先再其他博客上逛了逛。遇到有java开发者在某博客问一个问题:SpringCloudGateway如何添加统一的前缀?当时没有在意,但是脑子里也带着这个问题看起了文档。随着慢慢了解SpringCloudGateway这个问题就有了一点思路。
Spring Cloud 使用 Nacos 进行服务注册发现
1.前言上一篇我们实现了SpringCloud从nacosserver远端拉取并加载配置。今天我将给大家介绍nacos的另一个重要功能服务注册与发现。服务注册与发现功能在微服务中服务治理的基础。本篇将对nacos的服务治理进行介绍和一些入门使用。2.nacos服务注册与发现Nacos支持基于DNS和
spring cloud使用nacos作为配置中心
1.前言前几日SpringCloudAlibaba正式转正了。而且发布了转正后的一个正式版本。今天我们就试一试nacos的功能之一:配置中心。结合最新版本的SpringCloud来试一试手感。这里假设你已经安装了nacosserver。如果不会也没有关系可以看我的往期文章,有如何快速搭建一个naco
快速理解Spring中的FactoryBean接口
1.前提概要很多java开发者在使用Spring框架中都见过后缀为FactoryBean的类,比如Mybatis-Spring中的SqlSessionFactoryBean。说到这里就不得不提BeanFactory。FactoryBean和BeanFactory特别容易让人混淆,面试还经常问到这两种
微服务发现组件与配置管理组件NACOS环境快速体验
古惑仔不用脑,一辈子都是古惑仔。1.什么是Nacos官方介绍是这样的:Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的
轻量级嵌入式数据库H2的愉快玩耍之旅
1.前言前面讲一些Mybatis特性的时候总是要写一些例子演示给粉丝。用Mysql或者其他很大的数据库太重了,因为只是个demo而已。当然也可以使用docker来安装。但是还是需要依赖一些东西。有没有非常小巧而且便于携带的数据库,而且能满足很小场景的数据库。当然有。今天介绍一种纯java编写而且支持
玩转Mybatis中的类型转换器TypeHandler
1.场景日常java开发中经常有这种需求,用0或者1这些代码(不局限于数字)来表示某种状态。比如用0表示女性,用1来表示男性。而且写入数据库可能是一个标识,从数据库读取又还原为具体的说明。而且一般情况下为了更好理解或者消除魔法值,通常的处理方案是定义一个枚举,有些枚举是这样定义的:那么通常很多人会这
一文理清Mybatis中resultType与resultMap之间的关系和使用场景
1.概述MybatisORM半自动映射框架对java开发工程师来说应该是必会的框架之一。它的好处这里不是我们讨论的重点。令很多刚刚入行的java开发小伙伴迷茫的是resultType与resultMap的使用。今天来探讨一下这个问题。2.resultType与resultMap接下来我们就来讲一下M
老司机教你通过Spring来读取文件的各种姿势
1.概述在日常业务开发中我们经常有可能读取一些自定义配置或者文件。比如说公私钥文件、一些固定的词典文件之类的,这一类统称为资源(Resource)。很多情况下都是自己写IO来读取。今天开始你可以不用再自己造轮子了。因为Spring自带有资源加载功能,甚至还有非常便利的方法将读取的内容注入Spring
Java入门必看的Java 8 Stream API 使用指南
1.概述Java8引入的一个重要的特性无疑是StreamAPI。Stream翻译过来是“流”,突然想到的是大数据处理有个流式计算的概念,数据通过管道经过一个个处理器(Handler)进行筛选,聚合,而且流都具有向量性,强调的是对数据的计算处理,而集合强调的是数据集。Stream可以看做是一个可操作的
玩转spring mvc入参自定义类型转换和格式化
概述最近小胖哥搞了个小程序,有几个springmvc接口传递了时间,时间用java8time相关的api来直接接收:当使用根据ISO8601格式化的参数向任何这些方法发送POST请求时,报出了如下异常:这是因为默认情况下Spring不能将String参数转换为任何日期或时间对象。下面小胖哥就来带大家
Spring中的@Qualifier注解你会用吗
1.概述本文小胖哥将带你来了解一下Spring中的@Qualifier注解,它解决了哪些问题,以及如何使用它。我们还将了解它与@Primary注解的不同之处。2.痛点使用@Autowired注解是Spring依赖注入的绝好方法。但是有些场景下仅仅靠这个注解不足以让Spring知道到底要注入哪个bea
Spring MVC中的@RequestParam注解的使用指南
概述在这个快速教程中,我们将研究一下Spring的@RequestParam注解。简而言之,我们可以使用@RequestParam从请求中提取查询参数,表单参数甚至文件。我们将讨论如何使用@RequestParam及其属性。我们还将讨论@RequestParam和@PathVariable之间的区别
高级java开发必须掌握的Spring接口——SmartLifecycle
有些场景我们需要在Spring所有的bean完成初始化后紧接着执行一些任务或者启动需要的异步服务。常见有几种解决方案j2ee注解启动前@PostConstruct销毁前@PreDestroy基于j2ee规范springboot的org.springframework.boot.CommandLine
Java 8 Time Api 使用指南-珍藏限量版
1.概述Java8为Date和Time引入了新的API,以解决旧java.util.Date和java.util.Calendar的缺点。作为本文的一部分,让我们从现有Date和CalendarAPI存在的一些问题入手,来探讨新的Java8Date和TimeAPI如何解决这些问题。我们还将搞一搞Ja
java开发中DTO、VO、PO之间的转换你应该这么操作
痛点一种框架的出现都要解决个痛点,我想下面这这种不方便的操作经常有人写吧。假如Car类是数据库映射类CarDTO是DTO类通常我们会这么写一个方法进行转换甚至中间还牵涉了很多类型转换,嵌套之类的繁琐操作,而我们想要的只是建立它们之间的映射关系而已。有没有一种通用的映射工具来帮我们搞定这一切。当然有而
让你的代码更加简练,springboot使用JSR303校验
痛点相信不少人写过这样都代码,对方法入参进行了各种校验。上面还是比较少的校验。如果遇到什么邮箱、手机号更复杂,对格式也需要进行校验。可能洋洋洒洒几百行代码就过去了。这种代码其实跟业务流程没有太多关系,但是又不能不做。那么有没有一种方法可以避免呢。当然有!就是JSR-303(JSR是指向JCP(Jav
10分钟就能轻松入门消息中间件rabbitmq(附带教学源码)
rabbitmq简介rabbitmq是spring所在公司Pivotal自己的产品。因为跟spring有共同的血缘关系,所以spring全家桶对其的支持应该是相当完善的。本身基于AMQP高级队列协议的消息中间件,采用erlang开发,因此安装需要erlang环境。具体安装根据自己的环境。使用场景一、
精选github开源的重量级精品java教程,学会这个你敢说你精通java
作为一名java工程师,必须对自己的领域非常熟悉,有技术前瞻性,有不断学习的动力,才能在竞争剧烈的职场中立于不败之地,下面这几个项目无论你是入门级别,还是在职场奋斗了多年的老司机,都会有很大的提升。而且有的项目还非常有针对性。对扩展知识面和认知层次都有巨大的帮助。这些项目都是精选自github,st