自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 resilience4j限流工具的使用

有时我们不想让某个接口被访问得太过频繁,想对访问量进行控制,这时resilience4j就可以发挥作用了。官方文档:https://resilience4j.readme.io/v1.7.0/docs/getting-started。

2024-02-22 16:44:57 853

原创 minio配置监听(对象操作日志)

本文档适用于minio2021.3.17版本有时我们需要查看minio中对象操作的日志,比如像监听minio某一个桶中的删除事件,就需要配置监听。minio支持将监听的结果输出到es、pg、amq等等,下面介绍一下将minio对象操作监听结果输出到es与pg。

2023-12-05 20:08:57 1526

原创 使用nginx代理s3服务(私有云存储)

公司网络安全原因,私有部署s3服务的机器无法被直接访问,所以需要加一层代理,通过访问代理去访问s3服务器,这里使用nginx进行代理。使用s3服务的方式是在代码中使用官方的java s3 sdk(本文对于其他语言的官方sdk也适用)。由于在配置过程中遇到了一些问题,如果不对s3协议的签名校验规则比较了解就难以解决此问题,故在此记录分享一下。

2023-11-24 15:46:25 1832

原创 rabbitmq在spring boot中的使用

spring boot自动配置了rabbitmq的连接工厂、template等等,使用起来非常方便。

2023-03-29 17:15:50 285

原创 JProfiler的使用

jprofiler的使用

2023-01-09 15:19:39 2666

原创 StringBuilder导致的oom

StringBuilder在扩容过程中抛出了oom,但是考虑到我需要存的字符串并不是很大,只有几百KB,而StringBuilder最大扩容为数组下标最大值左右,应该不至于导致oom,百思不得其解,还好有大佬跟我碰到了非常相似的问题,简单来说就是实际的内存太小了,真的扩容不下了,由于实际服务器在运行许多组件,jvm中本来就保存了许多其他的类,导致内存真的不够用了。

2022-11-05 17:21:17 580

原创 看懂java的异常堆栈信息

1、打印出的时抛出异常时的方法栈信息(方法调用链),栈的最上面是异常抛出的根源方法,栈的最下面一定是main或者run方法2、很多情况下,会有caused by部分,这是栈的最上面的方法抛出异常的原因,也是方法堆栈信息(方法调用链),在这部分,栈的最下方往往会省略一些,这是为了更简洁,省略的部分是caused by部分的上一个堆栈部分的信息,caused by部分显示出来的最下面的方法是上一个堆栈部分的栈顶方法

2022-11-05 15:51:28 1507

原创 lombok使用sl4j输出日志

引入lombok依赖后直接使用sl4j进行日志输出,输出之前需要配置等等

2022-07-27 10:46:53 4079

原创 Java代码实现两个数据库之间的数据同步

需求背景:有A&B两个数据库,以A为主,B要同步A上的数据,同步涉及数据的增删改查,且要每天同步一次。条件限制是,只能调用中台提供的接口操作数据库,不能写SQL。

2022-07-25 18:25:34 8543 5

原创 使用fastjson获取json中套了很多层的数据

使用fastjson获取json中套了很多层的数据

2022-07-25 14:50:41 2421 1

原创 SpringCloud Gateway + nacos 报错 Service Unavailable

问题描述:使用spring的gatway,将gateway搭建好并成功注册到nacos中,但通过gatway却无法路由到其他服务,每次都报错There was an unexpected error (type=Service Unavailable, status=503)。gatway服务的依赖: <dependencies> <!--导入网关的jar包--> <dependency> <grou

2022-04-17 14:59:11 4609 3

原创 Spring Boot 自动配置实现原理

引言在使用ssm框架的时候,每每想要用到依赖的功能,都需要导入相关jar包,并且写配置文件做相关的配置,当然也可以不写配置文件,用配置类来代替配置文件也可以。在使用springboot框架的时候,会发现只要引入相关依赖,然后直接使用就行了,往往没有自己做什么配置,或者想要更改一些配置属性,比如改端口号,只要在application.properties文件里做修改就可以了,而且所有的配置都在这里。这就是springboot的自动配置功能。那springboot到底做了什么神奇的事情,使得我们可以从“配置地

