自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 自定义注解+AOP环绕通知(炸裂效果,1+1大于2)

自定义注解与AOP环绕通知,实现炸裂般的编程体验!通过自定义注解,我们能够为代码添加丰富的元数据信息,而AOP环绕通知则能够在不侵入原有代码逻辑的情况下,对特定方法进行拦截和增强。两者结合,将带来前所未有的编程灵活性和效率,让你的代码如同炸裂般精彩!

2024-04-13 19:01:47 273

原创 Spring ApplicationEvent 事件处理--不用引入中间件

Spring的ApplicationEvent机制提供了一种灵活且强大的方式来处理应用程序中的事件驱动场景。通过定义自定义事件、监听器和发布事件接口,可以方便地实现各种业务逻辑和流程。

2024-04-13 18:12:48 338 2

原创 403跨域,什么是跨域,如何解决。(CROS)

当请求的协议、域名、端口,任一不相同时就会出现跨域。当前URL被请求URL是否跨域原因否同源(协议、域名、端口都相同)是协议不同(http/https)是域名不同(www.abc.com/www.def.com)是端口不同(8080/8181)

2022-09-22 10:30:45 2720 1

原创 Spring Cloud Contract简单入门

Spring Cloud Contract 是一个包含解决方案的总括项目,可帮助用户成功实施消费者驱动的合同方法。目前 Spring Cloud Contract 由 Spring Cloud Contract Verifier 项目组成。Spring Cloud Contract Verifier 是一种工具,它支持基于 JVM 的应用程序的消费者驱动契约 (CDC) 开发。它附带了用 Groovy 或 YAML 编写的合同定义语言 (DSL)。

2022-09-14 14:56:06 1506

原创 提交代码必备,避免被同事嫌弃

feat: 新功能(feature)fix: 修补bugdocs: 文档(documentation)style: 格式(不影响代码运行的变动)refactor: 重构(即不是新增功能,也不是修改bug的代码变动)chore: 构建过程或辅助工具的变动revert: 撤销,版本回退perf: 性能优化test:测试improvement: 改进build: 打包ci: 持续集成...

2022-09-01 11:33:24 261

原创 hibernates使用雪花算法生成id

有一天接到一个开发任务,实现简单的CRUD,实现完自测一下,看到数据库中的id,很别扭。看了一下代码,马上决定着手修改。

2022-09-01 11:22:32 655

原创 nginx从安装到使用

一、Nginx安装以Linux系统为例:1、首先去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本,并上传到服务器上。2、准备工作(1)安装gccyum install gcc-c++(2)SSL 安全的加密的套接字协议层,https需要使用到,HTTP安全传输yum install -y openssl openssl-devel(3)PCRE库,用于解析正则表达式yum install -y pcre pcre-devel(4)

2022-02-22 22:28:28 175

原创 执行大SQL脚本

Windows 环境下mysql -uroot -p123456 -Dtestdb<C:Us\aaa\Desktop\test.sqlmysql命令 -u用户名 -p密码-D数据库 <导入的脚本“<” 不可省略,是将脚本指定导入对应的数据库Linux 环境下mysql -h 127.0.0.1-u root -p 回车后输入密码mysql -h IP -u root -puse testdbuse 指定数据库source /data/...

2021-11-13 14:50:41 1178

原创 BigDecimal 的常用加减乘除、比较大小

一、背景。在涉及金额或其他重要数据的计算建议使用BigDecimal,在这里就不延伸。BigDecimal 类型的计算和比较大小,和其他常用数据类型long、int不一样。二、正文加减乘除BigDecimal b1 = new BigDecimal("100"); BigDecimal b2 = new BigDecimal("10"); //加法BigDecimal add = b1.add(b2); System.out.println(add);//减法 Bi

2021-09-15 15:00:41 258

原创 mysql将字符串转换成数值

一、背景最近遇到一个需求,给某个字段进行排序,这原本是一再简单不过的事情。我兴高采烈地写好了代码,放到测试环境上一排序,什么鬼100在15后面。查看对应数据库存放的字段类型,我的天是varchar。二、解决方法有三种解决方法:1、字符串+0select * from testorder by (value+0) desc2、使用 CAST 函数select * from testorder by CAST(value as SIGNED) desc3、使用 CONVE...

2021-09-04 14:33:23 1282

