- 博客(176)
- 收藏
- 关注
原创 java实现插值拟合与近似拟合
java实现曲线拟合主要依赖Apache Commons Math库,它提供了丰富的数学计算工具,包括回归分析。主要包括近似拟合和(样条函数)插值拟合。
2024-08-20 10:59:50
291
原创 lamda表达式使用
3、对象list中按某个元素排序形成新的list。4、对象list筛选某些对象出来形成新的list。2、对象list中按某个元素分组形成新的map。1、对象list中取某一个元素形成新的数组。
2024-07-12 15:08:14
182
原创 mybatis LambdaQueryWrapper之复杂与或非sql逻辑编写
其中wrapperNew包括queryWrapper1 || queryWrapper2 || queryWrapper3。上述sql逻辑解读为:wrapper集合 && (wrapperNew);
2024-06-13 11:50:22
320
原创 vue 下拉框默认值显示与多值传参
template><el-select v-model="value" placeholder="请选择"><el-optionv-model的值为当前被选中的el-option的 value 属性值。
2024-04-28 11:51:31
776
1
原创 mybatis接受处理复杂结构的dto
一般我们mybatis接受处理的dto是比较简单的,dto的类里面就是一个个独立简单类型的字段;其中BridgeFieldDTO的定义为包含show和value两个字段的Class。经过实践,可达到预期效果。
2024-01-09 14:45:03
425
原创 Java利用反射动态设置对象字段值
桥梁信息维护需要做到字段级别的权限控制(包括增删改查),设计包含字段权限配置、字段权限级别管理维护接口两大部分。2)对于增删改操作,出入参可参考常用的字段传参;2)建立新对象,根据字段级别权限控制将接受或查询结果放到新对象中;增删改情况,没有字段权限的字段设置成null值;1)字段权限配置可参考常见的用户角色管理设计;查询情况,每个字段按照上述字段定义进行返回;1)按照正常逻辑接受或者查询结果。
2024-01-03 15:20:43
924
原创 禅道项目信息通知到钉钉群配置步骤
禅道是我们常用的项目进度管理工具,禅道集成了webhook功能,可以通过发送 JSON 格式的数据到第三方hook地址,进行消息集成,包括钉钉、企业微信以及飞书。可以考虑将禅道和钉钉两者可以结合起来,将项目信息发送到钉钉群,提高工作效率。
2023-11-07 14:32:36
1340
原创 nginx配置不同通信协议的端口转发
每一种通信协议的转发要求nginx安装时要安装相关模块。nginx一般默认安装是支持对http协议的接口请求转发,如需要邮件协议的端口转发,则需要安装nginx的相关模块。nginx服务器除了支持前端资源的代理访问,还支持不同通信协议端口转发,如http协议的端口请求转发和邮箱协议的端口请求转发。输入nginx -V命令可查看nginx安装了哪些模块以及安装版本信息。以下是这三种情况的nginx配置方式。
2023-09-22 17:20:31
663
原创 jar包冲突如何排查
大家在项目中肯定有碰到过Maven的Jar包冲突问题,经常出现的场景为:项目中运行报NoSuchMethodError,ClassNotFoundException。明明在依赖里有这个Jar包啊。怎么运行不了!?项目中明明定义着某个jar包版本为2.0.2,怎么打包之后变成2.5.0了!?A项目引xxx.jar包运行好好的,B项目同样引入xxx.jar后,运行报错了。。是B项目有问题,还是xxx.jar包有问题!?本地环境和测试环境运行的好好的,到了生产就报一堆NoSuchMethodErr
2022-02-07 23:52:12
5323
原创 maven 打包
工作中会时常遇到maven打包,并将打好的二方包提供给其他同事使用。maven打包的原理本质上是修改项目中相关pom的version,然后执行maven打包命令。对于要打的包如果本身依赖关系不复杂,可以直接修改pom文件中的version。但是对于依赖关系复杂的,建议使用如下命令打包:# 统一设置版本号mvn versions:set -DnewVersion=1.0.0-DAILY_SNAPSHOT# 提交版本号mvn versions:commit# 回退版本号(未执行上面回退版本
2021-10-10 08:52:12
1035
原创 Spring获取Application Context以及bean方法
如何在Spring中获取Application Context进而获取已加载的bean呢?常见的方式是实现ApplicationContextAware接口,参考代码如下所示: import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAwa
2021-07-31 13:38:35
685
原创 Alibaba Fastjson简介及使用
fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。其具有速度快及使用简单的优点。class UserGroup { private String name; private List<User> users = new ArrayList<User>(); public String getNa...
2021-07-31 13:24:43
4533
转载 Rocketmq之消息队列分配策略算法实现的源码分析
Rocketmq之消息队列分配策略算法实现的源码分析本文中包含下面的内容平均分配策略(默认)(AllocateMessageQueueAveragely) 环形分配策略(AllocateMessageQueueAveragelyByCircle) 手动配置分配策略(AllocateMessageQueueByConfig) 机房分配策略(AllocateMessageQueueByMachineRoom) 一致性哈希分配策略(AllocateMessageQueueConsistentHas
2021-02-09 23:55:58
793
原创 Linux:宿主机通过桥接方式连接的VMware内部Linux14.04虚拟机(静态IP)实现上网方案
首先,我们要弄清楚三种常见的连接方式中的桥接方式的网络结构:.bridged(桥接模式)在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配...
2021-01-31 22:02:54
807
原创 JWT知识总结与使用
1、JWT简介 Json web token(JWT)是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准(RFC 7519),该token被设计为紧凑且安全的,特别适用于分布式站点的单点登陆(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。2、JWT的构成JWT是由三部分构成,将这三段信息文本用链接构成了JWT...
2021-01-31 21:57:47
1451
原创 Arthas使用方法
1、简介Arthas 是Alibaba开源的Java诊断工具。安装在系统所在服务器。可以帮助开发人员或者运维人员查找问题,分析性能,bug追踪。下载路径:https://arthas.aliyun.com/arthas-boot.jar2、工具使用2.1 启动$ java -jar arthas-boot.jar* [1]: 35542 [2]: 71560 arthas-demo.jarDemo进程是第2个,则输入2,再输入回车/enter。Arthas会attac...
2021-01-25 22:23:02
1161
1
原创 RocketMQ集群(2主2从)搭建详细步骤
1、RocketMQ消息队列基础概念NameServer: 提供轻量级的服务发现和路由。 每个 NameServer 记录完整的路由信息,提供等效的读写服务,并支持快速存储扩展。Broker: 通过提供轻量级的 Topic 和 Queue 机制来处理消息存储,同时支持推(push)和拉(pull)模式以及主从结构的容错机制。Producer:生产者,产生消息的实例,拥有相同 Producer Group 的 Producer 组成一个集群。Consumer:消费者,接收消息进行消费的实例,拥
2021-01-16 23:14:20
1137
原创 Spring Cloud理解
1、微服务的特点1)按业务划分为一个独立运行的程序,即服务单元。2)服务之间通过http协议相互通信。3)自动化部署。4)可以用不同的编程语言。5)服务集中化管理。6)微服务是一个分布式系统。2、微服务的优势1)服务按照业务进行拆分,编码也是按照业务拆分,代码的可读性和可扩展性增加。2)由于微服务系统是分布式系统,服务与服务之间没有任何的耦合。随着业务的增加,可以根据业务再拆分服务,具有极强的横向扩展能力。随着用户数量的增加,并发量增加,可以将微服务集群化部署,从而增强服
2021-01-11 23:14:38
106
原创 /etc/profile, rc.local等文件的执行顺序
1、各初始化文件执行流程以下是/etc/rc.local 与 /etc/profile .bash_profile .bashrc 等文件的执行顺序。1)通过/boot/vm进行启动 vmlinuz2)init /etc/inittab3)启动相应的脚本,并且打开终端rc.sysinitrc.d(里面的脚本)rc.local4)启动login登录界面 login5)在用户登录的时候执行sh脚本的顺序,每次登录的时候都会完全执行的/etc/profile.d/file
2020-09-18 23:15:03
5956
1
原创 RedisTemplate使用总结
一、简介RedisTemplate是Spring Data Redis提供给用户的最高级的抽象客户端,用户可直接通过RedisTemplate进行多种操作。针对数据的“序列化/反序列化”,提供了多种可选择的策略(RedisSerializer),如下所示:1.JdkSerializationRedisSerializer:POJO对象的存取场景,使用JDK本身序列化机制,将pojo类通过ObjectInputStream/ObjectOutputStream进行序列化操作,最终redis-serv
2020-08-08 22:57:53
1405
原创 CentOS安装Redis并配置systemd管理
1、安装环境由于Redis是C语言编写的,所以需要在服务器上安装Redis之前需要确保系统已安装了gcc。以下是安装gcc的命令:yum install -y gcc2、安装步骤1)下载并解压安装包[root@localhost home]# wget http://download.redis.io/releases/redis-5.0.3.tar.gz[root@localhost home]# tar -zxvf redis-5.0.3.tar.gz2)编译安装[r
2020-07-20 20:10:55
2002
原创 Java利用Cookie或Session实现登录验证
简单的登录验证可以通过Session或者Cookie实现,具体如下:一、利用Session实现登录验证1、自定义HandlerInterceptorpublic class LoginInterceptor implements HandlerInterceptor { @Override public void afterCompletion(HttpServletRequest request, HttpSe
2020-06-21 23:08:51
7095
转载 Windows设置共享文件夹步骤
第一步:首先创建一个文件夹,命令为share,如图; 第二步:在此文件夹上邮件,选择属性,并打开,打开后选择共享选项,如图; 第三步:点击共享按钮,然后弹出共享窗口,如图; 第四步:如果共享给所有人,那么选择下拉列表中的everyone按钮,如图; 第五步:点击共享按钮即可; 第六步:共享后可以通过命令窗口来连接,如图; 本文转自:https://jingyan.baidu.com/article/f0e83..
2020-06-20 15:03:39
1725
原创 df,lsblk,fdisk命令区别
一.比较df:主要检查文件系统的占用情况,如下图所示:lsbk:列出所有可用块设备信息,如下图所示:fdisk:磁盘分区时使用,可查看磁盘分区情况二、查看文件系统是否存在文件占用过大的情况du -sh * | sort -nr如下图所示:...
2020-04-19 22:27:46
4644
原创 word软件常用操作
1、基础快捷键篇1)ctrl+D:调出字体栏2)ctrl+shift+c:拷贝格式;ctrl+shift+v:黏贴格式3)对齐:ctrl+L:左对齐;ctrl+E:居中对齐;ctrl+R:右对齐4)ctrl+F:查找;ctrl+H:替换5)ctrl+Z:撤销;ctrl+Y:还原6)大杀器:F4:重复上一步操作7)ctrl+Enter:插入分页符,快速分页8)ctrl...
2020-04-06 22:55:29
428
原创 使用jvisualvm远程监控服务器jvm步骤详解
1、前言开发大型 Java 应用程序的过程中难免遇到内存泄露、性能瓶颈等问题,比如文件、网络、数据库的连接未释放,未优化的算法等。随着应用程序的持续运行,可能会造成整个系统运行效率下降,严重的则会造成系统崩溃。为了找出程序中隐藏的这些问题,在项目开发后期往往会使用性能分析工具来对应用程序的性能进行分析和优化。VisualVM 是一款免费的性能分析工具。它通过 jvmstat、JMX、SA(...
2019-12-08 21:37:36
2581
原创 压力测试工具Jmeter使用详解
JMeter是开源软件Apache基金会下的一个性能测试工具,用来测试部署在服务器端的应用程序的性能。Jmeter是用java写的,所以它的运行需要java环境。其下载地址为:https://jmeter.apache.org/download_jmeter.cgi。下面将详细讲述该工具的使用方法:1)运行下载文件夹中的bin文件夹下的jmeter.bat(windows环境)/jmeter....
2019-12-04 22:37:27
4943
原创 Java调用shell命令涉及管道、重定向时不生效问题的解决方法
近日,因项目需求需要用java调用shell命令实现清理过时图片任务,发现代码生成出来的shell命令在linux系统后台直接执行,可以实现效果,但是,经过java代码运行,则达不到预期效果。经研究发现,因为该shell命令涉及了管道,这情况就有点不一样了,下面是针对Java调用shell命令涉及管道、重定向时不生效问题的解决方法,参考代码如下:public class Test{ ...
2019-11-23 12:36:07
1901
2
原创 SpringBoot+Mybatis开启二级缓存
MyBatis 内置了一个强大的事务性查询缓存机制,包括一级缓存,二级缓存,它可以非常方便地配置和定制。一级缓存是sqlSession级别的缓存,二级缓存是Mapper 命名空间级别的缓存。MyBatis 默认是开启一级缓存的,即同一个 sqlSession 每次查询都会先去缓存中查询,没有数据的话,再去数据库获取数据。<dependency> <gro...
2019-11-22 22:33:34
5233
2
转载 排序算法总结
1、冒泡排序冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。1.1 算法描述比较相邻的元素。如果第一个比第二个大,就交换它们两个; 对每一对相邻元素作同样的工作,从开始第一对到结...
2019-11-17 16:22:22
285
原创 nginx配置反向代理与负载均衡
nginx服务器功能强大,可以用于反向代理也可以用于负载均衡。一、反向代理配置location / { proxy_pass http://sunpy.com; }其中proxy_pass表示当前server配置的代理映射。效果如下图所示:配置反向代理的常用指令proxy_redirect off;重写后端服务器的location和refresh头。p...
2019-11-17 15:11:11
180
原创 linux环境下将nginx编译安装至指定目录步骤详解
1、下载nginx(linux版本)下载地址见:http://nginx.org/download/2、安装nginx编译环境# yum -y install gcc-c++# yum -y install pcre-devel openssl openssl-devel3、配置nginx安装信息 进入nginx安装目录后,执行以下语句:# ./configu...
2019-11-17 10:47:44
3759
1
转载 计算机网络知识总结
1、Http和Https的区别 Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的Htt...
2019-11-10 17:21:03
335
原创 equals()和hashcode()方法详解
一、简介java.lang.Object类中有非常重要的两个方法:public boolean equals(Object obj)public int hashCode()Object类是类继承结构的基础,所以是每一个类的父类。所有的对象,包括数组,都实现了在Object类中定义的方法。Object类中equals方法的定义如下:public boolean equ...
2019-11-10 17:07:26
164
转载 Java类的初始化顺序
对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。初始化顺序图示:测试代码如下:package com.trs.oop; /** * 类的初始化顺序 * 静态变量->静态初始化块->变量->初始化块->构造器 * @author xiayunan...
2019-11-03 22:28:20
121
原创 单元测试--JMockit使用
1、JMockit配置<!-- 先声明jmockit的依赖 --> <dependency> <groupId>org.jmockit</groupId> <artifactId>jmockit</artifactId> <version>1.36</version>...
2019-10-29 21:06:20
437
原创 Optional类(FROM JDK8)的使用
Optional类自从jdk1.8才诞生,主要用于对可能是null值的处理。案例如下: public static void main(String[] args) { // 其value值为null Optional optcar = Optional.empty(); // 取出括号里的值,null值抛出NPE异常 ...
2019-10-15 23:56:20
408
原创 MyBatis中$与#的区别
区别:1、#{}是预编译处理,MyBatics在处理#{}时,它会将sql中#{}替换为?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,如“4,44,514”会变成'4,44,514'.。2、${}是字符串替换,MyBatics在处理${}时,它会将sql中${}替换为变量的值,传入的数据不会在两边加上单引号。注:使用${}会导致s...
2019-10-10 07:24:51
137
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人