2021-08-29 22:26:16 456 5

原创 SpringMVC DispatcherServlet 运行的大致流程

引言在使用SpringMVC之前,我们写请求处理都是自己写Servlet(Servlet实现类),来实现对请求的响应处理,还要为每个Servlet写一对请求地址映射配置,比较麻烦。使用了SpringMVC,我们只需要利用SpringMVC提供好的API就可以方便的实现请求的处理,而且我们只需要写一个Servlet的配置就行了,这个Servlet就是DispatcherServlet。DispatcherServlet的作用我们发来的http请求都会被DispatcherServlet统一处理,Disp

2021-08-27 22:59:05 521

原创 Spring AOP

什么是AOPAOP(Aspect Oriented Programming),面向切面编程,是Spring的重要组成部分。AOP是一种思想,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。为什么要用AOP使用AOP,其实就是方便地实现了代理模式。使用代理模式可以使程序变得易于扩展,通过访问代理对象而不是目标对象,来实现对目标对象的扩展。不用AOP,也可以自己在项目中实现代理模式,不过没有这个必要,使用人家写好的,用人家的AP

2021-08-26 22:16:07 73

原创 Spring IoC

什么是IoCIoC(Inversion of Control),控制反转,是Spring框架的重要组成部分。IoC是一种概念,是一种设计原则。把对象创建和对象之间相互调用的过程交给Spring管理。为什么要用IoCIoC可以帮助程序的结构更加健壮,解耦合。其实使用Spring IoC,可以方便的实现工厂模式和单例模式。这两个设计模式对于程序的健壮性是十分重要的,运用设计模式,带来的好处非常多,可以写出扩展更方便、性能更高的程序。不使用IoC,为了写出健壮的程序,也可以自己来实现设计模式,但是一个项目就

2021-08-26 21:53:27 62

原创 替换word模板中的关键字

这里强烈推荐使用poi-tl项目地址:https://github.com/Sayi/poi-tl中文文档地址:http://deepoove.com/poi-tl/踩了几个小时的坑,遇到了poi-tl,三两下就把功能实现了,无敌级的方便。下面上手。1、导入依赖poi-tl依赖poi,且必须为4.1.2以上版本。 <dependency> <groupId>org.apache.poi</groupId>

2021-08-15 13:42:35 233

转载 spring项目解决静态url自动拼接;jsession的问题

转载自https://my.oschina.net/wangnian/blog/6480221.jsessionid是什么?Jsessionid只是tomcat的对sessionid的叫法,其实就是sessionid;在其它的容器也许就不叫jsessionid了2.那么有什么问题?首先这是一个保险措施 因为Session默认是需要Cookie支持的,但有些客户浏览器是关闭Cookie的,所以在这个时候就需要在URL中指定服务器上的session标识,也就是EDE802AB96CD1E0CA2AFB3

2021-07-07 20:26:20 1421

原创 MyBatisPlus的入门

官网:https://baomidou.com/Step1、建测试用的数据库这里就直接用官网上的,建表和造数据create database mybatis_plus_test;use mybatis_plus_test;CREATE TABLE user( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NUL

2021-07-04 15:30:06 62 2

原创 SpringBoot实现文件下载,多文件打包下载

1、单文件下载//文件下载测试 @GetMapping("/download") public void fileDownload(HttpServletResponse response){ //文件路径 String filePath = "D:\\文件下载测试\\实验6打印.docx"; //文件名 String fileName = "实验6.docx"; File file = new File(

2021-07-03 19:53:46 3489

原创 若依的入门

https://blog.csdn.net/weixin_44900753/article/details/113931244https://blog.csdn.net/weixin_44900753/article/details/113931244

2021-05-05 15:38:50 245

原创 使用Thumbnails来压缩上传的图片保存至服务器

前言项目部署之后,发现对图片资源的访问速度太慢,租的服务器带宽为1Mbps,用户上传的图片多为手机拍摄,一般大小在5MB左右,如果不压缩,那网站基本没人愿意使用的状态。于是寻找压缩图片的方法本片文章的操作借鉴自:https://my.oschina.net/u/4327542/blog/3373337https://blog.csdn.net/qq_25508039/article/details/82257436https://blog.csdn.net/hanerer1314/article/

