![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
龙贝子
软件工程师/项目管理
展开
-
Java开发框架和中间件面试题(1)
10,如果在中指定了该Bean的作用范围为scope=“singleton”,则将该Bean放入SpringIoc的缓存池中,将触发Spring对该Bean的生命周期管理,如果在中指定了该Bean的作用范围为scope=“prototype”,则将该Bean交给调用者,,调用者管理该Bean的生命周期,Spring不再管理该Bean。IOC(控制反转)是一种设计思想,就是将本来在程序中手动创建对象的控制权,交给IOC容器来管理,并由IOC容器完成对象的注入。原创 2023-12-20 18:21:26 · 1056 阅读 · 0 评论 -
SpringBoot maven打包将本地jar打包进项目
SpringBoot maven打包将本地jar打包进项目原创 2023-02-22 17:27:02 · 459 阅读 · 0 评论 -
Navicat将表生成pdm文件
Navicat将表生成pdm文件原创 2023-02-22 17:06:47 · 3238 阅读 · 0 评论 -
MyBatis 存储过程
MyBatis 存储过程原创 2023-02-20 14:13:04 · 456 阅读 · 0 评论 -
SpringBoot过滤controller路径的类
SpringBoot过滤controller路径的类原创 2023-02-16 15:14:37 · 380 阅读 · 0 评论 -
Postgresql 的字符串转数组
Postgresql 的字符串转数组原创 2023-02-16 08:44:01 · 2145 阅读 · 0 评论 -
SpringBoot的url重定向和转发实现
【代码】SpringBoot的url重定向和转发实现。原创 2023-02-14 16:38:10 · 1044 阅读 · 0 评论 -
Zookeeper配置化中心
zookeeper的基本知识 zookeeper的数据结构:zookeeper提供的命名空间非常类似于标准的文件系统,key-value的形式存储,名称key由/分割的一系列路径元素,zookeeper名称空间中的每个节点都是一个路径标志。 windows下的zookeeper安装: 在官网下载安装包,解压到本地目录文件夹下面,官网路径:https://zookeeper.apache.org/releases.html#releasenotes 修改配置文...原创 2023-02-14 16:32:15 · 591 阅读 · 0 评论 -
SpringBoot的日志lombok
lombok的日志使用方法原创 2023-02-14 14:25:14 · 165 阅读 · 0 评论 -
SpringBoot的定时任务实现--SpringTask
SpringBoot的定时任务实现--SpringTask原创 2023-02-14 09:11:59 · 764 阅读 · 0 评论 -
idea的git的规范化提交插件
如何在idea中使用git提交代码的时候更加规范化?原创 2023-02-13 17:30:22 · 3543 阅读 · 0 评论 -
定时任务-cron表达式
cron表达式用于配置cronTrigger的实例。cron表达式实际上是由七个表达式组成。这些表达式之间用空格分隔。 1.Senconds (秒) 2.Minutes (分) 3.Hours(小时) 4.Day-of-Month (天) 5.Month (月) 6.Day-of-Week (周) 7.Year (年)例如:“0 0 12 ? * WED” 意思是:每个星期三的中午12点执行个别子表达式可以包含范围...原创 2021-08-23 17:47:11 · 1925 阅读 · 0 评论 -
Git提交信息规范
当我们编写完代码 ,提交到远程仓库的时候,一般会用到git提交。commit之前需要写commit message,对应的类型有:build:影响构建系统或者外部依赖关系的更改ci:更改我们的持续集成文件和脚本docs:仅文档更改feat:一个新功能fix:修复错误perf:改进性能的代码更改refactor:代码更改,既不修复错误也不添加功能style:不影响代码含义的变化(空白,格式化,缺少分号等)test:添加缺失测试或更正现有测试...原创 2021-08-16 17:00:36 · 206 阅读 · 0 评论 -
Redis的Redisson以及redis集群
1.程序化配置集群的用法:Config config = new Config();config.useClusterServers() .setScanInterval(2000) // 集群状态扫描间隔时间,单位是毫秒 //可以用"rediss://"来启用SSL连接 .addNodeAddress("redis://127.0.0.1:7000", "redis://127.0.0.1:7001") .addNodeAddress("redis://127.0.原创 2021-04-12 17:35:53 · 2405 阅读 · 0 评论 -
Redis安全
我们通过配置文件或者命令config来配置redis的密码,使得redis更加的安全。config get requirepass 获取当前的密码值config set requirepass 密码 设置密码值或者修改配置文件redis.conf的配置项requirepass设置密码以后,如果修改的是配置文件需要重启服务,redis-server redis.conf 命令重新启动服务客户端连接:redis-cli -h 127.0.0.1 -p ...原创 2021-04-08 16:03:47 · 79 阅读 · 0 评论 -
Redis数据的备份与恢复
命令save 或者 bgsave(保存在后台运行) 用于创建当前数据库的备份。数据的恢复:如果要恢复数据,只需要将备份文件dump.rdb移动到redis的安装目录并启动服务即可。获取redis目录可以使用CONFIG命令。config get dir...原创 2021-04-08 15:47:39 · 135 阅读 · 0 评论 -
Redis的sessionCallback接口
redisTemplate.opsForValue().set("myKey_one", value); redisTemplate.opsForValue().set("myKey_two", value);上面的命令其实是redis的两个连接,上面是开启了两个连接去分别执行命令。sessionCallback接口是一个批处理的接口,通过这个接口就可以把批量的命令放到redis的一个连接去执行。可以使用同一个连接去执行批量的命令。 public void testSessi...原创 2021-04-07 16:35:23 · 1734 阅读 · 0 评论 -
Redis的配置redis.conf解析
redis的配置放在redis.conf文件中,如果是windows系统的话,文件的名称是redis.windows.conf。修改文件的配置可以通过命令config set或者直接修改文件。config get *表示获取所有文件的配置。config get 某个name 表示获取单个配置项的信息config set 参数项名称 参数项值eg. config set loglevel noticeredis.conf配置项的说明如...原创 2021-04-07 10:52:01 · 163 阅读 · 1 评论 -
redis的discard
discard在使用中,如果multi开启事务,命令入队,直接discard的话,所有的命令都会回滚。如果multi开启事务,命令入队,命令执行exec之后,就会出现有的命令能执行成功,有的执行不成功的情况。...原创 2021-04-06 17:52:20 · 640 阅读 · 0 评论 -
Redis
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中。如何判断redis是否连接成功?如果返回PONG则表示连接成功。redis配置config命令config get * 获取所有的配置项你可以通过修改 redis.conf 文件或使用CONFIG set命令来修改配置。redis支持的日志级别:指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verboseloglevel ...原创 2021-04-06 16:34:29 · 213 阅读 · 0 评论 -
redis事务的spring注解实现方式
一.redis的事务redis的事务命令:multi 开启事务exec 执行事务discard 丢弃事务watch 监听从redis官网下载redis的压缩包,在windows系统下打开cmd,开启服务器端,切换到bin目录下,输入命令:redis-server.exe redis.window.conf开启服务端的redis,打开cmd,输入命令redis-cli -h 127.0.0.1 -p 6379然后: auth 密码连接到服务器端的...原创 2021-04-01 11:15:05 · 217 阅读 · 0 评论 -
Guava缓存的过期
Guava缓存是谷歌的一种本地缓存,缓存是通过使用本机的内存来存储的,实现原理类似于ConcurrentHashMap,Guava适用于以下的场景:1.消耗内存空间来提升速度2.你预料到某些键会被查询一次以上3.缓存中存放的数据总量不会超出内存的容量缓存回收1.基于容量的回收CacheBuilder.maximumSize(long)这种回收方案使用的策略是LRU算法。LRU算法(Least recently used,最近最少使用)根据数据的历史访问记录来进行淘汰数据,原创 2021-03-24 16:01:24 · 2816 阅读 · 0 评论 -
EasyExcel的导入导出(最新版)
之前做过一个关于配货单的导入和导出,导出使用的POI实现的,当数据量很大的时候,尤其是双十一或者年货节的时候,订单的量很大相应的配货单的量就非常大,这时候导出的话就经常会出现OOM异常,或者某个字段的空指针异常。EasyExcel是阿里开源的导入导出工具,可以解决内存异常的导出问题。easyExcel是一个基于Java的简单省内存的开源项目。在尽可能节约内存的情况下支持读写百M的Excel,github的地址:导入依赖:<dependent> <groupId>原创 2021-03-23 17:35:26 · 1106 阅读 · 0 评论 -
“com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input\n
异常:"com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input\n导致原因:接口传值和后端接收的值不匹配导致的。原创 2021-03-22 17:45:03 · 3726 阅读 · 0 评论 -
三目运算符和赋值运算符的优先级
今天在看关于项目的代码,看到某一行代码时我突然犹豫了,password = password == null ? "" : password;这行代码是三目运算符和赋值运算符的运用,我当时想起了大二时候考C语言二级时候的知识,让我很是怀疑这种写法。后来搜索资料,总结如下: 运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ -- +(一元运算) -(一元运算) 从右向原创 2021-03-22 17:30:37 · 1547 阅读 · 0 评论 -
java.lang.NegativeArraySizeException
如果应用程序尝试创建负大小的数组,则抛出该异常。原创 2021-03-18 17:40:05 · 871 阅读 · 0 评论 -
国产加密算法SM4实现(Java)
最近的项目需要用到SM4算法来进行加密和解密,所以研究了一下记录在下:一.SM4简介:SM4是一种我国采用的一种分组密码标准,由国家密码局由2012年发布。分组加密(英语:Block cipher),又称分块加密或块密码,是一种对称密钥算法。它将明文分成多个等长的模块(block),使用确定的算法和对称密钥对每组分别加密解密。分组加密是极其重要的加密协议组成,其中典型的如DES和AES作为美国政府核定的标准加密算法,应用领域从电子邮件加密到银行交易转帐,非常广泛。国密即国家密码局认定的国产密原创 2021-03-18 15:15:32 · 8302 阅读 · 1 评论 -
工厂模式的实现应用
工厂模式的介绍详细参考https://www.runoob.com/design-pattern/factory-pattern.html工厂模式的理念应用工厂模式实现的是生成不同的产品,也就是不同的类的实例。在项目的开发过程中我们可能并不需要使用到类的实例,而是根据不同的情况去调用不同的方法来实现类似的功能,这样子我们就需要类工厂模式的理念来实现。工厂里面是根据不同的条件去创建不同的产品(也就是不同的类的实例的创建)抽象工厂模式也是去生产产品,是在工厂模式的基础上做的更容易的扩展。原创 2021-03-18 10:44:49 · 171 阅读 · 0 评论 -
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with pad
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher异常是AES加密解密的报错异常,在向方法传输参数进行解密的过程中会报错,AESUtils 工具类:package ctd.util.codec;import com.fasterxml.jackson.databind.ObjectMapper;import ctd.util原创 2021-03-17 16:59:42 · 11789 阅读 · 1 评论 -
Java第一阶段-22Java NIO
一、NIO1.定义 NIO是面向缓冲区的流, 我们将数据和缓冲区通过一根管道连接起来,然后我们对缓冲区中的数据进行操作了 NIO是双向的流, 也就是说,这个缓冲区既可以存储又可以输出 NIO是非阻塞的, 通道建立之后,就会自动的读或取了,这就意味着一个线程可以管理多个流通道 NIO在解析数据的时候非常麻烦, 但适用于高并发小流量的场景,如聊天服务器 二、Buffer(缓冲区)1.定义因为NIO主要就是对缓冲区进行操作,所以,这个至关重要2.分类原创 2021-03-10 17:15:46 · 93 阅读 · 0 评论 -
Java第一阶段-23枚举反射动态代理
一、枚举1.定义枚举是一个概念,列举的意思,将所有的情况都列举出来那么取值的时候只能是这几种情况的一种,不能是别的。在java中枚举可以理解为有限制的多例,在当前类中定义多个实例供别人使用2.应用场景 一个星期只有七天,我们就可以把这些字符串装在一个数组或者集合中供我们使用(这也是枚举),但是扩展性非常差,比如,我们想显示英文的就必须重写一次,使用枚举类来实现,就是将变量放到一个类中,然后限制的定义几个对象使用。3.格式 空参构造的枚举类(没有意义)public cl..原创 2021-03-09 22:15:03 · 184 阅读 · 0 评论 -
Java第一阶段-03Java控制语句
一、控制语句1.定义 一个程序,想要更加健壮,就必须能够应对各种各样的状况,根据实际情况来判定直接结果。 所以,对于程序也应该是根据不同的情况来执行不同的顺序和语句。 控制语句就可以控制流程的走向和顺序2.分类 顺序结构 选择结构 循环结构二、顺序结构1.定义按照生活中的习惯,从上往下,依次执行2.演示public static void main(String[] args) { //程序会从上往下依次执行 System.out.p原创 2021-03-09 21:36:12 · 74 阅读 · 0 评论 -
Java第一阶段-02Java数据类型
一、常量1.定义 在程序执行过程中其值不可以发生改变 常量就是指我们生活中用的数值,字母等 常量无法被改变,一旦改变,其意义也随之被改变 2.分类 字面值常量 自定义常量 3.字面值常量 字符常量 : 用单引号括起来的内容 字符串常量 : 用双引号括起来的内容 整数常量 : 所有的整数 小数常量 : 所有的小数 布尔常量 : 比较特殊, 只有true 和 false 空常量 : null 4.演原创 2021-03-09 20:40:08 · 57 阅读 · 0 评论 -
Java第一阶段-01JDK的下载和安装以及环境变量的配置
一、JDK的下载和安装(重点) 浏览器打开http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html(或者浏览器搜索java) 选在适合当前系统平台的版本 点击运行java安装程序 这里要注意了, 安装的时候有两步动作(安装JDK和安装jre) JDK是开发者环境, 包含JDK, JRE只是运行环境, 所以我们只需要安装JDK就可以了 ...原创 2021-03-09 20:11:03 · 137 阅读 · 1 评论 -
Java8 Optional 方法总结
预留原创 2021-03-09 14:17:25 · 177 阅读 · 0 评论 -
Java8时间专题总结
预留原创 2021-03-09 10:06:58 · 70 阅读 · 0 评论 -
idea断点里没有对号问题解决(断点是红色的里面没有对号)
在idea调试的过程中,经常会遇见打断点出现断点是红色但是里面没有对号的情况,这种情况下的断点是无效的,程序执行到这个地方不会停下来。原创 2021-03-04 14:23:38 · 7326 阅读 · 2 评论 -
request.getContextPath()的使用方法
问题起源来自一个如下的代码的提问,查阅资料,总结如下:String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";总结一下request的常用用法:request.getSchema()可以返回当前页面使用的协议,http 或是 https;request.ge.原创 2021-03-03 13:23:39 · 1387 阅读 · 0 评论 -
微信公众号开发:如何获取openId(最简单的方式)
最近的项目涉及到微信公众号的开发,必然要涉及到微信公众号的openId的获取,以及appId的获取,appId的获取很简单,但是如何才能获取到openId呢? 我找到了一种最简单的获取方法,整理如下: 注册自己的微信公众号,在微信开放平台登录自己的微信公众号,然后打开测试号管理界面,如下,微信号就是显示的openId,到目前我们就很容易的找到openId啦。 ...原创 2021-03-02 16:11:11 · 3541 阅读 · 0 评论 -
Java对接微信公众号模板消息推送,实现消息推送功能(最简单的实现方法)
1.业务需求 为什么要使用微信的模板消息推送,最近有个需求是将消息推送到微信公众号,之前的系统已经支持邮箱和短信推送消息。微信的模板消息推送就是我们在订阅某个公众号以后,进行支付等操作时,支付成功以后,公众号会返回给你的消息提示。...原创 2021-03-02 13:30:53 · 4931 阅读 · 1 评论