原创 controller入参异常 No primary or default constructor found for class

一、记一次的常见报错java.lang.IllegalStateException: No primary or default constructor found for class java.time.LocalDateTime错误写法:@GetMappingpublic String query(LocalDate start,LocalDate end) { return "开始时间:"+start+" 结束时间:"+end;}该写法springMVC会默认根据参数名称“

2021-03-22 14:31:06 6977

原创 Netty实战流程(服务提供者)

一、配置文件application.properties添加配置#netty配置server.ip=127.0.0.1server.ip.port=6060二、创建NettyServer类@Slf4j@Componentpublic class NettyServer { @Autowired private ServerChannelInitializer serverInit; private final EventLoopGroup parentGroup =.

2021-03-18 16:07:53 256

转载 23种设计模式通俗理解

虽然有点污,但印象深刻。01 工厂方法追 MM 少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是 MM 爱吃的东西,虽然口味有所不同,但不管你带 MM 去麦当劳或肯德基,只管向服务员说「来四个鸡翅」就行了。麦当劳和肯德基就是生产鸡翅的 Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。02 建造者模式MM 最爱听的就是「我爱你」这句话了,见

2021-03-15 19:01:38 97

原创 nginx将post请求被转换为get请求

一、背景我的一个post请求在本地没问题,到线上一直出现调用失败。查看相关的日志也没什么发现,判断请求根本就没有进入到系统。边调用接口边看控制日志,一直提示“Request method 'GET' not supported”。百度了一下,很多人说将“location”和“proxy_pass”地址后的“/”去掉就可以,我平常配置都是有对应“/”,是没问题的。二、解决该请求方法是配置在“443”端口下的。于是将接口请求改为https,果然没问题了。其他很多博客都说去掉“location

2021-03-15 14:58:13 1465

原创 Redis分布式锁的实现