2021-03-13 18:12:44 737

原创 centos安装mysql,启动mysql时,关于错误The server quit without updating PID file

参考:https://blog.csdn.net/ydyang1126/article/details/72473828https://cloud.tencent.com/developer/article/1409737由于在成功启动前我做了两个变化,所以无法确定到底是哪个使得成功启动。一、由于提示说The server quit without updating PID file(/usr/local/mysql/data/mysqld.pid),我又在my.cnf文件中写了:pid-file

2021-03-06 15:48:40 510

原创 SJUTFleaMarket项目部署

一、购买服务器我是在阿里云平台购买的,为了免去网站备案,买的位于香港的服务器(阿里云开发者扶持计划虽然很便宜,但目前没有境外服务器的可以选)二、购买域名买域名也是在阿里云上操作的三、配置环境1、java环境配置参考https://blog.csdn.net/Jekin_KE/article/details/87312623、https://juejin.cn/post/6844903927532486663下载jdk的时候,linux有很多版本可以选择,有arm64的,也有x64的,想要知道自

2021-03-05 18:28:52 149 1

原创 springboot+mybatis+thymeleaf+PageHelper实现分页显示

参考PageHelper文档:https://pagehelper.github.io/docs/howtouse/大佬文章:https://www.pianshen.com/article/6213345123/具体步骤1.1 导入依赖从maven仓库搜<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter

2021-02-24 21:54:38 380

原创 SJUTFleaMarket项目开发二:后台

一、建立项目,配置环境、测试idea创建项目,初始化时选择devtools、spring web、thymeleaf、mybatis framwork、mysql driver依赖,shiro依赖等其他依赖后来再手动导入各层的包建好,项目目录结构建好配置数据库连接信息等(下面为此项目初始时的配置)spring: thymeleaf: #关闭了缓存,打包部署的时候记得开回来 cache: false #配置连接数据库信息 datasource: driver-c

2021-02-24 11:41:03 162

原创 SJUTFleaMarket项目开发一:数据库

