![](https://img-blog.csdnimg.cn/20200809155742719.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
java
文章平均质量分 67
java
crayon-shin-chan
这个作者很懒,什么都没留下…
展开
-
oauth授权码模式请求
1.获取授权码http://localhost:8080/oauth/authorize?client_id=shop&redirect_uri=http://localhost:3000&response_type=code&scope=readGET /oauth/authorize?client_id=shop&redirect_uri=http:...原创 2018-11-28 16:07:26 · 3586 阅读 · 0 评论 -
wireshark抓取eureka请求包
1.注册请求POST /eureka/apps/EUREKA-SERVICE HTTP/1.1Accept-Encoding: gzipContent-Type: application/jsonAccept: application/jsonDiscoveryIdentity-Name: DefaultClientDiscoveryIdentity-Version: 1.4Di...原创 2018-11-27 16:01:01 · 530 阅读 · 0 评论 -
jackson使用JsonCreator注解指定反序列化时使用的构造函数或静态工厂方法
1.简介jackson在反序列化时,默认使用对象的默认构造函数,如果默认构造函数不存在,jackson会报错有些情况下,希望反序列化时使用指定的构造函数,并且将json中的属性键绑定到构造函数参数jackson提供了以下注解:JsonCreator:指定反序列化时使用的构造函数或静态工厂方法 JsonProperty:指定json属性键绑定到构造函数、工厂方法参数2.实体import com.fasterxml.jackson.annotation.JsonCre...原创 2020-10-03 14:01:53 · 2180 阅读 · 0 评论 -
初识jackson
1.简介该项目以前被称为Java(或JVM平台)的标准JSON库,或者被称为“ Java的最佳JSON解析器”。或简称为“ JSON for Java”。不仅如此,Jackson还提供了一套用于Java(和JVM平台)的数据处理工具,包括旗舰级流JSON解析器/生成器库,匹配的数据绑定库(与JSON之间的POJO)和附加的数据格式模块。处理以Avro,BSON,CBOR,CSV,Smile,(Java)属性,Protobuf,XML或YAML编码的数据;甚至包括大量数据格式模块,以.原创 2020-10-02 13:17:06 · 192 阅读 · 0 评论 -
jackson注解JsonAlias的使用(为字段、参数指定反序列化别名)
1.源码@Target({ElementType.ANNOTATION_TYPE,ElementType.FIELD, ElementType.METHOD,ElementType.PARAMETER})@Retention(RetentionPolicy.RUNTIME)@JacksonAnnotationpublic @interface JsonAlias{ /** * 可以接受一个或多个辅助名称作为正式名称的别名 */ public Strin.原创 2020-10-02 13:53:31 · 7129 阅读 · 0 评论 -
jackson注解之JsonAnySetter与JsonAnyGetter处理数量不定的未知属性键值对
1.简介在使用jackson时,一般将一个对象序列化时,json的对象属性都是确定的,因为对象属性是确定的还有些情况,json的对象属性完全是未知的,数量、名称都是未知,比如在序列化一个Map对象时如果有一种需求,即json的对象属性大部分是未知的,但是有一部分属性是确定的,需要将未知属性、确定属性区分开此时,确定属性可以使用对象属性来接收,未知属性可以使用Map来接收jackson提供了一种处理json中所有未知属性的方式JsonAnyGetter:标记在getter方法上,.原创 2020-10-02 22:04:34 · 1904 阅读 · 0 评论 -
jackson使用@JsonManagedReference和@JsonBackReference注解来处理对象循环引用问题
1.简介jackson序列化时一般会调用getter方法来获取属性对象,而Java对象可以循环引用,这样就会导致无限循环获取属性,最终堆栈溢出,jackson提供了两个注解来处理循环引用问题:JsonManagedReference:管理引用的一方,可以理解为具有引用的一方,被这个注解的属性序列化时会正常获取 JsonBackReference:反向引用,可以理解为此属性为反向引用,被这个注解的属性序列化时会忽略2.实体import com.fasterxml.jacks...原创 2020-10-02 22:49:12 · 1489 阅读 · 0 评论 -
jackson使用@JsonProperty注解修改对象属性对应的序列化键
1.简介之前介绍过JsonAlias注解可以为对象属性设置一些别名,可以在反序列化时将多个不同的json键映射到对象属性如果要直接修改对象属性序列化后的属性键,并且应用到序列化过程与反序列化过程,则应该使用JsonProperty属性2.实体import com.fasterxml.jackson.annotation.JsonProperty;import lombok.Data;import java.util.Date;@Datapublic class...原创 2020-10-02 23:04:42 · 2392 阅读 · 0 评论 -
jackson使用@JsonIgnore与@JsonIgnoreProperties注解忽略某些属性与忽略所有未知属性
1.简介jackson中如果不做特殊处理,反序列化时如果遇到未知属性,会报错有时序列化/反序列化时想要忽略一些属性,比如忽略用户密码,因为敏感数据不适宜序列化有时反序列化时想要忽略所有未知属性,jackson提供了两个注解:JsonIgnore:注解在属性上,代表序列化反序列化时忽略指定属性 JsonIgnoreProperties:注解在类上,代表序列化反序列化时忽略指定属性,也可以忽略所有未知属性2.JsonIgnore2.1 实体import...原创 2020-10-02 23:25:08 · 1861 阅读 · 0 评论 -
jackson使用@JsonDeserialize与@JsonSerialize控制序列化与反序列化使用的实际类型
1.简介默认情况下,序列化时会获取对象的实际类型,然后根据可见性规则,获取对象以及其父类的所有属性进行序列化默认情况下,反序列化时,如果使用的对象类型、属性类型不是最终类型,而是接口或者抽象类型,如Map接口等,此时jackson会选择一种常用的实现类来进行反序列化,如Map->HashMap,List->ArrayList,Set->HashSet等如果在序列化时只想序列化对象某父级类型的属性,反序列化时希望指定接口或者抽象类型的实现类,jackson提供了以下注解.原创 2020-10-03 13:36:18 · 5035 阅读 · 0 评论 -
jackson使用@JsonTypeInfo与@JsonSubTypes注解处理多个实现子类的多态反序列化问题
1.简介之前有使用@JsonDeserialize与@JsonSerialize来指定序列化与反序列化时使用的实际类型,这里有另外一种情况:一个父类,多个子类,序列化时要求序列化所有属性,反序列化时要求使用实际类型显然普通的序列化中没有包含子类类型信息,则反序列化时无法知道应该使用多个子类中的哪一个所以必须要在序列化时添加类型信息,jackson提供了以下注解:JsonTypeInfo:用于父类注解,指定所有子类开启类型信息序列化,指定类型显示的内容、方式、字段名称 JsonSu.原创 2020-10-03 20:07:02 · 4858 阅读 · 0 评论 -
jackson使用@JsonFormat注解处理日期时间类型序列化
1.简介默认情况下,jackson在序列化Date类型时,会将其转换为毫秒时间戳,有时需要Date序列化为指定格式的时间字符串jackson提供了以下注解:JsonFormat:指定了Date序列化时使用的日期时间格式2.实体import com.fasterxml.jackson.annotation.JsonFormat;import lombok.Data;import java.util.Date;@Datapublic class User {...原创 2020-10-03 20:46:37 · 8763 阅读 · 0 评论 -
gradle入门之DSL构建语言
文档:Gradle DSL Version 7.4.21.简介Gradle 脚本是配置脚本。当脚本执行时,它会配置一个特定类型的对象。当构建脚本执行时,它会配置一个Project类型的对象。该对象称为脚本的委托对象 。下面是每种类型的 Gradle 脚本的委托。构建脚本:Project 初始化脚本:Gradle 设置脚本:Settings可以在脚本中使用委托对象的属性和方法。每个 Gradle 脚本都实现了Script接口。定义了在脚本中使用的许多属性和方法。2原创 2022-05-14 23:17:06 · 750 阅读 · 0 评论 -
jdk中Calendar的使用
1.获取各种日期字段package czy.demo.util.date.calendar;import java.util.Calendar;import java.util.GregorianCalendar;import java.util.Set;public class CalendarTest { public static void main(String[] args){ Calendar cal = Calendar.getInstance()原创 2020-07-02 17:48:40 · 284 阅读 · 0 评论 -
java内存模型
参考资料:<<深入理解Java虚拟机>>-周志明1.概述Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model, JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,一实现让Java程序在各种平台下都能达到一致的内存访问效果。2.主内存与工作内存Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中...原创 2019-07-06 12:04:34 · 105 阅读 · 0 评论 -
apache dubbo入门之快速开始
文档:快速开始 | Apache Dubbo1.简介一个服务代表一组 RPC 方法的集合,服务是面向用户编程、服务发现机制等的基本单位。下面从定义服务、编译服务、配置并加载服务三个方面说明如何快速的开发 Dubbo 服务。2.定义服务Dubbo3 推荐使用 IDL 定义跨语言服务syntax = "proto3";option java_multiple_files = true;option java_package = "org.apache.dubbo.原创 2022-04-09 22:28:56 · 86 阅读 · 0 评论 -
apache dubbo入门之简介
文档:Dubbo3 简介 | Apache Dubbo1.简介Apache Dubbo 是一款微服务开发框架,提供了 RPC通信 与 微服务治理能力。Dubbo3 基于 Dubbo2 演进而来,在易用性、大规模微服务实践、云原生基础设施适配、安全设计等几大方向上进行了升级。2.Dubbo3Dubbo 提供了构建云原生微服务业务的一站式解决方案,提供的基础能力包括:服务发现 流式通信 负载均衡 流量治理Dubbo 计划提供多语言客户端实现,Java、Golan原创 2022-03-31 22:18:17 · 1619 阅读 · 0 评论 -
java沙箱的要素
一、权限(permission)权限,是允许代码执行的具体操作。权限可以是专门的读取指定文件,也可以是通用的。权限本身包括三个要素:权限类型、权限名以及允许的操作。权限类型:是必须的,实际上是一个实现权限的Java类名,如:java.security.AllPermission 权限名:有一些权限(如java.security.AllPermission不限制代码的操作)不需要权限名...原创 2019-11-10 15:11:09 · 363 阅读 · 0 评论 -
spring boot实战之集成quartz调度任务
1.依赖/* gradle根项目构建文件 */buildscript { ext { /* spring boot版本 */ springBootVersion = '2.3.1.RELEASE' } repositories { maven{ /* 阿里云仓库 */ url 'http://maven.aliyun.com/nexus/content/groups/public'原创 2020-07-12 23:47:01 · 262 阅读 · 0 评论 -
freemarker处理模板简单示例
FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。1.添加依赖dependencies { compile group: 'org.freemarker', name: 'freemarker', version: '2.3.30'}2.创建模板在资源目录resources下创建te...原创 2020-08-01 23:26:47 · 389 阅读 · 0 评论 -
freemarker常用语法(指令、函数、数据类型)
1.指令1.1 if/else/elseifprice is ${price}<#if (price<0)> Price is positive<#elseif (price==0)> Price is 0<#else> Price is negative</#if>public static void main(String[] args)throws Exception { /**.原创 2020-08-02 15:05:34 · 265 阅读 · 0 评论 -
java常用框架日志路径
Java开发时经常需要打印一些调试日志,比如请求报文、响应报文,有时会使用调试来查看,有时会字节打印一些字段,也有时会写日志辅助类来操作,这里介绍一些常用框架的日志路径,可以简单一行配置即可查看日志1.Tomcatorg.apache.coyote.http11.Http11InputBuffer:tomcat请求报文日志,可以打印出所有进入tomcat服务器的http请求报文,如2020-06-19 10:47:19.244 DEBUG 6928 --- [p-nio-80-exec-.原创 2020-06-19 10:54:42 · 407 阅读 · 0 评论 -
lombok配置
lombok.config是lombok的配置文件,用于配置此文件所在目录以及子目录的lombok特性,子目录中配置文件可以覆盖父目录配置以下为几个重要的配置:#setter链式调用clear lombok.accessors.chainlombok.accessors.chain=true#equals hashCode默认调用父类clear lombok.equals...原创 2020-05-02 22:23:19 · 1300 阅读 · 0 评论 -
记一个swagger配置时PathSelectors.ant(““)路径选择错误
1.简介swagger分组配置API时,可以使用路径选择器来选择不同分组的API但是发现修改了context-path后,所有分组操作都为空2.解决PathSelectors.ant("")选择的路径要加上context-path前缀,否则选择不到...原创 2020-10-24 17:53:35 · 7623 阅读 · 1 评论