Java
文章平均质量分 70
fate_destiny
这个作者很懒,什么都没留下…
展开
-
Spring Boot学习——Valid注解使用
在日常业务开发过程中会涉及到很多业务参数的校验,其中空值判断又是其中最多的内容。但在每个业务方法中都进行校验,即便将业务要素相近的校验进行合并,仍然有些繁琐。于是想利用@Valid进行简单校验,减少简单重复代码。Valid注解的使用有几个不同的方法,其中一个是直接修饰入参对象,这种方法可以参考@Valid注解是什么这次是直接修饰具体方法的使用示例相关包依赖 <dependency> <groupId>jakarta.validation</gr原创 2021-08-24 20:01:59 · 576 阅读 · 0 评论 -
使用已有的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 · 2548 阅读 · 2 评论 -
Java模拟实现POST x-www-form-urlencoded 请求
还是先看具体协议是什么。首先使用postman向本地socket服务器发送x-www-form-urlencoded请求,postman示例如下:socket服务端收到的内容如下:127.0.0.1:9289Data Request : POST / HTTP/1.1User-Agent: PostmanRuntime/7.26.1Accept: */*Cache-Control: no-cachePostman-Token: ce83a31d-6d91-4c80-9d28-c38a1fe原创 2020-07-09 11:20:35 · 10687 阅读 · 2 评论 -
Spring Boot学习——学习Apollo(二)
承接上文Spring Boot学习——学习Apollo(一)由于上文的参考链接中已经把启动时初始化配置到 Spring的内容描述的比较清楚了,代码完全可用。但是在运行时刷新配置只对原理描述了一下,具体的代码实现并不完整,并且在Apollo原项目中代码较为繁杂,不利于理解。本文就将自己实际使用的示例呈现出来供大家参考。PlaceholderHelperpackage com.demo.SimulateApollo.property;import com.google.common.base.Str原创 2020-06-19 09:39:37 · 220 阅读 · 0 评论 -
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 · 266 阅读 · 0 评论 -
Spring Boot学习——使用Scope注解动态修改Value注解的属性值
这段时间在对Apollo的学习中,找到了一个不同于Apollo客户端的实现方式。具体参考视频地址为:分布式配置中心很难?手把手带你从0开始手写一个,走着!具体demo代码如下:自定义scope:package com.DynamicUpdateProperties.Scopeimport org.springframework.beans.factory.ObjectFactory;import org.springframework.beans.factory.config.Scope;i转载 2020-05-09 19:11:46 · 1448 阅读 · 3 评论 -
Spring Boot学习——学习Apollo(一)
Apollo客户端原理及简单实现:Apollo客户端设计原理(源码解析)转载 2020-05-07 18:30:56 · 169 阅读 · 0 评论 -
Java——锁的实现
紧接上篇的知识点Java——锁,讨论各种锁的具体实现方法。1 synchronized关键字对象锁/** * 为非公平锁 * 对象锁也叫方法锁,是针对一个对象实例的,它只在该对象的某个内存位置声明一个标识该对象是否拥有锁, * 所有它只会锁住当前的对象,而并不会对其他对象实例的锁产生任何影响,不同对象访问同一个被synchronized修饰的方法的时候不会阻塞, * 创建一个类,sy...原创 2020-04-22 20:04:31 · 197 阅读 · 0 评论 -
Java——锁
本文转自:https://www.cnblogs.com/jyroy/p/11365935.htmlJava提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的...转载 2020-04-17 17:51:51 · 130 阅读 · 0 评论 -
Spring Boot学习——AOP
AOP具体的概念部分请参考:Spring AOP 面向切面编程入门下面就是我写的一个简单的demo在spring boot环境中仅需要在maven添加如下依赖即可: <dependency> <groupId>org.springframework.boot</groupId> <artifactId...原创 2020-03-30 11:33:40 · 112 阅读 · 0 评论 -
Spring Boot学习——自定义Logback Appender组件
在分布式系统中,日志的查看就会变成一个比较麻烦的工作。传统上我们会把日志写在磁盘中,但是由于日志文件的轮转、切片等问题,可能会导致部分信息的遗漏,并且纯文件的日志信息交互在很多情况下会有文件占用的问题。Logback官方提供的Appender组件中有三种远程日志信息同步机制,分别是:SocketAppender、SMTPAppender、DBAppender,具体可以参考官方文档:Chapte...原创 2020-03-17 10:48:40 · 1277 阅读 · 0 评论 -
zookeeper的踩坑之路(二)——在centos7中注册zookeeper守护进程
在正式生产环境中,由于服务器会因为各种问题重启,故需要将zookeeper服务设置为开机自启动。设置开机自启动的方法有很多,其中一个就是在/etc/rc.d/rc.local文件中添加启动语句,但发现并未起作用。遂放弃这种方式,使用守护进程的方式进行配置。首先在/etc/systemd/system文件夹下创建zookeeper.service的文件,文件内容如下:[Unit]Descri...原创 2020-01-08 17:11:58 · 571 阅读 · 0 评论 -
Nacos学习使用(一)
本文主要介绍Nacos的部署。所使用环境:JDK:1.8.0_221MySql:5.7.20(当前Nacos版本集群化需依赖数据库)Nacos:1.1.4(当前最新版本)Nacos下载地址:Nacos,推荐下载可直接运行的tar包和zip包。需要注意的是,Linux环境和Windows环境下的启动脚本略有不同:Linux环境下默认启动模式是集群模式(cluster),Windows...原创 2020-01-03 17:42:54 · 307 阅读 · 0 评论 -
dubbo的学习使用(一)
Dubbo相关的说明性内容已经有很多了,这边就不再做说明了,具体还是参考官方的说明和示例Dubbo中文官网下面就仅说明个人的实践。注册中心使用的是zookeeper,IDE使用的是Idea。首先是原生Dubbo1、api在Idea中创建Maven工程,pom文件如下:<?xml version="1.0" encoding="UTF-8"?><project xm...原创 2019-12-25 17:43:49 · 306 阅读 · 1 评论 -
Java模拟FormData表单提交
在敲代码之前,我们需要了解正常的FormData表单提交究竟向服务器提交了哪些内容。首先使用postman向本地socket服务器发送FormData表单,postman示例如下:socket服务端收到的内容如下:127.0.0.1:11787Data Request : POST / HTTP/1.1User-Agent: PostmanRuntime/7.19.0Accept: ...原创 2019-11-21 08:41:33 · 3441 阅读 · 0 评论 -
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 · 295 阅读 · 0 评论