![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
ZHANGJNWEI
这个作者很懒,什么都没留下…
展开
-
maven命令案例
(1)根据jar包生成pom文件mvn install:install-file -Dfile=file-path-to-jar \-DgroupId=<group-info> -DartifactId=<artifactId> \-Dversion=<version> -Dpackaging=jar原创 2021-12-14 09:17:57 · 338 阅读 · 0 评论 -
java中字段校验说明
jakarta-validation-api的实现是org.hibernate.validator;hibernate具体的实现包在org.hibernate.validator.internal.constraintvalidators中;原创 2021-07-26 15:46:35 · 387 阅读 · 0 评论 -
IDEAJ问题
(1)Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean。我们将tomcat包设置了<scope>provided</scope>,我们本意是打包的时候才不需要将这个包加入lib里面,正常调试编译是可以编译到的,那么可不可能是编译器的问题呢?我们打开idea运行时的配置Run=>Edit configurations好了,看到这里.原创 2021-07-14 14:46:24 · 102 阅读 · 0 评论 -
nacos集成相关问题汇总
集成nacos和dubbo,因org.springframework.cloud.openfeign.Targeter无法访问导致应用启动失败的解决方法首先,这是一个Spring boot web应用,集成了Spring cloud aliababa时,启动时报如下错误:Error creating bean with name 'feignTargeter' defined in class path resource [org/springframework/cloud/openfeign/Fei.原创 2021-02-01 16:29:56 · 654 阅读 · 0 评论 -
java 安全基础设施
Look into Java's built-in security infrastructure探究Java内置安全基础设施, System.setSecurityManager(new SecurityManager()); //使用默认安全监控,设置安全管理器 new URL("http://www.google.com").openConnection().connect(); 返回结果: java.security.AccessControlException: access .原创 2021-01-08 21:56:39 · 128 阅读 · 0 评论 -
IDEA配置gradle避免gradle下载
原创 2021-01-05 15:02:59 · 1243 阅读 · 0 评论 -
java实现输入流写入文件
(1)一般的java代码@Testpublic void whenConvertingToFile_thenCorrect() throws IOException { InputStream initialStream = new FileInputStream( new File("src/main/resources/sample.txt")); byte[] buffer = new byte[initialStream.available()]; .原创 2020-12-30 10:33:37 · 2499 阅读 · 0 评论 -
解决springboot应用中文乱码
(1)yaml配置中添加如下属性application.properties配置文件中添加如下属性: spring: http: encoding: force: true charset: UTF-8 enabled: true server: tomcat: uri-encoding: UTF-8(2).原创 2020-12-14 15:43:13 · 435 阅读 · 1 评论 -
xxl-job的cron表达式详解
一丶xxl-job的表达式由7个部分组成,例如:注:/与5算是一个整体秒数 分钟 小时 日期 月份 星期 年份(可为空)}*/5 * * * * ?二丶各个位置的取值范围,看上面的小例子,应该都能想到了,从前往后对应,分别为:秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1-31 , - * ? / L W C 月份 1-12 或者 JAN-DEC , - * / 可以用0-11 或用字符串 “JAN, FEB, M原创 2020-12-05 13:06:03 · 10364 阅读 · 0 评论 -
springboot项目中路径解析
FileSystemResourceLoader类实现了路径解析功能;支持以绝对路径/和classpath:为开头的路径解析;@Beanpublic ResourceLoader resourceLoader(){ return new FileSystemResourceLoader();}FileSystemResourceLoader.getResource(jobConfig.fileRoot).getURL().getPath(); 实现classpath路径转换为绝对路径;原创 2020-12-05 11:15:04 · 432 阅读 · 0 评论 -
gradle使用手册
1、启动应用准备阶段:1、在build.gradle文件中添加application插件apply plugin 'application'2、配置项目的主类mainClassName = 'your.applicatin.MainClass'运行阶段:1、执行命令gradle run原创 2020-10-12 09:37:18 · 184 阅读 · 0 评论 -
java反射机制思考总结
Class.getFields() 返回的是public修饰的成员属性;Class.getDeclaredFields(): 返回bean中声明的成员属性;当属性为private,调用Field.set(obj, obj)方法时抛出异常,需要调用Field.setAccessible(boolean)函数修改字段的可访问性;...原创 2020-09-20 15:59:19 · 135 阅读 · 0 评论 -
网关中使用JWT进行用户权限控制代码
这个一个权限校验的全局过滤器,实现Gateway的GlobalFilter接口,项目中使用到反应式编程方法;权限校验原理是基于JWT的token校验法;//整个类实现springcloud-gateway中GlobalFilter接口,项目中使用到反应式编程方法@Override public Mono<Void> filter(ServerWebExchange serverWebExchange, GatewayFilterChain gatewayFilterCha.原创 2020-09-15 11:19:39 · 969 阅读 · 0 评论 -
maven中depencyManager使用
maven通过使用dependencyManagement实现子模块依赖版本的统一管理,子模块在引入依赖时不用指定工件版本号,maven会使用父POM中指定的工件版本;原创 2020-09-10 18:32:17 · 526 阅读 · 0 评论 -
maven插件汇总
versions-maven-plugin:在项目的POM文件中管理工件的版本dependency-mediator-maven-plugin:解决依赖冲突问题;clirr-maven-plugin:在项目中运行Clirr框架maven-enforcer-plugin:控制项目环境约束,例如maven版本、OS以及jdk等maven-compiler-plugin:编译项目源码maven-javadoc-plugin:使用jdoc工具为项目生成javadocsmaven-source原创 2020-09-10 18:24:52 · 624 阅读 · 0 评论 -
mybatis使用总结
总结一个mybatis-spring-boot-starter依赖包的使用;(1)spring.datasource.{url, username, password, driver-class-name}(2)使用mybatis.config-location属性指定Mybatis的配置文件 classpath:mybatis-config.xml 或者配置mybatis.mapper-locations=/UserMapper.xml,/DinnerMapper.xml(3)在myb...原创 2020-09-08 20:16:23 · 83 阅读 · 0 评论 -
CAT调用链监控软件原理
CAT简介美团开源的一款调用链监控软件,在国内互联网行业比较流行。原理先埋点,使用CAT客户端SDK,在业务逻辑层面通过编码的方式实现埋点和输出;埋点涉及有四个关键概念,分别是transaction, event,metrics和heartbeat。当业务调用完成,将埋点通过线程的方式发送到一个消息队列;CAT Server使用消费机的机制对消息队列进行分析,并将分析结果存储在Mysql,将元调用链信息存储到HDFS,方便以后使用。特点对应用无影响实时性吞吐量大开销低...原创 2020-09-02 14:28:46 · 346 阅读 · 0 评论 -
netty事件处理流程
/** * Netty的buffer设计思想: * ByteBuf的属性:readerIndex, writerIndex和capacity; * 0 -- readerIndex之间的内存表示被read操作读取字节数据;readerIndex -- writerIndex之间的内存表示未被读字节; * writerIndex -- capacity之间的内存表示可写字节;clear操作后:readerIndex=writerIndex=0. * * Channel的操作分为三类: even.原创 2020-07-22 18:27:43 · 275 阅读 · 0 评论 -
java之nio总结
/** * java.net包中包含的都是最原始网络应用程序设施,包括 Socket, InetSocketAddress * * java.nio包中包含最新的网络应用构建基础设施,包括buf和channel * * SocketChannel.open()方法 * SelectorProvider.select() --> SelectorProvider实例 * * ServerSocketChannel.open ===> SelectorProvider.openSe.原创 2020-07-22 16:38:39 · 84 阅读 · 0 评论 -
java库Executor框架思考
大部分程序都是围绕task执行进行组织。task是work的抽象、具体单元。将work分解为task简化应用的组织。在线程中执行task... 第一步是识别出明显的边界,理想情况是task是独立活动,不依赖状态、结果和其他task。大部分服务器按照客户请求作为task的边界。 Executor框架: task是work的逻辑单元,线程可看作一种让task可以异步运行的机制。有界队列限制应用因为过载导致内存耗尽的,线程池在管理线程上 也可以获得同样好处。作为Executo...原创 2020-06-19 18:04:51 · 109 阅读 · 0 评论 -
springboot根目录配置
springboot web应用端口和上下文根目录配置---------------------------------------------------server.port = 8888 ;应用端口server.context-path = /HelloWorld ;应用根目录名称...原创 2020-04-26 09:53:09 · 2781 阅读 · 0 评论 -
springboot应用数据库密码加密方案
使用Druid保护配置文件中数据库密码信息 使用com.alibaba.druid.filter.config.ConfigTool生成一对加密密钥,使用生成的加密密钥对密码加密,生成最终的加密字符串。 spring.datasource.password=加密后字符串 spring.datasource.druid.filter.config.enabled=true...原创 2020-04-24 12:38:37 · 520 阅读 · 0 评论 -
AOP编程中涉及的概念
Aspect Advice: @Before @After @AfterThrowing @Around @BeforeReturning JoinPoints JoinPoint对象作为adivce形参,获取更多信息 Pointcut @Pointcut: 共用某些pointCutWeave...原创 2020-03-17 10:56:15 · 158 阅读 · 0 评论 -
jvm调优官方文档资料
Garbage Collector, Heap, and Runtime Compiler Default Selections:https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/ergonomics.htmlGenerationshttps://docs.oracle.com/javase/8...原创 2019-11-12 16:28:13 · 382 阅读 · 0 评论 -
maven POM文件详解
What is the POM?POM stands for "Project Object Model". It is an XML representation of a Maven project held in a file namedpom.xml. When in the presence of Maven folks, speaking of a project is spea...转载 2019-10-29 09:41:10 · 1650 阅读 · 0 评论 -
G1GC技术资料
网址1:https://www.oracle.com/technical-resources/articles/java/g1gc.htmlLearn about how to adapt and tune the G1 GC for evaluation, analysis and performance.TheGarbage First Garbage Collector (G1 G...转载 2019-10-29 09:31:04 · 218 阅读 · 0 评论 -
GC调优原理和测量方法
JVM优化 配置JAVA堆大小 -Xms<size>: 设置初始堆大小 -Xmx<size>: 设置最大的对大小 针对的堆的细节配置: ---空闲堆百分比设置 -XX:MinHeapFreeRatio=<number> -XX:MaxHeapFreeRatio=<number&g...原创 2019-10-28 13:36:56 · 254 阅读 · 0 评论 -
JAVA中reference总结
Java语言中引入Reference的目的是什么?(1)实现对象声明周期的精细化管理,允许通过Reference改变对象的可达性状态,优化JVM的垃圾回收机制;在设计高效缓存框架,诊断OOM问题时有利。Java运行库中引用类型说明: (1)分类:弱引用,软应用,幻引用,最终引用 (2)弱引用:通过get()方法返回对对象的引用 (3)引用的类层次结构: ...原创 2019-10-28 13:06:30 · 148 阅读 · 0 评论 -
设计模式之Callback
Callback设计模式在函数式编程语言具有先天性,因为函数被当做第一公民。在Java8之前,使用接口模拟callbacks.函数编程中重要的几个概念:(1)Function作为第一类对象(2)纯函数(3)更高阶层函数函数实例作为引用对象被使用;纯函数类,函数执行过程无side effects,函数结果只依赖传入参数;更高阶函数是接收函数对象作为入参,输出结果也是函数;/** 纯...原创 2019-09-21 21:58:49 · 391 阅读 · 0 评论 -
java bytecode探索
ByteBuddy:生成和操作Class文件的libraryClass<?> dynamicType = new ByteBuddy() .subclass(Object.class) .method(ElementMatchers.named("toString")) .intercept(FixedValu...原创 2019-06-25 06:37:59 · 160 阅读 · 0 评论 -
Java泛型--自限定
public class AbstractBootstrap<B extends AbstractBootstrap<B, C>, C extends Channel> 子类型B是父类型AbstractBootstrap 的一个类型参数,因此可以法返回到运行时实例的引用以支持方法的链式调用;(1)自限定类型class BasicHolder<T>...原创 2019-06-19 12:37:23 · 420 阅读 · 0 评论