
java
文章平均质量分 64
来杯咖啡吧
子非我鱼
你非我,安知你知我之乐!
展开
-
使用nacos作为注册中心实现@FeignClient
创建两个工程,一个接口提供者,一个接口调用者接口提供者环境准备1,pom.xml <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <!-- Spring Cloud 版本信息 --> <sp原创 2021-08-23 16:28:09 · 6237 阅读 · 0 评论 -
java使用freemarker实现word下载
注意:当前模板其实你可以认为是我们已经想要的最终效果,而有些内容我们需要设置成动态的,所以等会儿我们需要将要动态发生的数据使用${属性名}进行替换,我这里是为了等会替换方便,知道m1,m2…….需要用那些属性替换,实际应用的时候根据个人方便进行设计。图片在xml模板文件是以bsea64的字符串显示的,将替换成${picture}我之前是为了方便替换,m1用那个字段属性替换,你们根据实际应用来。就是那些是需要动态发生的数据,我们将实体类的字段进行替换,比如。controller逻辑代码。原创 2023-02-07 17:34:17 · 9877 阅读 · 0 评论 -
java实现163或qq邮箱发送
登录163邮箱(没有注册),找到设置,然后点击POP3/SMTP/IMAP。进入到这个界面之后,这里有两个服务,我们开启第一个即可,点击开启。然后弹出以下界面,通过扫描二维码发送短信,然后点击我已发送。看到以下界面,就说明我们的服务启动成功了,点击确定。拿到授权码,然后在代码中引用。开启IMAP/SMTP服务。弹出以下窗口,点击继续开启。原创 2022-08-22 05:00:00 · 2149 阅读 · 1 评论 -
使用反射实现动态修改@Excel的注解属性
业务场景我们使用poi实现数据导出时,通常是根据@Excel(name=“xxx”)来确定列名。通常情况下这个是不会发生变动的。但这里就说少数情况,在我们需要这里根据某些情况来进行改变的时候,我们就需要用到反射。......原创 2022-07-26 14:32:49 · 4944 阅读 · 2 评论 -
java获取当月日期和周末
java获取当月日期和周末原创 2022-07-21 15:30:31 · 2097 阅读 · 2 评论 -
java实现输入指定日期距离当前已过去多少时间
输入一个目标日期,获取距离目标已经过去多少天多少时多少分多少秒原创 2022-07-06 17:43:53 · 1688 阅读 · 0 评论 -
根据目标值获取一组数据中,离目标值最接近的数
算法原创 2022-06-02 17:56:06 · 534 阅读 · 1 评论 -
对HashMap的key进行排序
Hashmap排序原创 2022-06-02 17:53:39 · 3544 阅读 · 0 评论 -
判断对象属性值不为空字符串且不为null
判断对象属性值原创 2022-06-02 17:50:38 · 719 阅读 · 0 评论 -
Spring框架爆RCE 0day漏洞的临时解决方案
3月29日,Spring框架曝出RCE 0day漏洞。已经证实由于 SerializationUtils#deserialize 基于 Java 的序列化机制,可导致远程代码执行(RCE),使用JDK9及以上版本皆有可能受到影响。漏洞描述:作为目前全球最受欢迎的Java轻量级开源框架,Spring允许开发人员专注于业务逻辑,简化Java企业级应用的开发周期。但在Spring框架的JDK9版本(及以上版本)中,远程攻击者可在满足特定条件的基础上,通过框架的参数绑定功能获取AccessLogValve.原创 2022-03-30 16:18:19 · 739 阅读 · 0 评论 -
三种排名风格-实现对mysql查询结果进行处理
操作的表:user表数据:需求:我们需要对sex这个字段进行年龄排名,年龄小的在前,大的在后1,对使用sql语句对查询结果,添加一个序号这种方式是你已经用SQL处理好已经排好序的数据,单独加了一个序号的方式// (SELECT @i:=0)j 声明一个变量(注意,如果声明的变量是关键字则会异常),变量初始值为 0,每次让它+1// 声明一个变量 (@i:=@i+1)"字段”SELECT (@i:=@i+1)"序号", u.* FROM 表名 u,(SELECT @i:=0)j异常声明方原创 2022-03-23 19:16:23 · 1866 阅读 · 1 评论 -
统计list集合数值类型的最大,最小,平均,和
stream1,普通对象类型方式2,double类型方式3,含BigDecimal类型对象方式4,BigDecimal类型方式1,普通对象类型方式Apps.java@Data@EqualsAndHashCode(callSuper = false)@TableName("apps")public class Apps implements Serializable { private static final long serialVersionUID = 1L; priva原创 2022-03-22 09:52:37 · 1232 阅读 · 0 评论 -
springboot整合canal实现对mysql数据库实时监控
canalCanal介绍Mysql环境准备安装canalspringboot整合canalCanal介绍官网地址:https://github.com/alibaba/canalcanal [kə’næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大原创 2022-01-07 16:57:08 · 6283 阅读 · 0 评论 -
windows安装Git客户端与Toroise图像化工具
步骤1:运行“”,弹出以下窗口,点击Next步骤2:选择安装路径(自定义),点击Next步骤3:选择需要安装的组件(默认不进行操作),点击Next步骤4:选择开始菜单文件夹的名称(默认不操作,勾选复选框将不创建),点击Next步骤5:选择git使用的默认编辑器(默认不操作),点击Next步骤6:设置git初始的分支名称(默认不操作),点击Next步骤7:设置系统环境变量PATH(默认不操作),点击Next步骤8:选择SSH可执行文件(默认不操作),点击Next步骤9:选择HTTPS后端传输方原创 2021-12-31 17:01:43 · 1081 阅读 · 0 评论 -
批量上传text文件并获取所有内容
1,数据如下:2,代码实现需求如下,将上传的这两个文件的内容关联起来。lat.txt文件的第一条数据对应lon.txt文件的第一条数据,依次类推,总计(13345条) /** * 添加经纬度信息 * * @return */ @RequestMapping(value = "/addCoordinate", method = RequestMethod.POST) public Result<?> addCoordinate(H原创 2021-12-24 10:57:44 · 1095 阅读 · 0 评论 -
java实现获取text文本内容与获取整个文件夹下所有文件
获取单个文件的文本内容内容如下:代码实现: public static void main(String[] args) { String lat = ""; try { // 获取文件的所有内容 import org.apache.commons.io.FileUtils; lat = FileUtils.readFileToString(new File("C:\\Users\\Administrator\\De原创 2021-12-22 17:56:21 · 2326 阅读 · 0 评论 -
java实现word文档形式导出(含多级表头)
poi-tl(poi template language)是Word模板引擎,使用Word模板和数据创建很棒的Word文档。官网地址1,导入所需依赖 <!-- poi工具类--> <dependency> <groupId>com.deepoove</groupId> <artifactId>poi-tl</artifactId> &原创 2021-11-29 16:18:12 · 31097 阅读 · 0 评论 -
使用${}实现mysql的in语句拼接查询
1,将数组,转换成我们所需要的字符串 String[] arr = {"1","2","3"}; System.out.println(Arrays.toString(arr)); for (int i = 0; i < arr.length; i++) { arr[i] = arr[i].replace(arr[i], "'" + arr[i] + "'"); } String s = Arrays.toS原创 2021-11-12 15:59:09 · 2281 阅读 · 3 评论 -
windows安装jdk
1,查询本地电脑的系统版本2,去官网下载资源,我这里选择的是jdk-8u311-windows-x64.exehttps://www.oracle.com/java/technologies/downloads/#java83,双击jdk-8u311-windows-x64.exe进行安装点击下一步更改安装路径,如图所示选择安装路径,如图所示点击确定,如上图所示,点击下一步等待安装结束之后,直接关掉,不需要安装jre,因为jdk自带jre4,配置系统环境配置环境变量:右击“我的电脑”原创 2021-11-09 16:35:48 · 10470 阅读 · 2 评论 -
SpringBoot集成xxl-job管理定时任务
本地XXL环境搭建1,什么是XXLXXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。2,源码下载1,官网地址登录以下地址查询详细搭建步骤: https://www.cnblogs.com/xuxueli/p/5021979.html2,下载源码点开链接,负载https的地址,使用idea克隆项目,该项目是一个maven项目3,编译源码idea克隆完成后,打开File->Settings,去原创 2021-09-22 16:00:12 · 1831 阅读 · 0 评论 -
java实现不同数据库之间数据的迁移
1,DataMigration.javapackage com.myqxin.sx.common.utils;import java.sql.*;/** * @author: myqxin * @Desc: * @create: 2021-09-18 10:31 **/public class DataMigration { /** * 数据源 * * @return */ private Connection formConn(原创 2021-09-18 11:17:28 · 8055 阅读 · 1 评论 -
java实现Linux服务器下载文件到windows指定目录
废话不多说。来吧,展示!1,首先找到Linux服务器上想要下载的文件这里我想要下载一个文件名为myqxin.jpg的图片,文件路径为/home/Fileimg/myqxin.jpg2,windows上想要保存文件的位置(自定义)3,执行以下测试代码package com.czxy.music.web.test.day02;import ch.ethz.ssh2.Connection;import com.czxy.music.utils.RemoteCommandUtil;/**原创 2020-10-28 10:05:17 · 13839 阅读 · 32 评论 -
Springboot整合Drools规则引擎
1,导入所需依赖 <!--drools规则引擎--> <dependency> <groupId>org.drools</groupId> <artifactId>drools-compiler</artifactId> <version>7.10.0.Final</version> </depend原创 2021-09-13 14:50:37 · 1141 阅读 · 0 评论 -
HashMap根据value获取key
方式一 HashMap<String, String> map = new HashMap<>(); map.put("1","3"); map.put("2","2"); map.put("3","1"); String key = null; for(String getKey: map.keySet()){ if(map.get(getKey原创 2021-09-10 15:27:25 · 6978 阅读 · 1 评论 -
java中常用到的工具类使用
1,判断对象是否为空的常用工具类CollectionUtils.isEmpty(集合) // package org.spingframework.util;Objects.nonNull(对象) // package java.util;2,对象间的复制 BeanUtils.copyProperties(数据源, 新对象); // package org.springframework.beans;3,关于拼接字符串去掉最后一个符号的三种方式 StringBuffe原创 2021-09-10 15:04:06 · 3124 阅读 · 0 评论 -
java实现给图片添加文字或图片水印
package com.myqxin.sx.common.utils;import lombok.extern.slf4j.Slf4j;import javax.imageio.ImageIO;import javax.swing.*;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.OutputS原创 2021-09-03 14:22:13 · 2891 阅读 · 5 评论 -
java中的(强、软、弱、虚)引用
java中的引用类型1,强引用:2,软引用:3,弱引用:4,虚引用:引用队列(ReferenceQueue)JDK1.2 之前,一个对象只有“已被引用”和"未被引用"两种状态,这将无法描述某些特殊情况下的对象,比如,当内存充足时需要保留,而内存紧张时才需要被抛弃的一类对象。强、软、弱、虚在 JDK.1.2 之后,Java 对引用的概念进行了扩充,将引用分为了:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom原创 2021-08-26 10:14:50 · 273 阅读 · 0 评论 -
JAVA开发必会的简单优化方式(易学)
开发规范1,使用普通for循环遍历,应实现减少对变量的重复计算2,使用equals进行空字符判断时,应避免空指针异常(NullPointerException)3,尽量避免不必要的创建4,尽量使用移位代替 a/b 和 a*b5,尽量确定StringBuffer的容量6,尽量使用System.arraycopy ()代替通过来循环复制数组7,如果用到双层for循环,尽量使用[Map](https://blog.youkuaiyun.com/qq_45752401/article/details/109526381?sp原创 2021-08-24 14:43:18 · 767 阅读 · 0 评论 -
springboot使用RestTemplate实现远程调用服务
RestTemplate接口提供者环境准备1,application.yml2,提供接口,供以调用服务调用者环境准备1,导入所需依赖2,application.yml3,编写RestTemplateConfig代码示例及效果1,服务调用者接口示例请求:http://localhost:9013/user/test004 发送POST请求,添加用户请求:http://localhost:9013/user/test002 发送PUT请求,修改用户请求:http://localhost:9013/use原创 2021-08-23 11:31:02 · 3150 阅读 · 0 评论 -
java爬虫 (六) - Selenium(浏览器自动化测试框架)
1,Selenium(浏览器自动化测试框架)Selenium [1] 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),[Mozilla Firefox](https://baike.baidu.com/item/Mozilla Firefox/3504923),Safari,Google Chrome,Opera,Edge等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能原创 2021-07-28 16:12:27 · 1261 阅读 · 0 评论 -
使用@ControllerAdvice实现全局异常处理
1,定义统一返回封装类/** * 返回结果通用封装 */@Data//给set方法设置返回对象,返回对象就是自己本身@Accessors(chain = true)//使对象可以使用builder方式进行创建@Builder@ApiModel(value = "Result对象",description = "通用结果返回对象")public class Result<T> implements Serializable { private static final原创 2021-07-28 10:23:39 · 2013 阅读 · 0 评论 -
java爬虫(四)- WebMagic
WebMagic1. WebMagic 简介架构2,WebMagic的四个组件3,用于数据流传的对象4,导入所需依赖5,在resource目录创建一个log4j.properties配置文件,内容如下:6,抽取元素 Selectable7,简单小案例8,获取链接9,WebMagic 抽取结果10,使用Pipeline保存结果11,Spider12,爬虫配置 Site4. 爬虫分类通用网络爬虫聚焦网络爬虫增量式网络爬虫Deep Web 爬虫1. WebMagic 简介核心部分是一个精简的, 模块化的爬虫实原创 2021-06-30 16:51:37 · 1229 阅读 · 0 评论 -
java爬虫 (三)- 京东案例
1,导入数据库// 创建crawler数据库, 再创建表CREATE TABLE `jd_item` ( `id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键id', `spu` bigint(15) DEFAULT NULL COMMENT '商品集合id', `sku` bigint(15) DEFAULT NULL COMMENT '商品最小品类单元id', `title` varchar(100) DEFAULT NULL COM原创 2021-06-25 18:50:22 · 621 阅读 · 0 评论 -
java爬虫(二)- Jsoup
爬虫入门jsoup 介绍1,准备环境,导入所需依赖2,获取网页第一个title标签的文本内容3,jsoup解析字符串|文件4,使用dom 方式遍历文档5,使用选择器获取元素6,select选择器组合使用jsoup 介绍jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。jsoup的主要功能如下:从一个URL,文件或字符串中解析HTML;使用DOM或CSS选择器原创 2021-06-25 13:38:40 · 3022 阅读 · 0 评论 -
java爬虫(一) - HttpClient
爬虫入门网络爬虫简介为什么要学习爬虫下面演示httpClient方式普通 get 方式带参 get 方式普通 post 方式带参 post 方式创建连接池管理httpClient网络爬虫简介网络爬虫也叫网络机器人, 是一种可以按照一定规则自动采集互联网信息的程序或脚本, 爬虫一般分为数据采集, 处理, 储存三个部分, 从若干初始网页的URL开始抓取网页, 不断获取页面上的URL放入队列直到满足系统的一定条件停止为什么要学习爬虫可以实现私人的搜索引擎大数据时代获取数据源, 作数据分析可原创 2021-06-24 16:12:51 · 1293 阅读 · 0 评论 -
实现对java中的集合根据某个条件进行分组
准备数据UserInfo.java@Data@AllArgsConstructorpublic class UserInfo { private Long id; private String username; private String password;} ArrayList<UserInfo> userInfos = new ArrayList<>(); UserInfo user1 = new UserInfo(1原创 2021-05-18 16:06:04 · 3641 阅读 · 0 评论 -
java中集合对象与string互转的几种方式
方式一 Gson类 ArrayList<UserInfo> userInfos = new ArrayList<>(); UserInfo user1 = new UserInfo(1L, "子", "1234"); UserInfo user2 = new UserInfo(2L, "非", "4567"); UserInfo user3 = new UserInfo(3L, "我", "6789");原创 2021-05-17 13:57:34 · 6015 阅读 · 0 评论 -
BigDecimal加减乘除次方运算及比较大小
BigDecimal需要进行初始化,这里我对比两种初始化值的结果 BigDecimal big1 = new BigDecimal(0.05); BigDecimal big2 = new BigDecimal(10000); BigDecimal big3 = new BigDecimal(-10000); // 推荐使用string初始化,不会造成精度丢失 BigDecimal strbig1 = new BigDecimal("0.0转载 2021-05-14 11:30:12 · 1946 阅读 · 0 评论 -
java字符串拼接常用方式
方式一:+“+”,是java操作运算符比较常用的,也是简单直接的一直方式。 String aa = "魅言倾馨"; String bb = "子非我鱼"; System.out.println(aa+bb);方式二:StringBuilder.append()和StringBuffer.append()先有StringBuffer后有StringBuilder,两者就像是孪生双胞胎,该有的都有,只不过大哥StringBuffer,大部分方法都经过synchroni原创 2021-04-26 14:15:31 · 9213 阅读 · 0 评论 -
三种方式调用mysql存储过程
数据库直接创建使用存储过程创建存储过程DELIMITER $CREATE PROCEDURE 名称()BEGIN逻辑语句(可以一条或多条)END $示例:DELIMITER $CREATE PROCEDURE setUsername()BEGINupdate myqxin_user set username = '魅言倾馨' where id = 1;END $使用存储过程call setUsername() // setUsername就是上面创建的名称原创 2021-04-22 15:08:10 · 4154 阅读 · 1 评论