- 博客(21)
- 资源 (2)
- 收藏
- 关注
原创 Spring Boot学习——Valid注解使用
在日常业务开发过程中会涉及到很多业务参数的校验,其中空值判断又是其中最多的内容。但在每个业务方法中都进行校验,即便将业务要素相近的校验进行合并,仍然有些繁琐。于是想利用@Valid进行简单校验,减少简单重复代码。 Valid注解的使用有几个不同的方法,其中一个是直接修饰入参对象,这种方法可以参考@Valid注解是什么 这次是直接修饰具体方法的使用示例 相关包依赖 <dependency> <groupId>jakarta.validation</gr
2021-08-24 20:01:59
679
转载 使用已有的cer证书配置spring boot https
参考链接:springBoot最简单的配置https证书。首先你要又一个证书下载下来。 操作前提是已有正式的安全证书。文件列表如下: 按照参考链接中的转换语句执行会提示如下错误 后修改使用cer证书可以正常转换,转换语句如下: openssl pkcs12 -export -clcerts -in yourDomain.cer -inkey domainPrivateKey.key -out targetFileName.p12 后续按照要求输入自定义密码并验证即可生产Java环境所需的证书类型,具体
2020-07-20 14:48:44
2986
2
原创 Java模拟实现POST x-www-form-urlencoded 请求
还是先看具体协议是什么。 首先使用postman向本地socket服务器发送x-www-form-urlencoded请求,postman示例如下: socket服务端收到的内容如下: 127.0.0.1:9289 Data Request : POST / HTTP/1.1 User-Agent: PostmanRuntime/7.26.1 Accept: */* Cache-Control: no-cache Postman-Token: ce83a31d-6d91-4c80-9d28-c38a1fe
2020-07-09 11:20:35
11092
4
原创 Spring Boot学习——学习Apollo(二)
承接上文Spring Boot学习——学习Apollo(一) 由于上文的参考链接中已经把启动时初始化配置到 Spring的内容描述的比较清楚了,代码完全可用。 但是在运行时刷新配置只对原理描述了一下,具体的代码实现并不完整,并且在Apollo原项目中代码较为繁杂,不利于理解。本文就将自己实际使用的示例呈现出来供大家参考。 PlaceholderHelper package com.demo.SimulateApollo.property; import com.google.common.base.Str
2020-06-19 09:39:37
298
转载 Java——对象的大小问题
本文转载自 java对象在内存的大小 java对象在内存中占用的空间分为3类, 1. 对象头(Header); 2. 实例数据(Instance Data); 3. 对齐填充(Padding)。常说的基础数据类型大小主要是指第二类实例数据。 具体示例如下: import org.openjdk.jol.info.ClassLayout; public class JOLDemo { public static void main(String[] args) { Object o=n
2020-05-22 17:30:13
325
转载 Spring Boot学习——使用Scope注解动态修改Value注解的属性值
这段时间在对Apollo的学习中,找到了一个不同于Apollo客户端的实现方式。 具体参考视频地址为:分布式配置中心很难?手把手带你从0开始手写一个,走着! 具体demo代码如下: 自定义scope: package com.DynamicUpdateProperties.Scope import org.springframework.beans.factory.ObjectFactory; import org.springframework.beans.factory.config.Scope; i
2020-05-09 19:11:46
1628
3
原创 Java——锁的实现
紧接上篇的知识点Java——锁,讨论各种锁的具体实现方法。 1 synchronized关键字 对象锁 /** * 为非公平锁 * 对象锁也叫方法锁,是针对一个对象实例的,它只在该对象的某个内存位置声明一个标识该对象是否拥有锁, * 所有它只会锁住当前的对象,而并不会对其他对象实例的锁产生任何影响,不同对象访问同一个被synchronized修饰的方法的时候不会阻塞, * 创建一个类,sy...
2020-04-22 20:04:31
263
转载 Java——锁
本文转自:https://www.cnblogs.com/jyroy/p/11365935.html Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。 Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的...
2020-04-17 17:51:51
182
原创 zookeeper的踩坑之路(三)——用容器的方式部署
容器化部署服务有很多优点,在实际工作中,zookeeper又是分布式系统必不可少的工具,下面根据实际情况介绍一下容器化部署zookeeper集群的方法。 环境介绍: 镜像:镜像是自己制作的,CentOS Linux release 7.6.1810 (Core)+JDK1.8.0_212 宿主机环境:CentOS Linux release 7.4.1708 (Core) zookeeper版本...
2020-04-09 16:49:22
2571
原创 Spring Boot学习——AOP
AOP具体的概念部分请参考:Spring AOP 面向切面编程入门 下面就是我写的一个简单的demo 在spring boot环境中仅需要在maven添加如下依赖即可: <dependency> <groupId>org.springframework.boot</groupId> <artifactId...
2020-03-30 11:33:40
151
原创 Spring Boot学习——自定义Logback Appender组件
在分布式系统中,日志的查看就会变成一个比较麻烦的工作。传统上我们会把日志写在磁盘中,但是由于日志文件的轮转、切片等问题,可能会导致部分信息的遗漏,并且纯文件的日志信息交互在很多情况下会有文件占用的问题。Logback官方提供的Appender组件中有三种远程日志信息同步机制,分别是:SocketAppender、SMTPAppender、DBAppender,具体可以参考官方文档:Chapte...
2020-03-17 10:48:40
1569
原创 zookeeper的踩坑之路(二)——在centos7中注册zookeeper守护进程
在正式生产环境中,由于服务器会因为各种问题重启,故需要将zookeeper服务设置为开机自启动。 设置开机自启动的方法有很多,其中一个就是在/etc/rc.d/rc.local文件中添加启动语句,但发现并未起作用。遂放弃这种方式,使用守护进程的方式进行配置。 首先在/etc/systemd/system文件夹下创建zookeeper.service的文件,文件内容如下: [Unit] Descri...
2020-01-08 17:11:58
660
原创 Nacos学习使用(一)
本文主要介绍Nacos的部署。 所使用环境: JDK:1.8.0_221 MySql:5.7.20(当前Nacos版本集群化需依赖数据库) Nacos:1.1.4(当前最新版本) Nacos下载地址:Nacos,推荐下载可直接运行的tar包和zip包。 需要注意的是,Linux环境和Windows环境下的启动脚本略有不同:Linux环境下默认启动模式是集群模式(cluster),Windows...
2020-01-03 17:42:54
378
原创 IHttpHandler接口初步实现
写了很长时间的Java,c#的很多内容都已经比较陌生了。这次使用c#中的IHttpHandler初步实现一个Web接口。 首先在VS中创建新的web应用程序。 接口类代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace CSharpWebDemo {...
2019-12-30 17:10:09
628
原创 dubbo的学习使用(一)
Dubbo相关的说明性内容已经有很多了,这边就不再做说明了,具体还是参考官方的说明和示例 Dubbo中文官网 下面就仅说明个人的实践。 注册中心使用的是zookeeper,IDE使用的是Idea。 首先是原生Dubbo 1、api 在Idea中创建Maven工程,pom文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xm...
2019-12-25 17:43:49
343
1
原创 Java模拟FormData表单提交
在敲代码之前,我们需要了解正常的FormData表单提交究竟向服务器提交了哪些内容。 首先使用postman向本地socket服务器发送FormData表单,postman示例如下: socket服务端收到的内容如下: 127.0.0.1:11787 Data Request : POST / HTTP/1.1 User-Agent: PostmanRuntime/7.19.0 Accept: ...
2019-11-21 08:41:33
3625
原创 zookeeper服务的搭建
zookeeper官网中提供了两个包,具体区别如下: 包名 处理方式 apache-zookeeper-版本号-bin.tar.gz 可以直接执行 apache-zookeeper-版本号.tar.gz 需编译后执行 目前最新版的是3.5.6,环境最低要求为jdk1.8 服务默认读取配置为:conf/zoo.cfg,安装包自带了配置文件示例:zoo_sample.cfg。 ...
2019-11-14 14:15:11
192
原创 FastJson添加注入对象出现重复引用的问题
在使用FastJson进行开发过程中,当JSONArray添加使用注入的对象是,会出现重复引用的问题,将其打印输出后内容如下: [{"createTime":"2019-10-08 11:18:08","id":9,"name":"姓名"},{"$ref":"$[0]"},{"$ref":"$[0]"},{"$ref":"$[0]"},{"$ref":"$[0]"},{"$ref":"$[0]"}...
2019-10-08 11:22:34
368
原创 最简单的基于FFMPEG的Helloworld程序
最简单的基于FFMPEG的Helloworld程序 初步接触FFMPEG,参考雷大神的文章https://blog.csdn.net/leixiaohua1020/article/details/46889849,从最简单的开始学起。 从17年到现在ffmpeg的版本变化很多,API很多都已经失效,需要重新在官网中查询相关demo,现将代码整理如下: ffmpeg版本:4.2.1,开发环境:vs2...
2019-09-25 21:10:36
256
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人