一、需求分析用户可凭借账号密码登录(注册时强制使用邮箱注册,注册成功后可设置用户名)用户可设置性别、出生日期、联系方式等基本信息,用户有唯一标识id一个用户可发布多条商品信息商品必须有商品名称、商品类别、商品价格和商品状态,可以有商品描述、商品图片等,商品有唯一标识id商品发布要记录发布时间信息二、画ER图三、ER图转化为实体模式用户user(用户id、用户名username、登录密码password、出生日期birthday、学校university、邮箱email、电话tele、

2021-02-23 13:27:18 194

原创 个人竞赛项目(SJUTFleaMarket)开发笔记

关于varchar与char的区别,以及varchar的最大长度和存储规则https://blog.csdn.net/xujingzhong0077/article/details/82991736mysql中int()里的数字不是能存储值的大小,而是在表中的数的最大显示宽度,可以配合UNSIGNED ZEROFILL实现不够宽度的自动补零。更详细:https://www.cnblogs.com/echo-something/archive/2012/08/26/mysql_int.htmlSongj.

2021-02-23 13:18:47 206

原创 springboot上传的照片无法访问

问题描述:上传一张图片后,检查目录发现文件已经成功上传到指定的目录下,但无法通过地址拿到,重启项目后可以拿到。后来发现在上传一张照片后,target目录下并没有立即生成上传的文件,所以访问不到。问题解决:查看了诸位大佬的文章后,用设置文件路径映射的方法完美解决了这个问题。处理上传的图片,设置保存到哪里时,用绝对路径来指出保存的位置,然后为这个绝对路径设置映射的路径,通过这个映射的路径就可以立刻拿到上传的图片了。解决问题的代码:@Configurationpublic class ResourceCo

2021-02-21 18:00:24 1184 4

原创 springboot实现文件上传

0、前言在实际操作过程中参考了以下大佬的文章:https://www.hangge.com/blog/cache/detail_2463.htmlhttps://developer.aliyun.com/article/763232http://www.ityouknow.com/springboot/2018/01/12/spring-boot-upload-file.html1、上手1.1 导入依赖springboot实现文件上传不需要导入特殊的依赖,只需要web依赖就行了(前端这里我用t

2021-02-21 17:42:15 395

原创 shiro整合thymeleaf实现根据访问者状态隐藏标签与shiro实现登出

一、shiro整合thymeleaf1、导入thymeleaf整合shiro的依赖<!--thymeleaf整合shiro--> <dependency> <groupId>com.github.theborakompanioni</groupId> <artifactId>thymeleaf-extras-shiro</artifactId>

2021-02-04 21:12:48 443

原创 shiro实现用户授权

shiro授权在自定义的realm类里面来实现public class UserRealm extends AuthorizingRealm { @Autowired UserMapper userMapper; //授权 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { System.out

2021-02-04 20:56:39 291

原创 使用shiro实现登录拦截(请求拦截)和用户认证(登录)

上一篇已经将shiro和springboot整合起来了,这里就直接开始写功能了一、登录拦截(请求拦截)这个功能在shiro配置类里写,拦截哪些页面,什么情况下拦截,拦截后要不要跳转,都写在注释里@Configurationpublic class ShiroConfig { //ShiroFilterFactoryBean @Bean public ShiroFilterFactoryBean shiroFilterFactoryBean(@Qualifier("secur

2021-02-04 15:28:20 2734

原创 shiro与springboot整合

1、导入依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-web-starter</artifactId> <version>1.7.1</version> </dependency>2、注册shiro核心

2021-02-04 14:46:42 137

原创 Spring Security初接触

官网https://spring.io/projects/spring-security先占个位子,等整明白了再回来补充稍微接触了一下这个安全框架,总是实现不了某些功能,网上说可能是我用的springboot版本太高了(我一直用最新版),得往下降版本,将版本又有可能导致其他某些地方不兼容,太麻烦了,本来就是想稍微接触下,就直接学shiro了...

2021-02-04 14:30:53 47

原创 thymeleaf笔记

官方文档https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.htmlthymeleaf是个模板引擎,在springboot中用来取代jsp实现前端页面的开发与后台的信息传送。1、后台向thymeleaf前台传值后台向前台传值,只要在处理请求的方法里声明Model,然后把从service层拿来的数据放到model里就行了,看下例: @RequestMapping("/employee") public String toForm

2021-02-03 12:06:24 3330 1

原创 springboot整合mybatis

官方文档https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/#步骤如下:1、创建项目,导入依赖使用IDEA创建一个springboot项目,选择web、jdbc、mysqldriver模块,再导入mybatis依赖:<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId

2021-02-01 12:39:46 57

原创 多环境配置

在实际项目中,需要配置多套环境,开发环境、测试环境等等,通过配置文件来实现环境的切换。可以使用properties配置文件,也可以使用yaml配置文件。yaml比较优秀,这里介绍yamlyaml实现多环境十分简单,只需要一个yaml文件:server: port: 8080spring: profiles: active: dev #表示使用dev环境的配置--- #通过---来区分不同的环境server: port: 8081spring: profiles: dev

2021-01-30 15:04:23 77

原创 JSR303校验

JSR303校验会自动检查传过来的值是否为需要校验的值,通过@Validated注解开启,其具体使用方法见下面的例子:@ConfigurationPorperties(prefix = "person")@Component@Data@Validated //加入了这个注解就表示这个bean开启校验public class Person { @Email//这表示校验userName必须是Email格式的,不然报错 private String userName; p

2021-01-30 14:47:21 111

原创 springboot资静态资源访问自定义

官方文档(https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content)介绍了可以自配置的一些东西,下面我来尝试。1、修改静态资源访问路径(加前缀)首先,对于放在springboot默认静态资源文件夹下的静态资源(照片、视频、js、css啥的),可以通过当前项目根路径/ + 静态资源名访问到。默认的静态资源文件

2021-01-30 11:39:18 386

原创 yaml的使用与绑定bean的属性值

yaml是用来代替xml配置文件的,在springboot项目的resources目录中有一个application.preoperties配置文件,可以将此配置文件用application.yaml代替。yaml是一种标记语言简介YAML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。非常适合用来做以数据为中心的配置文件

2021-01-29 19:53:17 649

空空如也

空空如也

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

TA关注的人

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