微服务下 Spring Boot Maven 工程依赖关系管理
单体SpringBootMaven工程最基本的pom.xml包含工程信息、SpringBoot父工程、属性配置、依赖包、构建插件<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/PO
教你在SpringBoot项目中优雅的使用 Mybatis
由于项目中使用mybatis比较多,并且mybatis这种半orm形式的持久层框简单又不失可控性,所以这一章简单讲一下springboot与mybatis的集成。mybatis-spring-boot-starter官方说明:MyBatisSpring-Boot-Starterwillhelpyou
Springboot与Elasticsearch完美结合
前言在前面一篇已经写了elasticsearch的环境的搭建,那么这一篇就写下springboot与elasticsearch环境的整合。如果没有搭建环境,请参考:SpringBoot整合Elasticsearch项目生成1像之前一样,访问start.spring.io,选择对应组件完成,如下图2生
彻底解决Spring mvc中时间类型的转换和序列化问题
痛点在使用Springmvc进行开发时我们经常遇到前端传来的某种格式的时间字符串无法用java8时间包下的具体类型参数来直接接收。同时还有一系列的序列化、反序列化问题,在返回前端带时间类型的同样会出现一些格式化的问题。今天我们来彻底解决他们。建议其实最科学的建议统一使用时间戳来代表时间。这个是最完美
一起了解下Java多线程基础
多线程核心:可见性和原子性(工作内存与主内存)如下图:所有的共享变量存在于主内存,每个线程独有自己的共享内存副本即工作内存。volatile与syncronzidcom.prometheus.multiThread.day07VOLATILE:使变量在多个线程间可见,没有原子性,通过加入内存屏障和禁
十分钟搞定在win10下安装docker
前言docker可不是什么新技术了,至今已经6年多了。现在甚至在面试中会这个是加分项。如果你目前从事开发多年,不管是前端还是后端,不管是哪一种编程语言。你真该玩一玩Docker了。不然就OUT了。而且日常开发中搭建个中间件环境非常快。简介太古板的概念不说了。简单来说,docker就是把你得应用以及应
SpringBoot 中 mongo多数据源配置新姿势
SpringBoot对常用的数据库支持外,对NoSQL数据库也进行了封装自动化。这一篇主要讲springboot与mongo多数据源相关的配置1、mongo的介绍MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库
运维监控指标可视化利器-Grafana
1.概述grafana是一款采用go语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。最好的参考资料就是官网(http://docs.grafana.org/),虽然是英文,但是看多了就会啦。1.1基本概念G
Spring 官方出品应用监控度量指标门面类库Micrometer介绍
01前言上篇文章SpringBoot2.x中的Actuator我们提到了在SpringBootActuator中的metirc指标。在SpringBoot2.x中官方引入了新的监控门面(facade)类库Micrometer。如果你对门面不是很清楚,你应该听说过SLF4J库,它可以对log4j2,l
Spring Boot 2.x 中的 Actuator
1前言SpringBoot提供了很多开箱即用的starter,其中有一款非常特别的starter——actuator。它是用来对SpringBoot应用进行监控、指标采集、管理,并提供一些很有用的端点(endpoint)来实现上述功能。这有助于我们对SpringBoot应用进行监视和管理。我们本文将
下一代应用监控指标采集器Prometheus核心介绍
1Prometheus简介Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包。自2012年成立以来,许多公司和组织都采用Prometheus,该项目拥有一个非常活跃的开发人员和用户社区。它现在是一个独立的开源项目。Prometheus于2016年加入谷歌主导的顶级开
编码质量之道
虽然我们可以借助与代码静态检测工具或者一些开发规约来约束开发者,使其编码趋于规范。但是很多开发者仍然不能写出高质量的代码。如何才能写出高质量的代码?我想这是很多开发者关心的问题。所以我总结了七个问题,我们作为开发人员每次代码commit时应该问自己是否做到了。Q这是对的吗?A代码实现了需求,达到了期
java随机数中的陷阱
1前言随机数我们应该不陌生,业务中我们用它来生成验证码,或者对重复性要求不高的id,甚至我们还用它在年会上搞抽奖。今天我们来探讨一下这个东西。如果使用不当会引发一系列问题。2java中的随机数我们需要在Java中随机生成一个数字。java开发中我们通常使用java.util.Random来搞,它提供
mysql如何进行累加计算
01前言接了一个需求,产品想分析一下用户增长的曲线。也就是某个时间段的每日总人数列表。好对近期活动进行一个效果的评测。这个统计sql还是花了我一小段时间的。mysql统计这个还是需要一定的技巧的。02需求分析user_idreg_time12019-09-0322019-09-0432019-09-
java必学核心知识总结——注解
前言前几年我们的项目还在structs2上跑,有一次问一个同事是否知道SpringBoot,同事说那不是用注解来开发的吗。虽然这个答案并不完全对,但是从客观上SpringBoot对刚刚接触它的人来说最醒目的就是注解了。那么今天我们来了解一下Java语言的核心功能——注解。注解是什么public@in
简述设计模式原则
1、为什么需要设计模式其实没有设计模式我们也能完成开发工作。但是为什么需要设计模式呢?让你看起来很牛,没错这个算一个。让你的代码层次感分明,可读性强而且容易维护。让你像我一样有更多的摸鱼划水时间。可能有人说我一个类或者方法就干完的东西,你搞了七八个。当然使用设计模式也是要斟酌的。一些简单稳定的业务也
缓存抽象层Spring cache实战操作
1.前言Spring从3.1开始定义了一系列抽象接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们进行缓存开发。SpringCache只负责维护抽象层,具体的实现由你的技术选型来决定。将缓存处理和缓存技术解除耦合。2.主要依赖Springcache抽象由spring-co
java枚举原来还能这么用
前言相信不少java开发者写过状态变更的业务,比如订单流程、请假流程等等。一般会搞一个状态标识来标识生命周期的某个阶段。很多人会写这种逻辑:如果流程几十个岂不是要if到爆炸。还有这“0”、“1”是几个意思?优化的办法当然可以使用设计模式中的状态模式来搞,允许一个具有状态的对象根据其状态封装同一对象的
浅谈java响应式编程以及Reactor 3框架(内有福利)
前言Reactor3是一个围绕ReactiveStreams规范构建的库,它在JVM上引入了响应式编程的一个范例。目前Spring5引入的Webflux就是reactor3实现的一个响应式web框架。SpringCloudGateway是Webflux的一个网关场景实践。想学好上面这两项技术必须搞明
学好java的四条经验总结
前提概要经常有人问如何才能学好java,或者自己在工作中遇到了的瓶颈。这里我简单说一下我的经验,分享给大家,或许对你有一定的帮助。01成体系你学习的知识和应用场景一定要形成体系。没有体系你业务跟技术联系就变得松散。比如用到模版你就能联想到freemarker、velocity等。把常用技术按照业务场