java
文章平均质量分 69
vamViolet
Keep It Simple,Stupid
展开
-
skyWalking自动建表-逻辑梳理
使用skyWalking后,发现我们不需要创建表,启动skywalking会自动创建表,遂研究官方源码,感觉oap-server设计的自动建表功能很强大,并进行逻辑梳理,仅供参考。源码地址:https://github.com/apache/skywalking.git。原创 2023-04-13 14:01:45 · 783 阅读 · 1 评论 -
签名/验签时,将参数名ASCII码从小到大排序
目录背景介绍测试方法对比结果背景介绍签名/验签时,经常需要将参数名按照ASCII码从小到大排序后,然后进行加密/解密操作。这里介绍三种ASCII码从小到大排序方法。Guava 1StringBufferhutool工具类测试方法 public static void main(String[] args) { //签名/验签时,将参数名ASCII码从小到大排序 Map<String, Object> map = new TreeMap<原创 2021-09-16 11:47:20 · 3562 阅读 · 0 评论 -
关于Jayspt加密明文敏感信息的使用
目录现状及目标Jasypt - 简介Jasypt - 是什么Jasypt - 简介Jasypt - 特点Jasypt - 原理Jasypt - 集成方式Jasypt - starter方式使用案例现状及目标项目中会有配置文件来存放敏感信息(比如数据库密码、中间件密码等),这些明文存储的敏感信息一旦泄露,会引发严重的安全事故。为了消除安全隐患,最直接的方式就是把明文敏感信息加密,在程序需要用到的时候进行解密。针对加密、解密,Jasypt 框架提供了很好的解决方案。Jasypt - 简介Jasyp原创 2021-09-08 09:47:29 · 565 阅读 · 0 评论 -
关于ShardingSphere-JDBC的简介及使用
现状及目标由于旧的业务表中数据量会持续增长,且没有对数据做分表、索引,最终导致查询上亿数据时报错。因此决定使用ShardingSphere-JDBC对表数据做数据分片处理。ShardingSphere-JDBC简介ShardingSphere-JDBC是什么ShardingSphere-JDBC作为Apache ShardingSphere的一个独立的产品。定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外原创 2021-08-30 17:56:08 · 1656 阅读 · 4 评论 -
MyBatisPlus 注解方式实现多表关联查询
目录官方API使用概述具体写法Mapper写法:entity写法:service写法:日志报错结果截图官方API官方文档:https://mp.baomidou.com/guide/具体位置:https://mp.baomidou.com/guide/wrapper.html#%E7%94%A8%E6%B3%A8%E8%A7%A3使用概述Mapper层方法上添加 ${ew.customSqlSegment}和@Param(Constants.WRAPPER);查询vo添加对应的查询条件字段,结果原创 2021-06-16 10:35:59 · 6819 阅读 · 0 评论 -
雪花算法的基本理念和简单实现
目录what is SnowflakeIdwhy is SnowflakeIdhow to donotewhat is SnowflakeId随着服务化的演进,服务越来越多,数据库越分越细,有时候一个业务也会用到多个数据库。这时,使用传统的主键自增或者UUID(无序,长度过长)方式就会产生id重复,不能满足使用场景。分布式系统中为了保证id唯一,就需要全局的唯一id生成策略。雪花算法优点:生成的ID不重复生成性能高(每向数据库插入一条数据不用进行重新排列)基于时间戳,可以基本保证有序递增原创 2021-05-25 10:55:12 · 1401 阅读 · 0 评论 -
java程序远程debug原理与配置
目录背景组成 模块间联系IBM对三个模块的详细介绍使用参数说明背景日常工作中,每个程序员都会遇到bug。也往往会需要调试远程环境中的程序,这时候就需要远程调试。eclipse、idea等IDE工具可以远程调试,本质上都是实现了Java 的平台调试体系—— JPDA (Java Platform Debugger Architecture,JPDA)。这个体系为开发人员提供了一整套用于调试 Java 程序的 API,是一套用于开发 Java 调试工具的接口和协议。也就是说JPDA是JVM的调试标准原创 2021-03-03 11:19:06 · 1680 阅读 · 0 评论 -
preparing launch delegate终极解决方案
preparing launch delegate网上百度的都不好使,最终发现mybatis的配置文件mapper.xml中的方法名一样导致冲突原创 2018-10-30 16:42:28 · 1002 阅读 · 0 评论 -
list转page分页对象
文章目录封装调用封装 public <T> Page<T> listConvertToPage(List<T> list, Pageable pageable) { // 当前页第一条数据在List中的位置 int start = (int)pageable.getOffset(); // 当前页最后一条数据在List中的位置 int end = (start + pageable.getPageSize()) >原创 2020-06-03 16:19:37 · 2564 阅读 · 1 评论 -
记录一个比较完整配置的mybatis-generator.xml
记录一个比较完整配置的mybatis-generator.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"原创 2020-05-19 11:17:48 · 9569 阅读 · 0 评论 -
CommandLineRunner和ApplicationListener原理分析
文章目录原理分析:源码跟踪SpringApplication.run 方法源码callRunners 源码分析原理分析:SpringApplication.run 方法在设置并刷新ApplicationContext后,会遍历CommandLineRunner接口和ApplicationRunner接口的实例并运行它们的run方法(类似于开机自启)。然后(AnnotationAwareOrderComparator.sort(runners);)利用@Order注解(或者实现Order接口)来设置所有C原创 2020-05-09 14:24:02 · 14286 阅读 · 0 评论 -
Java中文首字母排序与SQL中文排序对比
使用Java提供的 Collator 类来进行中文字符串的比较.原理: 用getInstance(Locale ) 方法进行实例化对象。然后重写里面的 compare() 的方法进行比较。优点:排序方法实现简单.缺点:排序结果不是很准确.例子:String[] titles = {"关羽","张飞","公孙瓒","诸葛亮","曹操","刘备","赵云","微微", "哈哈", "哈"...原创 2020-04-24 19:18:59 · 11253 阅读 · 0 评论 -
pageoffice使用笔记
文章目录springboot项目集成pageofficepageoffice使用WebOpen打开服务器上文件springboot项目集成pageoffice在项目src目录下新建lib文件夹,将jar包引入。pom文件配置依赖 <dependency> <groupId>com.zhuozhengsoft</groupId> <...原创 2020-04-16 19:17:21 · 14783 阅读 · 0 评论 -
使用ApplicationListener监听使方法仅在项目启动时执行一次
使用场景在一些业务场景中,当容器初始化完成之后,需要处理一些操作,比如一些数据的加载、初始化缓存、特定任务的注册等等。这个时候我们就可以使用Spring提供的ApplicationListener来进行操作。用法本文以在Spring boot下的使用为例来进行说明。首先,需要实现ApplicationListener接口并实现onApplicationEvent方法。把需要处理的操作放在on...原创 2019-12-03 11:20:40 · 42993 阅读 · 3 评论 -
Java8 stream根据字段分组并排序
Java8 stream根据字段分组并排序1.根据字符串类型日期分组,并按照日期升序排序,返回TreeMap<String,List>,map的key为字符串日期,value为listArrayList<PlnexecutionRecord> records = plnExectionRecordMapper.selectRecord(ids[i]);TreeMap&...原创 2019-12-03 10:20:31 · 74403 阅读 · 2 评论 -
java阳历转阴历工具类
java阳历转阴历工具类:java阳历转阴历工具类参考链接1. 闲来无事,听说朋友的需求用到阳历转阴历,自己也没思路,求助百度,参考链接后修改出来一份工具类。代码如下:package com.surekam.common;import java.text.ParseException;import java.text.SimpleDateFormat;import java.u...原创 2018-12-27 17:47:22 · 1488 阅读 · 0 评论 -
Mybatis部分知识点
1.JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?① 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。 解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。② Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。 解决:将Sql语句配置在XXXXmappe原创 2017-11-10 01:17:49 · 308 阅读 · 0 评论 -
SpringMVC部分知识点
1.简单的谈一下SpringMVC的工作流程?流程 1、用户发送请求至前端控制器DispatcherServlet 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、DispatcherServlet调用HandlerA原创 2017-11-10 01:16:51 · 254 阅读 · 0 评论 -
Struts2部分知识点
JavaEE软件三层结构和MVC的区别? JavaEE软件三层架构是由sun公司提供JavaEE开发规范的:Web层(表现层)、业务逻辑层、数据持久层。【其中WEB层会使用前端控制器模式】 MVC是一种思想,是一种模式,将软件分为 Model模型、View视图、Controller控制器。【JavaEE开发更强调三层结构,web层开发更注重MVC】 Struts2 就是web层开发框架,符合M原创 2017-11-10 01:15:44 · 306 阅读 · 0 评论 -
Spring部分知识点
1.谈谈你对spring IOC和DI的理解,它们有什么区别?IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spring框架管理,简单说,就是创建UserService对象控制权被反转到了Spring框架DI:Dependency Injection 依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象原创 2017-11-10 01:14:36 · 375 阅读 · 0 评论 -
SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
点击打开链接使用SSM(spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。这次,先转载 2016-11-03 11:27:09 · 256 阅读 · 0 评论 -
常用 Git 命令清单
下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git in转载 2016-11-03 08:33:02 · 254 阅读 · 0 评论 -
eclipse maven 报错日志
eclipse maven tomcat ssm 报错日志原创 2016-11-01 14:18:12 · 2088 阅读 · 0 评论 -
MySQL修改root密码的多种方法
在 Navicat for MySQL 下面直接执行 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 就可以方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('...原创 2016-10-22 14:55:24 · 325 阅读 · 0 评论 -
面试技巧总结
1、请你自我介绍一下你自己?回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,原创 2016-10-21 15:08:29 · 706 阅读 · 1 评论 -
Java基础笔记
----------------------------------------------------------------------------/*标识符: 在java程序中有些名字是可以自定义的,那么这些自定义的名字我们就称作为自定义的标识符。标识符要注意的细节: 1. 标识符的组成元素是由 字母(a-zA-Z) 、数字(0-9) 、 下划线(_)、原创 2016-10-17 15:42:33 · 475 阅读 · 0 评论 -
Could not write metadata for '/Servers'.
eclipse崩了以后删除完工作区间的.metadata文件,重新设置后经常弹出Could not write metadata for '/Servers'. D:\eclipse-workplace\.metadata\.plugins\org.eclipse.core.resources\.projects\Servers\.markers.snap (系统找不到指定的路径。)...原创 2016-10-17 09:44:51 · 9081 阅读 · 0 评论 -
20个设计模式和软件设计面试问题
不管是参加 Java 面试还是 C# 面试,设计模式和软件设计都是任何编程面试中的必问问题。转载 2016-10-15 14:27:18 · 436 阅读 · 0 评论 -
dos命令笔记
计算机 = 硬件 + 软件硬件: cpu : cpu是计算机中的运算核心与控制核心。负责了解析计算机的指令、与计算机运算的执行。 内存: 数据与cpu交互的桥梁。 程序所需要的数据都会先加载到内存中,cpu是直接读取内存中数据运算的。 特点: 存取速度快。 缺原创 2016-10-14 15:27:07 · 386 阅读 · 0 评论 -
JAVA为什么要配置环境变量,怎样配置
安装JDK后要配置环境变量,主要有三个:1 JAVA_HOME ->为JDK的安装目录,如:F:\JAVA\jdk1.6.0_042 CLASSPATH ->到哪里找需要执行的.class文件,如: .;%JAVA_HOME%\lib;前面是一个点[.]再加一个分号[;]再以分号结束[;]为什么要加点[.]在编译java文件时,如javac xxx.java 即会在当前目录下生成x转载 2016-10-14 09:17:58 · 363 阅读 · 0 评论