
java
智航云科技
学如逆水行舟,不进则退
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
macOS 安装JDK17
近期找开源软件,发现很多都已经使用JDK17+springboot3 了,之前的JDK8已经被替换下场,所以今天就在本机安装了JDK17,拥抱变化。JDK 17 是 Java 平台标准版(Java SE)的一个功能发布版本,于2021年9月14日正式发布。原创 2025-01-18 11:25:46 · 8686 阅读 · 1 评论 -
深度学习设计模式之代理模式
代理模式是结构型设计模式,主要是为其他对象提供一种代理以控制对这个对象的访问。代理模式(Proxy Pattern)是一种常用的设计模式,属于结构型模式之一。它为另一个对象提供一个代替或占位符对象,以便控制对它的访问。代理模式中客户端不直接调用实际的对象,而是通过调用代理间接性的调用实际的对象。原创 2024-07-12 08:30:00 · 526 阅读 · 0 评论 -
WEB项目通过浏览器打开windows上的exe应用
通过本次需求,学到了浏览器打开exe应用的技术,收益颇多。大家有类似需求的快试试吧。原创 2024-07-02 15:36:58 · 5166 阅读 · 0 评论 -
java base64字符串与图片互相转换
base64字符串与图片转换原创 2022-06-02 10:17:33 · 455 阅读 · 1 评论 -
NACOS配置中心设置配置文件
在nacos配置中心新增配置登录nacos后 配置列表点击 加号编辑配置信息 提交其中注意Data ID 的命名规则${prefix}-${spring.profile.active}.${file-extension}- prefix 默认为所属工程配置spring.application.name 的值(即:nacos-provider),也可以通过配 置项 spring.cloud.nacos.config.prefix来配置。- spring.profiles.active=dev原创 2022-05-14 23:42:27 · 7984 阅读 · 1 评论 -
SpringBoot 集成Apollo
一、准备工作1.1 JavaApollo服务端:1.8+Apollo客户端:1.7+由于Quick Start会在本地同时启动服务端和客户端,所以需要在本地安装Java 1.8+。1.2 MySQL版本要求:5.6.5+Apollo的表结构对timestamp使用了多个default声明,所以需要5.6.5以上版本。1.3 下载Quick Start安装包https://github.com/nobodyiam/apollo-build-scripts1.4导入SQL文件到数据原创 2021-07-17 11:15:27 · 463 阅读 · 1 评论 -
knife4j入门
偶然在公众号看到大佬发的文章,看到了这个knife4j 感觉很不错,就上手尝试了下,果然非常好用,界面很好看,集中了postman和Swagger的一些优点,支持接口文档生成与导出,支持配置全局变量等等。。。使用springboot集成knife4j如果使用Knife4j2.0.6及以上的版本,Spring Boot的版本必须大于等于2.2.x所以本次演示使用了2.2.1版本的spring Bootpom引入 <!--使用Knife4j2.0.6及以上的版本,Spring Boot的版本必原创 2021-07-17 09:47:40 · 3407 阅读 · 1 评论 -
定时任务管理工具 xxl_job 的使用
一、首先到码云里面把代码给下载下来https://gitee.com/xuxueli0323/xxl-job然后在doc/db/tables_xxl_job.sql将数据库表运行到本地数据库中然后将代码导入到IDE中项目结构如下:xxl-job-admin:调度中心xxl-job-core:公共依赖xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器) :xxl-job-executor-s原创 2021-07-11 11:06:06 · 779 阅读 · 1 评论 -
java异常级别与捕获
这个是jdk 1.8文档中异常的种族描述可以看出Java异常体系的根类是 Throwable, 当在java代码中写throw抛出异常时,后面跟的对象必然是Throwable或其子类的对象。然后往下又分为 Exception(异常) 和 Error其中Exception异常是指一些可以恢复的异常, 例如常见的NullPointerException空指针异常。Error指的是一些致命的错误,无法通过程序代码手段恢复的异常,例如OutOfMemoryError内存溢出错误。如果能善用异常机制那么代原创 2021-07-11 10:20:42 · 854 阅读 · 2 评论 -
CSV文件上传解析
上传CSV文件代码如下引入POM <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <group原创 2021-06-27 11:32:50 · 627 阅读 · 0 评论 -
java 分组读取配置信息
如果在项目中有多个系统对接,每个系统有一套配置文件,例如:加解密密钥,唯一标识,系统地址等等这个时候如果在使用时候1个1个的读取会很混乱,所以可以通过配置按照不同系统配置获取代码如下:配置文件channel: config: keys: gwh: name: lisi age: 20 number: gwh tk: name: zhangsan age: 22 number: tk配置信息实体原创 2021-06-07 23:51:09 · 237 阅读 · 1 评论 -
java 使用 Hibernate Validator完成参数必输校验
Hibernate ValidatorWhathibernate-validator 是 hibernate 组织下的一个开源项目 。hibernate-validator是 Jakarta Bean Validation 3.0.规范的实现。Jakarta Bean Validation 3.0定义了一个实体和方法验证的元数据模型和 API。通过使用注解的方式在对象模型上表达约束以扩展的方式编写自定义约束提供了用于验证对象和对象图的API提供了用于验证方法和构造方法的参数和返回值的API原创 2021-06-07 23:43:05 · 743 阅读 · 3 评论 -
@Value方法后面加:null
:null 如果没有找到该信息运行时不做校验获取值时显示为null,如果有的话正常返回就是说如果在参数后面加了:null如下:去启动项目的时候,会到配置类中加载参数,如果可以加载到数据就取配置参数,没有就取null测试代码如下:配置类ymltestUser: name: zhangsan sex: 男 age: 18controllerimport org.springframework.beans.factory.annotation.Value;原创 2021-06-06 22:06:20 · 699 阅读 · 0 评论 -
Java封装OkHttp3工具类
如下:Maven项目在pom文件中引入jar包<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.10.0</version></dependency><dependency> <groupId>com.alib转载 2021-06-06 21:57:52 · 528 阅读 · 0 评论 -
根据图片url获取图片信息并返回MultipartFile
在图片上传的过程中,如果是三方接口对接,在传输图片的过程中,其第三方很可能会给一个图片的基本信息,比如:文件名称,类型,url等等,这个时候我们需要接收到他的数据展示到我们的业务平台上面,但是,业务平台展示图片的时候需要从文件管理系统中取数据,这个时候就需要我们在接收数据的时候就根据其url将其拉取下来,并传输至文件系统中代码如下:import lombok.extern.slf4j.Slf4j;import org.apache.commons.fileupload.FileItem;import原创 2021-06-06 21:44:45 · 2799 阅读 · 0 评论 -
List 去除重复数据的几种方法
使用LinkedHashSet使用jdk1.8新特性distinct利用List的contains方法循环遍历去重代码如下package com.example.demo.test;import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedHashSet;import java.util.List;import java.util.stream.Collectors;/** * list .原创 2021-05-26 23:21:59 · 275 阅读 · 0 评论 -
springboot整合actuator监控
Spring Boot Actuator就是一款可以帮助你监控系统数据的框架,其可以监控很多很多的系统数据,它有对应用系统的自省和监控的集成功能,可以查看应用配置的详细信息,如:显示应用程序员的Health健康信息显示Info应用信息显示HTTP Request跟踪信息显示当前应用程序的“Metrics”信息显示所有的@RequestMapping的路径信息显示应用程序的各种配置信息显示你的程序请求的次数 时间 等各种信息Actuator是一个非常强大的监控工具使用Actuator需要先原创 2021-05-15 16:50:14 · 322 阅读 · 0 评论 -
idea中使用jetty启动项目
使用idea新建一个maven webapp项目然后引入依赖 jetty重要配置在此配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0原创 2021-04-17 00:43:56 · 3353 阅读 · 1 评论 -
java提取出一个字符串里面的Double类型数字
提取java字符串中的数字,再与SAP系统对接的过程中,有一个规格参数的字段,因为该字段是varchar类型的,所以那边传过来的数据可能就没有按照固定的数字规则来传,传过来的是一串字符串,后期我们用这个参数的时候,转换数字就转换类型错误,向SAP反馈,那边说,没法处理,无奈只能找了个方法进行二次处理代码如下:import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util原创 2021-04-13 11:51:41 · 1540 阅读 · 0 评论 -
java注解实现AES base64加解密
昨天学习了反射与注解,因为公司使用的是AES base64加解密进行数据规则脱敏的,今天就抽空使用注解做了个简单的Dome代码 如下:注解代码import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * Aes加解密方法 */原创 2021-02-24 23:18:04 · 1064 阅读 · 1 评论 -
java class 反射机制 学习
class 反射机制:JAVA 的反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息及动态调用对象方法的功能称为 java 语言的反射机制。框架与反射框架:半成品软件,可以在框架的基础上进行开发,而框架本身不能运行反射:反射是框架的灵魂,将类的各个组成部分封装为其他对象反射的好处:可以在程序运行的过程中去操作对象,字节码文件,不需要重新编译,提高程序扩展性,复用性,解耦代码练习:public cla原创 2021-02-23 22:55:10 · 194 阅读 · 0 评论 -
spring boot 整合 druid 监控界面
上篇文章说了,使用mysql 配置慢日志来截获 查询较慢的SQL 进行优化,这篇就讲一下使用开源的工具druid 来实现具体的效果druid 是阿里的数据库连接管理工具类,今天使用spring Boot 与之整合,具体代码如下:引入依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter&.原创 2021-02-20 23:03:09 · 398 阅读 · 0 评论 -
设计模式之策略模式
策略模式,对当前发生的问题可以有对应的解决方案例如超市活动:package com.example.demo.pattern.strategy;//先定义一个现金收费策略的抽象类,当然如果使用接口也可以public abstract class CashSuper { public abstract double acceptCash(double money);}package com.example.demo.pattern.strategy;//这是满**返**的具体策略类原创 2021-02-19 00:13:03 · 177 阅读 · 3 评论 -
设计模式之备忘录模式
备忘录模式(Memento Pattern)又叫做快照模式(Snapshot Pattern),属于行为型模式。备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。设计模式中的备忘录模式可以类比现实中的备忘录。现实生活中的备忘录是用来记录某些要去做的事情,或者是记录已经达成的共同意 见的事情,以防忘记了。而在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对象的某 种状态,或者某些数据,当要做回退时,可以从备忘录对原创 2021-02-19 00:09:57 · 152 阅读 · 0 评论 -
设计模式之解释器模式
解释器模式(Interpreter Pattern)属于行为模式,它定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。解释器模式的四个角色AbstractExpression(抽象表达式):声明一个抽象的解释操作,这个方法为抽象语法树中所有的节点所共享。TerminalExpression(终结符表达式):实现与文法中的终结符相关的解释操作。比如 c = a + b,其中 a 和 b 就是终结符,而对应 a 和 b 的解释器就是终结符表达式。N原创 2021-02-19 00:06:31 · 116 阅读 · 0 评论 -
设计模式之代理模式
代理模式(Proxy),为其他对象提供一种代理,以控制对这个对象的访问。优点* 职责清晰。真实的角色就是实现实际的业务逻辑,不用担心其他非本职责的事务。* 高扩展性。代理类完全可以在不做任何修改的情况下使用。代码如下:Subject是主题角色,定义了RealSubject和Proxy的共同接口package com.example.demo.pattern.Proxy;/** * Subject是主题角色,定义了RealSubject和Proxy的共同接口 */public abst原创 2021-02-18 23:59:25 · 114 阅读 · 0 评论 -
java 简单实现 本地文件上传下载 demo
单文件上传前端就是form表单用 < input type=“file”>表示客户端要上传文件,而服务端主要使用MultipartFile或者MultipartFile[]分别接收单个文件和多个文件。启动服务,浏览器访问,单图片上传链接,然后选择本地图片,然后提交上传目录为:显示上传已经成功多文件上传的时候,服务段接收的是一个数组选择多个文件然后点击提交文件下载 前台使用的是a标签来实现的,后台使用流的输入输出来实现混合文件上传这个和上面主要的区别就是函数中的原创 2021-02-14 22:02:03 · 1144 阅读 · 2 评论 -
Java8 的 StringJoiner类
StringJoiner是Java8新出的一个类,用于构造由分隔符分隔的字符序列,并可选择性地从提供的前缀开始和以提供的后缀结尾。省的我们开发人员再次通过StringBuffer或者StingBuilder拼接。测试代码如下:public class StringJoinerTest { public static void main(String[] args) { StringJoiner sj = new StringJoiner(","); sj.add原创 2021-02-14 21:26:13 · 135 阅读 · 0 评论 -
JAVA 读取本地json文件
代码如下package com.example.demo.test;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.parser.ParserConfig;import org.apache.commons.compress.utils.Lists;import j原创 2021-02-14 21:21:51 · 321 阅读 · 0 评论 -
java线程的三种创建方式
分别是:继承Thread类,实现Runnable接口,实现callable接口代码如下:package com.example.demo.test;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/** * 线程的创建方式 */public class ThreadNew { pub原创 2021-02-13 09:45:07 · 122 阅读 · 0 评论 -
java 多线程调用接口超时处理
设定规定业务接口执行不能超过设置的时长,如果超过时长则中断代码如下:package com.example.demo.test;/** * java 多线程调用接口超时处理 */public class JoinDemo { public static void main(String[] args) throws Exception{ Thread method = new Thread(new ThreadMethod()); method.sta原创 2021-02-13 09:41:40 · 1929 阅读 · 0 评论 -
Integer 类型的整数200与Integer 类型的整数200比较结果为false
Integer 类型的整数200与Integer 类型的整数200比较结果为false,但是Integer 类型的整数100与Integer 类型的整数100比较结果为true程序如下:public class IntegerComparison { /** * Integer 缓存是 Java 5 中引入的一个有助于节省内存、提高性能的特性。 * Integer中有个静态内部类IntegerCache,里面有个cache[],也就是Integer常量池,常量池的大小为一个原创 2021-02-13 09:38:06 · 1450 阅读 · 0 评论 -
java 数据库密码加密解密方法
代码如下:package com.example.demo.test;import com.alibaba.druid.filter.config.ConfigTools;import com.alibaba.druid.util.DruidPasswordCallback;/** * 数据库密码解密 */public class DruidPasswordUtil extends DruidPasswordCallback { public static void main(S原创 2021-02-13 09:34:25 · 1801 阅读 · 2 评论 -
双检测锁的单例模式
双检测锁(double check lock)单例模式,通俗来讲就是需要进行两次进行非空检测,并且需要加锁进行同步控制,是线程安全的单例模式实现方式之一其特点如下:一、构造方法私有化构造方法必须私有化,我们学习java时都只见过public修饰的构造方法,但是构造方法是允许用private修饰的。构造方法非私有化,会导致程序调用者可以私自调用构造方法实例化对象,从而破坏单例模式的特性。二、static关键字不能漏getInstance()方法用来获取单例,由于对象在类加载进来时是没有实例对象存在的原创 2021-02-13 09:32:31 · 4124 阅读 · 4 评论 -
java 封装继承和多态
继承有的时候客观事物之间就存在一些关联关系,那么在表示成类和对象的时候也会存在一定的关联。例如 猫它是动物,就具有动物的基本属性,当我们定义猫这个类时,有些动物属性我们没必要重复定义,只需要让猫这个类继承动物这个类就可以了。表现形式: A extends BA: 子类 、 派生类B: 父类 、 基类 、 超类子类继承了父类的什么?除 构造方法 外的所有东西 !!!this 和 super 关键字的区别?(面试)this 代表的是当前对象的引用 super 代表的是父类的引用构造方法原创 2021-02-12 23:51:45 · 162 阅读 · 0 评论 -
java 实现读取和导出EXCEL
二话不说,直接上代码导出excel 方法package com.example.demo.excel;import com.sun.javafx.css.Rule;import org.apache.poi.hssf.usermodel.*;import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import org.slf4j.Logger;import org.slf4原创 2021-02-12 23:25:46 · 734 阅读 · 1 评论 -
java 实现随机派发红包
新年到,发红包,下面是java 简单实现群主派发红包的功能:具体实现代码如下:定义用户主类:package com.example.demo.redEnvelopes;import java.math.BigDecimal;/** * 用户主类 */public class User { // 定义两个私有属性 private String name; private BigDecimal leftMoney; public String getName(原创 2021-02-12 23:16:26 · 903 阅读 · 1 评论 -
junit单元测试时spring的@Autowired注入为空
spring进行测试junit测试的时候,注入的bean为null,是因为bean是交给Spring来管理的,但是你只是单纯的启动了一个test方法,并没有注入bean,所以为空解决:需要增加注解@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = { "classpath:conf/spring-context.xml" }) locations :填写的路径是你的spring上下文控制的配置文件测试原创 2021-01-19 23:33:15 · 3693 阅读 · 1 评论 -
日志框架学习
新建测试类,导入slf4j jar包import org.junit.Test;import org.junit.runner.RunWith;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;原创 2020-12-26 23:05:39 · 114 阅读 · 0 评论 -
lambda表达式对两个List进行循环,根据符合条件,进行相关的赋值操作
代码实现:package com.gwh.pojo;/** * 学生 */public class Student { //学号 private String number; //班级 private String clazzNo; //姓名 private String name; //年龄 private int age; public Student(String number, String name, int a原创 2020-08-31 20:19:07 · 2561 阅读 · 0 评论