
JAVA
文章平均质量分 60
weijx_
这个作者很懒,什么都没留下…
展开
-
BigDecimal
Java在java.math包中提供的API类BigDecimal转载 2022-12-07 14:27:16 · 194 阅读 · 1 评论 -
oracle存储过程实现定时备份表和处理重复数据
oralce采用存储过程,实现定时备份某个数据表,并且对原表进行重复数据的处理操作,错误日志的记录等原创 2022-07-01 14:24:37 · 1771 阅读 · 0 评论 -
springboot使用@Value注解遇到的问题
在配置文件中配置了一个参数值后,不能够正常启动项目,并报如下错误:原因分析:全部参数的构造函数的自动生成,该注解的作用域也是只有在实体类上,参数的顺序与属性定义的顺序一致。发现其他的类也是这么写的没啥问题。是因为我在这个类中加了@Value注解。将配置文件的属性读取出来。解决办法:可以 用@RequiredArgsConstructor 代替 @AllArgsConstructor;@RestController@Slf4j@RequiredArgsConstructor@Reques原创 2022-03-11 14:13:09 · 1225 阅读 · 0 评论 -
本地远程连接服务器调试
本地可以对测试以及生产环境得代码进行打断点调试1.idea配置新建一个远程Remote JVM Debug修改个名称,以及host和port(host就是服务器的地址,port 给80就行,默认http请求)然后选择对应的项目服务器启动配置没加连接配置需要将第一步生成的命令复制到启动配置里-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:80 放到 nohup java 后面如果放到别的位置,可能会导致起原创 2022-03-11 11:51:04 · 1764 阅读 · 0 评论 -
java使用jsqlparser实现自定义转换
jsqlparser描述:JSqlParser 解析 SQL 语句并将其转换为 Java 类的层次结构。基本上的sql关键字和函数都可以被jsqlparser解析成对象层层包装。实现的功能:基础sql查询,条件查询,字段和表得别名,排序,分组,聚合,case when,基本上都是有得。我的使用场景:将一个表和字段不是数据库直接查询的表字段,进行通过jsqlparser来转换成elasticsearch中存储的表和字段进行到openlokeng中进行查询界面输入:openlookeng 执行:原创 2021-09-28 10:07:53 · 2165 阅读 · 0 评论 -
使用groovy 进行java单元测试-基础使用
参考:https://semaphoreci.com/community/tutorials/stubbing-and-mocking-in-java-with-the-spock-testing-framework了解groovyGroovy 是一种基于 JVM 的敏捷开发语言,它结合了 Python、Ruby 和 Smalltalk 的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java .原创 2021-09-18 11:04:35 · 1666 阅读 · 0 评论 -
JUNIT 和 Jmockit 进行单元测试
JUNIT 和 Jmockit 进行单元测试参考:http://jmockit.github.io/引入的包gradle方式jmockit('org.jmockit:jmockit:1.49')testCompile('junit:junit:4.12')maven方式<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId><原创 2021-09-18 10:40:35 · 737 阅读 · 0 评论 -
cuba新项目导入修改数据库和修改打印日志,前端地址配置
cuba新项目导入修改数据库1.build.gradle 的mysql地方改成本地ask createDb(dependsOn: assembleDbScripts, description: 'Creates local database', type: CubaDbCreation) { dbms = 'mysql' host = 'localhost' dbName = 'imp_dev_0_1' dbUser = 'root' dbPassword = '原创 2021-07-01 10:09:38 · 325 阅读 · 1 评论 -
项目优化方案及分析过程,解决办法
一、工具和排查方法二、大批量的导入导出优化三、抽样计算功能的优化1.1. 工具和排查方法1.1.1. 使用jdk自带的 jconsole,直接在cmd命令中打入jconsole,就会弹出一个窗体1.1.2. 使用FinalShell 工具查看1.1.3. 使用jprofile工具查看内存和cpu1.1.4. 前端浏览器控制台,F12查看接口调用的time 耗时1.1.5. 采用打印日志方式查看内存和使用时间totalMemory()这个方法返回的是java虚拟机现在已经从操纵原创 2021-06-17 11:29:21 · 1683 阅读 · 1 评论 -
一个表数据量太大,查询太慢,进行分表(临时表)进行处理
首先对于一个2000W的大表中获取数据,那么速度肯定十相当之慢60W临时表创建的大约需要2-3S ,查询 只需要200-400ms ,所以 大数据量的情况下,我们可以直接使用创建一个临时表来处理该数据,那么就不需要直接去查询大表几千万的数据,那样速度很慢。然后我们抽取出来创建临时表,创建表只需要2-3S那么再进行查询这个临时表,更快 只需要200-400ms,因为已经抽取出来部分数据,数据量已经减少。具体的sql代码- 创建临时表create TEMPORARY table dsp_1622原创 2021-06-11 10:31:42 · 4619 阅读 · 2 评论 -
poi和easyExcel 读取文件内存占用统计
介绍:虽然POI是目前使用最多的用来做excel解析的框架,但这个框架并不那么完美。大部分使用POI都是使用他的userModel模式。userModel的好处是上手容易使用简单,随便拷贝个代码跑一下,剩下就是写业务转换了,虽然转换也要写上百行代码,相对比较好理解。然而userModel模式最大的问题是在于非常大的内存消耗,一个几兆的文件解析要用掉上百兆的内存。现在很多应用采用这种模式,之所以还正常在跑一定是并发不大,并发上来后一定会OOM或者频繁的full gc。EasyExcel是一个基于Java的原创 2021-06-11 10:28:13 · 3441 阅读 · 1 评论 -
java获取真实IP地址
获取真实IP效果NGINX配置主要是添加下面几句话proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;server { listen 8866;原创 2021-03-03 15:21:06 · 479 阅读 · 1 评论 -
java通过inpuStram获取到request的请求流后Controller拿不到参数了
问题:查阅资料后得知:在Spring中request的只能被获取一次,拦截器获取之后就会导致Controller拿不到值,因为我写了个拦截器,去拦截获取的参数,对参数进行校验加密(也就是上一篇的防篡改功能),然后拦截器验证没问题,controller获取的json类型的数据却是空的解决办法写过滤器重新把流再塞回去1.创建个类,为了备份request中的值public class MyHttpServletRequestWrapper extends HttpServletRequestWrappe原创 2021-02-24 14:03:08 · 662 阅读 · 0 评论 -
springboot 和 js (vue) 实现SM3加密 防篡改
springboot 和 js (vue) 实现SM3加密 防篡改一、以下是对引入SM3进行说明1.首先导入jar<dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.68</version></dependency>2.写一个jav原创 2021-02-04 19:45:46 · 10252 阅读 · 8 评论 -
java实现在线预览word(docx)功能
在线预览word(docx)功能使用的是kkFileView,一个springboot项目直接进行使用即可Docker容器环境环境运行拉取镜像docker pull keking/kkfileview运行docker run -it -p 8012:8012 keking/kkfileview浏览器访问容器8012端口(http://xxx.xxx.xxx.xxx:8012 )即可看到项目演示用首页来源:https://gitee.com/kekingcn/file-online原创 2021-01-29 15:06:28 · 5452 阅读 · 0 评论 -
Spring Boot Admin 监控告警
Spring Boot Admin 监控告警要进行监控,需要两个Project,一个是Admin Server端,负责监控Spring boot的项目,另一个是Admin Client端,是被监控的Spring boot服务。当然也可以一个项目同时做服务端和客户端,监控自己的本项目服务;1.这里提供的是两个服务,首先新建一个server端的springboot项目2.server端pom文件配置<?xml version="1.0" encoding="UTF-8"?><pro原创 2021-01-20 09:59:18 · 1130 阅读 · 5 评论 -
特此记录-使用gitlab ci和 docker 持续集成部署单个项目
领导说要用这玩意持续集成,咱也没弄过,弄了三天,n多个坑,终于可以了,特此记录!使用gitlab ci 持续集成部署先来看下总共这一百来个的成果需要的环境说明:gitlab 服务springboot项目一台虚拟机(java,maven,docker环境)一、首先构建虚拟机的java和maven环境(1)下载 apache-maven-3.6.3-bin.tar.gz和jdk-linux-x64.tar.gz然后后解压tar -zxvf /usr/local/jdk8/jdk-l原创 2020-12-11 14:03:04 · 585 阅读 · 0 评论 -
使用socket实现一个自己的Tomcat
使用socket实现一个自己的Tomcat创建一个请求的类,获取方法和路径public class MyRequest { private String method; private String url; public String getUrl() { return url; } public String getMethod() { return method; } public MyRequest(In原创 2020-11-25 17:35:05 · 369 阅读 · 0 评论 -
springboot实现自定义注解加日志切面记录
使用自定义注解,日志切面(前置通知 后置通知,获取controller的error执行结果),多线程首先写个自定义注解/** * 系统日志自定义注解 * * @author weijianxing */@Target({ElementType.PARAMETER, ElementType.METHOD})//作用于参数或方法上@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface SystemLog { /原创 2020-11-20 19:43:23 · 874 阅读 · 0 评论 -
java实现识别二维码图片功能
java实现识别二维码图片功能所需maven依赖<dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.2.1</version></dependency><dependency> <groupId>com.google.zxin原创 2020-09-18 18:12:13 · 10397 阅读 · 18 评论 -
记录面试题
面试题面试题之单项选择题单项选择题1.下面那一项是正确的()A. abstract 修饰符可修饰字段、方法和类B. 抽象方法的body部分必须用一对大括号包住C. 声明抽象方法,大括号可有可无D. 声明抽象方法不可写出大括号答案:DA. abstract修饰类 abstract修饰方法B.C.D中 public void a() ; //注意这里的 ; 号 这才叫抽象方法public void a() {} //这里没有 ;号而是 {} 这不是抽象方法 这是一个完整的 被实现的方法原创 2020-08-31 22:57:20 · 3988 阅读 · 1 评论 -
使用jdk操作wsdl生成webservice代码进行使用
使用jdk操作wsdl生成webservice代码进行使用1.使用Axis生产客户端代码(另存为bat文件)之前很多次不行都是目录包含空格 比如Axis_Lib,Output_Path[java] view plaincopyset Axis_Lib=F:\axis1.4\axis\WEB-INF\libset Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%set Output_Path=D:\Workspacesset Package=com.axis.su原创 2020-08-10 18:15:30 · 648 阅读 · 0 评论 -
记录 内网http 转为 https(tomcat版本)
内网http 转为 https内网项目启用Https配置手册软件需求:OpenSSL https://www.openssl.org/已经安装了Java Jdk环境制作前的需求:已经配置了Jdk环境变量安装好OpenSSL后配置了环境变量回到顶部开始制作CA根证书在任意盘符(我这里选择G盘)下新建一个文件夹 这里我建立一个ca的文件夹用来存储生成的CA证书回到顶部创建私钥生成私钥命令:openssl genrsa -out ca/ca-key.pem 1024回到顶部创建原创 2020-07-16 15:31:21 · 3197 阅读 · 4 评论 -
Springboot写导出excel
导出excel这里是写的一个日志记录列表导出的,其实都是一样的(java),,前端直接就是写个按钮调用接口就行。这里做个记录方便以后直接C+V @Autowired private ILogService @RequestMapping(value = "/export/excelDownloads", method = RequestMethod.GET) public void downloadAllClassmate(HttpServletResponse response) t原创 2020-07-16 14:09:24 · 307 阅读 · 0 评论 -
JVM学习之垃圾回收
如何确定一个对象是垃圾?对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其引用,它就是垃圾。通过GC Root的对象,开始向下寻找,看某个对象是否可达例子:opt2==引用—》引用其他对象—》其他对象person 只要这条链路上的对象被引用,那么就不能称他们为垃圾,即不可回收;一般情况下只针对堆进行垃圾回收。方法区、栈和本地方法区不...原创 2020-02-10 14:25:37 · 266 阅读 · 0 评论 -
JVM学习之 Java对象内存布局
Java对象内存布局一个Java对象在内存中包括3个部分:对象头、实例数据和对齐填充一块是非堆区,一块是堆区。堆区分为两大块,一个是Old区,一个是Young区。Young区分为两大块,一个是Survivor区(S0+S1),一块是Eden区。 Eden:S0:S1=8:1:1S0和S1一样大,也可以叫From和To。根据之前对于Heap的介绍可以知道,一般对象和数组的创...原创 2020-02-07 17:14:56 · 178 阅读 · 0 评论 -
JVM学习之运行时数据区(方法区、堆、虚拟机栈、本地方法栈、程序计数器)
运行时数据区(程序运行时在jvm的一个状态;内存模型(JMM:分为metaspace和heap))重点为 方法区、堆、虚拟机栈左边是线程共享的(方法区、堆),右边是线程私有的(虚拟机栈、本地方法栈、计数器)线程私有的生命周期都比较短Method Area(方法区)方法区是各个线程共享的内存区域,在虚拟机启动时创建。用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的...原创 2020-02-05 14:59:01 · 481 阅读 · 0 评论 -
20200119一家面试题(部分答案没有写之后再补)
spingboot 中的@configuration注解的作用和用法@Configuration注解主要用于定义配置类.可替换xml配置文件.被注解的类内部包含一个或多个被@Bean注解的方法.springboot 如何进行war包部署?代码要修改哪些地方?修改pom.xml的build部分<!-- maven打包的时候告诉maven不需要web.xml,否刚会报找不到web.x...原创 2020-01-19 19:34:48 · 317 阅读 · 0 评论 -
20200110一家面试题
1、如何对插入mysql数据的原数据进行加密,写出加密函数?加密:INSERT INTO t_pass_info(id,pass_info) VALUES (1,ENCODE(‘dong’,‘bb’));解密:SELECT DECODE(ENCODE(‘dong’,‘aa’),‘aa’);2、有数组a[n],用java代码将数组元素顺序颠倒public static void main...原创 2020-01-16 17:04:27 · 233 阅读 · 0 评论 -
20200109一家面试题
选择题1.关于java类中static成员和对象成员说法正确的是(C)A.static成员变量在对象构造时生成B.static成员函数在对象成员函数中无法使用C.虚成员函数不可能是static成员函数D.static成员函数不能访问static成员变量== 答案:c 解释,(1)类的static成员变量属于该抽象类,需要在类定义时初始化,不可以在对象的构造函数中初始化。(2) st...原创 2020-01-15 16:38:08 · 366 阅读 · 0 评论 -
java取json 的方法
public static void main(String[] args) { String jsonStr = "[{\"varieties_type\":\"中证500指数\",\"open_granary\":\"0.0002\",\"close_granary\":\"0.0015\",\"days_close_granary\":\"0.00006\",\"delivery_gran...原创 2020-01-14 08:47:54 · 288 阅读 · 0 评论