
java
文章平均质量分 82
SoberChina
会扯淡的java程序员
展开
-
源码分析Spring @Configuration注解如何巧夺天空,偷梁换柱。
@Configuration 与@Component特别之处~原创 2023-03-11 09:00:00 · 488 阅读 · 0 评论 -
源码分析spring如何对@Component注解进行BeanDefinition注册的
spring 对BeanDefinition的解析以及注册,源码流程分析~原创 2023-03-10 21:15:00 · 544 阅读 · 0 评论 -
如何白嫖腾讯位置服务
前言现在很行业使用到了地图相关的服务,比如外卖行业、某滴、物流行业、还有一些导航软件。国内有很多做地图的厂商,地图厂商能从国家权威部门拿到或者买到的地图数据。在做路线规划、电子围栏、地址逆解析等等提供了很好地服务。例如:腾讯位置服务,高德、百度等等,这些厂商都有提供开发者服务,可以免费注册秘钥,当然我们也可以通过某些设计进行薅羊毛。使用腾讯位置服务,我们可以创建相关的秘钥,每个秘钥都有免费的额度。当然根据自己的业务需求量,可以针对的(免费)”白嫖“使用服务。创建秘钥地址最近看了几篇DDD敏捷开发原创 2021-01-27 12:36:22 · 2558 阅读 · 0 评论 -
浅谈 java8 Stream
java8 出来了很久了。新特性 Lambda 表达式 和 Stream 在编码时,写起来“神采飞扬”。一句真香万岁。当然会用当然是前提,我们不能仅仅只是会用而已。用的更“骚气”才是重点。首先,流是什么?流可以理解为集合类的迭代器,当然不是很明确。但可以这么理解,当然他们还有很多不同,可以参考官网文档。提供的API可以声明式的处理数据集合,组合Lambda表达式简洁的处理数据,类似于排序不需要临时写实现。 @Data @Builder public static class Perso原创 2020-05-25 18:31:33 · 310 阅读 · 0 评论 -
sky walking 监听程序的性能开源项目
apm (Application Performance Managment :应用性能管理)简写,业界有很多成熟的收费工具,听云、OneAPM等。当然也有开源的apm,git地址: https://github.com/wu-sheng/sky-walking。功能方面当然和收费的没法比,但是了解一下也挺不错的,skywalking采用elasticsearch数据存储。了解es以及看过sk...原创 2017-07-26 13:58:42 · 1120 阅读 · 0 评论 -
利用poi 导出excel通用工具类
poi excel导出通用工具| 这一行是废话 去年写的一个工具类,感觉还算通用,分享到博客,欢迎各位大神来吐槽;配合使用poi工具组件,利用java反射动态获对象数据。当然代码中只实现了普通的导出 如果想要美化excel导出数据,当然强大的poi组件是支持的。1. maven pom.xml 导入poi依赖 <!-- 2007--> ...原创 2019-03-01 16:17:50 · 1044 阅读 · 0 评论 -
利用poi 读取excel通用工具类
poi excel导出通用工具| 这一行是废话 根据上一篇利用poi 导出excel通用工具类去年写的一个工具类,同样根据业务需求重新封装了一个读excel 工具类,感觉还算通用,分享到博客,欢迎各位大神来吐槽;1. maven pom.xml 导入poi依赖 <!-- 2007--> <dependency> ...原创 2019-03-01 16:37:50 · 1265 阅读 · 0 评论 -
浅谈 @Condition注解以及配置开关是否注册bean
浅谈 @Condition注解以及配置开关是否注册bean@Condition 中文翻译为条件,看到源码中注释了解到它是从4.0开始加的特性。A condition is any state that can be determined programmatically before the bean definition is due to be registered (see {@li...原创 2019-06-13 17:08:09 · 1607 阅读 · 0 评论 -
延迟调用设计(RabbitMq实现)
Q1:为什么要有延迟调度任务?Q2:实现延迟调度任务方式有哪些?Q3:为什么要使用rabbitMq实现?为什么要用延迟调度任务? 这需要从业务场景来说起,最常见的有比如订单商品锁定,在订单未支付超过15分钟,商品解除锁定,订单状态变更为支付超时/取消。那么必要要有延迟通知的服务/线程来通知我们要解除锁定商品、变更订单的状态。那么我们就要使用延迟调度的服务去解决这种业务场景。...原创 2019-06-14 11:26:50 · 365 阅读 · 0 评论 -
如何配合RestTemplate优雅的记录请求以及返回的信息
现如今比较火的微服务架构,SpringCloud顺势成为了主流框架,当然SpringCloud并不是一个框架,而是一个框架的集合。不管是否为微服务,难免会有程序之间的调用,当然zipkin可以帮助收集时间数据,解决在微服务架构下的延迟问题,如何详细记录请求以及返回的信息变得比较重要。RestTemplate 对rest复杂请求封装简单的调用方法,默认JDK facilities。当然你也可以 通...原创 2019-07-09 17:48:46 · 3634 阅读 · 1 评论 -
docker容器 java 默认读取系统时区问题
基于alpine构建的java基础镜像时区问题alpine简介alpine 是一个面向安全的轻型的Linux发行版。大小只有几兆。当然知道这些对应本次话题没啥太大的帮助。想具体了解可以看一下 官网我们基于alpine基础镜像构建我们的docker image dockerfile配置如下:FROM openjdk:8-jdk-alpineCOPY /target/app-0.0.1...原创 2018-12-06 11:33:45 · 3776 阅读 · 0 评论 -
spring Boot 微服务监控(Spring boot admin )
随着 微服务 的流行,相比较以前一个大型应用程序搞定所有需求,我们现在更倾向于把大型应用程序切分成多个微服务,当然快速搭建微服务springBoot是个不错的选择,当然springBoot优势不仅仅在于快速开发,spring-boot-starter-actuator 它提供了监控接口,例如:/health、/info等等,实际上除了之前提到的信息,还有其他信息业需要监控:当前处于活跃状...原创 2017-06-02 16:48:04 · 1481 阅读 · 0 评论 -
java多线程实现mq消息处理超时监控
项目运用rabbitMq 实现的分布式架构,每台机器既是生成者也是消费者,改项目依赖于外部调度服务,mq的consumer listener引用其他组的jar包(实现对外部资源的调用),消息消费是单线程的,在此调用jar包操作业务或者是个人代码写的有问题,可能导致线程死锁,或者其他代码问题(http请求未设置超时),导致消息消费被卡住,最终消息堆积。导致正常业务垮掉。既然consumer没配...原创 2017-06-09 10:04:22 · 3616 阅读 · 0 评论 -
数据连接池默认配置带来的坑testOnBorrow=false,cloes_wait 终于解决了
首先说一下自己程序中遇到的问题,前一段新写了一个项目,主要为方便公司业务切库做准备,为其他项目提供接口(spring boot 项目<spring boot + mongo data jpa+mybatis>) 首先呢 多数据源没有使用spring boot 集成mybatis,开始有过自己搭建spring boot 都是单数据源的,所以没有自己手写加载数据源的代码(比较懒),在新项目...原创 2017-06-09 10:04:38 · 35777 阅读 · 5 评论 -
elasticsearch RestHighLevelClient Client 配置
/** * 描述: * * @author liweigao * @create 2018-05-15 上午9:30 */@Slf4j@Configuration@AutoConfigureAfter(ElasticSearchProperties.class)public class ElasticSearchConfig extends AbstractFactoryBea...原创 2018-05-15 13:33:49 · 5417 阅读 · 2 评论 -
浅谈序列化-Serialization
什么是java序列化?java序列化主要目的是将对象写入流中,便于通过网络传输该对象,当然还可以重建该对象。java序列化的API提供了可以重新生成完全相同的对象的功能,对于网络上java序列化被用来保存状态与数据库同义,这是个不明确的。如何序列化?如果要序列化对象需要在相应的类实现可序列化的标记,不想被序列化的对象属性可以使用transient关键字修饰。 实现 jav...原创 2018-07-19 17:26:51 · 324 阅读 · 1 评论 -
浅谈浅拷贝和深拷贝
在java中拷贝是生成一个对象的副本,在工具类中提供了很多拷贝方法,需要知道他的底层原理,可能因为不知道原理,酿成大错。 浅拷贝Object提供了native clone()方法,为浅拷贝。他返回Object 类型需要显示的进行对象转换。仔细看该方法是protected。子类无法直接调用,需要重写该方法,实现业务,也可以直接调用super.clone(),并且该类需要实现Cloneable...原创 2018-07-25 18:21:25 · 255 阅读 · 0 评论 -
sky walking 监听程序的性能开源项目
apm (Application Performance Managment :应用性能管理)简写,业界有很多成熟的收费工具,听云、OneAPM等。当然也有开源的apm,git地址: https://github.com/wu-sheng/sky-walking。功能方面当然和收费的没法比,但是了解一下也挺不错的,skywalking采用elasticsearch数据存储。了解es以及看过skyw...原创 2018-02-12 10:45:08 · 14633 阅读 · 4 评论 -
spring Boot 微服务监控(Spring boot admin )
随着 微服务 的流行,相比较以前一个大型应用程序搞定所有需求,我们现在更倾向于把大型应用程序切分成多个微服务,当然快速搭建微服务springBoot是个不错的选择,当然springBoot优势不仅仅在于快速开发,spring-boot-starter-actuator 它提供了监控接口,例如:/health、/info等等,实际上除了之前提到的信息,还有其他信息业需要监控:当前处于活跃状态的...原创 2017-06-09 10:04:31 · 10778 阅读 · 3 评论 -
Idea 类builder模式插件安装方法
builder 模式的代码 手写的话不是不可能,字段多了 就恶心了,下面就会看到,长话短说,IEDA 安装 builder 插件 首先Idea 快捷键Ctrl +alt+s 打开preference 找Plugins 弹出来一个窗口 搜索InnerBuilder 点击右边的 install 就完了,等待下载完成,重启idea。进入我们写好的类,点击鼠标右键,选择Generate 下面有一...原创 2017-06-09 10:04:04 · 13189 阅读 · 2 评论 -
RestTemplate解决乱码问题
spring是一个非常强大的东西,其中提供了一个工具类 RestTemplate 主要提供http服务, RestTempalate 字符串类型默认StringHttpMessageConverter做转码,而StringHttpMessageConverter的默认编码集是ISO8859-1,本工程编码是UTF-8 故发送到服务器端会存在中文乱码 。把restTempalate 中 Stri...原创 2016-07-29 18:25:24 · 829 阅读 · 0 评论 -
Idea 类builder模式插件安装方法
builder 模式的代码 手写的话不是不可能,字段多了 就恶心了,下面就会看到,长话短说,IEDA 安装 builder 插件 首先Idea 快捷键Ctrl +alt+s 打开preference 找Plugins 弹出来一个窗口 搜索InnerBuilder 点击右边的 install 就完了,等待下载完成,重启idea。进入我们写好的类,点击鼠标右键,选择Generate 下面...原创 2016-10-12 18:19:49 · 2873 阅读 · 0 评论 -
java多线程实现mq消息处理超时监控
项目运用rabbitMq 实现的分布式架构,每台机器既是生成者也是消费者,改项目依赖于外部调度服务,mq的consumer listener引用其他组的jar包(实现对外部资源的调用),消息消费是单线程的,在此调用jar包操作业务或者是个人代码写的有问题,可能导致线程死锁,或者其他代码问题(http请求未设置超时),导致消息消费被卡住,最终消息堆积。导致正常业务垮掉。既然consumer...原创 2017-04-28 18:54:10 · 845 阅读 · 0 评论 -
RestTemplate解决乱码问题
spring是一个非常强大的东西,其中提供了一个工具类 RestTemplate 主要提供http服务, RestTempalate 字符串类型默认StringHttpMessageConverter做转码,而StringHttpMessageConverter的默认编码集是ISO8859-1,本工程编码是UTF-8 故发送到服务器端会存在中文乱码 。把restTempalate 中 Strin...原创 2017-06-09 10:03:53 · 7417 阅读 · 0 评论