分布式锁应用场景秒杀活动如果没有分布式锁,可能会出详细超买的情况。即使在方法中使用了synchronized,在分布式的系统中还是会出现超卖,只有使用分布式锁才可以解决该问题。简单版分布式锁,存在缺陷超时时间不好设置。 @Autowired private StringRedisTemplate stringRedisTemplate; /** * 利用redis实现最简单的分布式锁(功能不够完善) * @return */ @RequestMapping("

2021-03-11 00:48:36 105

原创 spring aop实现接口请求记录

一、背景接到一个需求,记录每个用户,在系统进行的修改、添加和删除的操作记录。二、具体实现日志记录,与主业务没有直接联系,不进行业务处理,故符合spring aop面向切面的编程思想。所以采用aop,来完成这一任务。废话少说,直接上代码,代码参考了其他博主的文章,并结合自己的项目的实际情况进行修改。@Aspect@Component@Slf4j@Order(value = 3)//项目启动自动执行顺序public class ThirdApiRequestLogAspect{

2021-02-17 18:05:56 213

原创 根据数据库表名生成对应的bean及其相关接口、实现类、Mapper xml

一、背景项目开发中,经常会根据数据库表,创建对应的bean及其相关接口、实现类、Mapper xml。都是一个固定的格式,所以不如将其写成一个固定程序,每次生成执行一次即可。二、实现示例如下:public class Generator { /** * <p> * 读取控制台内容 * </p> */ public static String scanner(String tip) { S

2021-02-17 17:11:30 526

原创 mybatis-plus条件判断

EQ 就是 EQUAL等于NE就是 NOT EQUAL不等于GT 就是 GREATER THAN大于 LT 就是 LESS THAN小于GE 就是 GREATER THAN OR EQUAL 大于等于LE 就是 LESS THAN OR EQUAL 小于等于其他like、in。。。与SQL语句类似就不赘述。...

2020-12-24 14:46:04 19068

原创 springboot启动报错 Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded 。。

一、错误如下二、错误的原因项目启动是出现该错误的原因,SpringBoot@SpringBootApplication该注释会有数据库的自动配置,但在项目配置文件中没有找到相关的配置导致的。三、解决方法如果是配置错误修改配置就可以,如果是项目本身不需要数据库可以在@SpringBootApplication,加上exclude=DataSourceAutoConfiguration.class,排除数据库的自动配置类就可以了 ,如下所示:...

2020-10-22 14:59:59 276

原创 java使用hutool工具包实现发送邮件功能

一、背景检测项目运行状态,出现异常时,向项目负责人发送通知邮件。二、采用技术主要使用java的mail工具类和hutool工具包三、具体实现1、邮箱配置小编这个采用的是QQ邮箱,以QQ邮箱为例,设置大同小异。登录网页版的QQ邮箱后,点击设置点击账户找到相应的服务并开启,开启后会有对应授权码,后面代码实现会使用到,两种的授权码任选一种即可。2、引入对应的jar <!-- hutool工具包 --> <dependency&g.

2020-10-21 09:35:07 2535 2

原创 记一次dubbo超时设置踩坑

1、dubbo指定设置一个的方法的超时时间service注解必须是“com.alibaba.dubbo.config.annotation.Service”。getAllUser 和 getType 这两方法指定设置超时时间为3000毫秒,重试次数为0。很多大佬的博客中都有推荐这种做法,当我使用的dubbo版本为dubbo-2.6.2.jar时,却无法成功。启动就会报以下错误...

2020-10-12 12:46:21 392

原创 Windows服务器自启项目和各种服务

1、先写一个批处理的脚本@echo offC:cd C:\tools\zookeeper\binstart cmd /c "zkServer.cmd"cd C:\tools\Redisstart cmd /c "redis-server.exe redis.windows.conf"cd C:\test\spring_jarstart cmd /c "title gateway && java -jar test1-service-0.0.1.jar>./log

2020-10-10 15:40:38 406

原创 记一次Windows服务器踩坑

接收同事的项目,一直线上正常运行。由于服务器安全认证过期,运维修改后重启服务器,点击重启服务的脚本后,一堆服务启动失败。奇怪的是,对应的错误都访问不到对应的日志记录路径,而这些服务是没有修改过的,都是原本的。 一下子懵逼了,客户和领导在催,试了修改路径等很多的方法,都是不可以。最终决定修改,日志记录配置文件logback.xml。这个标签添加以下指定信息就可以了。<configuration xmlns="http://ch.qos.logback/xml/n...

2020-10-10 12:06:54 193

原创 java生成Excel方法

一、引入对应的包 <!-- poi读写Excel工具类 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.1</version> </dependency> <dependency> &lt

2020-10-08 13:02:38 182

原创 带有负载均衡的Nginx简单配置

废话不多说直接上配置文件#启动进程,通常设置成和cpu的数量相等worker_processes 1;#全局错误日志及PID文件error_log /var/log/nginx/error.log;pid /var/run/nginx.pid;events { worker_connections 1024;#单个后台worker process进程的最大并发链接数}#设定http服务器,利用它的反向代理功能提供负载均衡支持http{ #设定负载均衡

2020-09-30 10:41:46 83

原创 如何获取controller下的所有请求,进行权限管控

一、背景前端管控的权限,可以通过设置菜单是否可见进行权限管控。后端该如何动态管控接口的权限,通过该问题,从网上搜索了一下,并通过自己的设计思路,出了一套方案。方案不是很成熟,希望各位大佬能给予指正。二、具体实现1、系统启动,zhd...

2020-09-29 11:23:57 1003 2

原创 spring、springboot项目启动自动执行方法

一、背景为什么会有这个问题,是因为有些项目的配置,需要在启动项目的时候就需要配置好,例如一些配置初始化的到Redis或数据库。二、实现网上有很多的解决的方法,这里整理一种我个人觉得比较实用的方法。实现接口ApplicationRunner,在代码中实现接口的run方法,并在run方法中编写逻辑代码。该方法可以通过@order(value= 数字) 来控制执行顺序,顺序是依次从小到大执行@Slf4j@Order(value = 3)@Componentpublic class

2020-09-29 10:13:57 438

原创 java项目日志打印设置logback.xml

一、准备工作引入相关jar<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>org.proj

2020-09-26 17:12:28 366

原创 mysql 双主配置(互为主从)

记录一次mysql双主配置,新手配置很多不规范,欢迎大佬指正。一、准备工作本地搭建了两台Linux虚拟机,ContOS 7 64位。mysql使用mysql5.7.28,mysql数据库安装可以参考我写另一篇博客https://blog.csdn.net/Lin_Miao_09/article/details/108639713。服务器1ip为:192.168.22.88服务器2ip为:192.168.22.89二、配置过程修改/etc/my.cnf配置文件,按mysql读取配置文件

2020-09-23 18:18:45 574

原创 Linux下CentOS7安装redis-5.0.7

一、简介本文将总结在Linux下安装redis的过程,小编用的CentOS 7,redis的版本redis5.0.7。二、安装步骤1、首先到官网下载redis-5.0.7.tar.gz文件,下载地址为:https://redis.io/download2、先新建一个目录并将,下载好的压缩包传到服务器上mkdir rediscd redis/3、解压缩redis-5.0.7.tar.gz tar -zxvf redis-5.0.7.tar.gz 4、进入解压好的目

2020-09-17 16:24:41 207

原创 Linux 开放防火墙端口号

以小编的版本CentOS 7为例,在CentOS 7中的防火墙由firewalld管理。查看firewalld状态systemctl status firewalld查看对应端口号是否开启:firewall-cmd --zone=public --query-port=80/tcp开启指定端口号://--permanent 一定要添加这个参数,确保重启不会失效firewall-cmd --zone=public --add-port=80/tcp --permanent

2020-09-17 15:01:46 188

原创 Linux MySQL rpm包安装

在CentOS7下安装MySQL5.7。删除服务已安装的mysql检查已安装的mysql相关的包# rpm -qa | grep -i mysql删除相关的旧包# rpm -ev mysql-libs-* --nodeps安装对应的rpm包,需要按顺序安装# rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm# rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm#

2020-09-17 14:26:43 172

原创 Redis 的停止与启动

注意:想要停止Redis禁止使用kill会使数据丢失。1、要想停止和启动Redis需要先找的Redis的目录,先使用“ps -ef|grep redis”命令,找到Redis的进程,一般看可以看到Redis的目录。(已知目录跳过这一步)进入到对应的Redis的目录中。停止Redis无密码./src/redis-cli shutdown有密码(密码123)./sr...

2019-06-19 09:52:51 4022

原创 Redis数据的搬迁或恢复

这里以Linux服务器为例注意:Redis不要使用kill操作,不然会使Redis中的数据丢失。这里只介绍一种亲测的方法。先在redis目录中的找到数据存储文件。找到“dump.rdb”这个文件,将这个文件添加到你想要搬迁或恢复的Redis的对应目录中。注意需要先停止Redis,放置文件后,再启动Redis。步骤不要错误,放置在后再关闭启动数据不生效,且dump.rdb数据会被...

2019-06-19 09:40:01 280

原创 通用的Redis设置密码

以Linux服务器为例,为Redis设置密码。这里只介绍一种简单设置方法,并且不会受Redis重启的干扰。在对应的Redis目录中找的Redis的配置文件“redis.conf”。找到 “# requirepass foobared”配置,查看是否为注销状态,如果是就直接在下面添加requirepass password 指定密码password 。如果没有注释该Redis就有...

2019-06-19 09:07:59 115

原创 快速解决oracle数据库死锁问题

查看锁表进程select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID结束对应的进程alter system kill session 'sid, serial#'SID:会话标识符SERIAL#:会话序列号。 用于唯一标识会话的对象。 如果会话结束且另一个会话以相同的会话ID开始,则保证...

2019-06-18 14:42:06 539

原创 java项目请求报错PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException

报错:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certifi...

2019-04-30 15:57:05 1025

原创 项目启动时报错java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

根据报错可以明显地看出,该错误的获取MySQL数据连接报错,该报错是未找到MySQL数据库驱动导致的。1、先检查pom文件中的是否少了对应的引入。2、如果pom文件中的有对应的引入,检查项目中下载的包是否完整(对应的包不熟悉的同学可以先将pom文件中的引入删除后重新添加,并刷新)。3、检查配置中是否多了空格或特殊符号等。...

2019-04-23 16:32:45 434

原创 项目启动报java.lang.NoSuchMethodError:....Ljava/util/List;

出现该错误的原因为,所传的值类型与接收的类型不符合。例如:mybatis中的xml中参数类型与传递参数不付合。

2019-04-22 09:00:11 1825

原创 struts2如何修改访问后缀名

修改访问后缀名有2种方法1、在struts2jar包中找到default,properties的文件找到action可以更改成你想要的后缀名2、在Struts.xml添加以下代码

2017-09-26 09:59:10 290

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除