自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VS code(Cursor)使用ssh连接远程服务器失败:Downloading VS Code Server failed. Please try again later.

wget: unrecognized option '--no-config' / Downloading VS Code Server failed. Please try again later.

2024-12-22 23:02:07 2125 6

原创 Letex中删除页眉

begin{document} 后加上即可\fancyhead{}

2024-04-08 16:24:22 619

原创 Git LFS上传大文件

后面正常push,其他的文件会以常规形式上传,大文件会上传到lfs的服务器,并返回到仓库一个链接。2、再运用git lfs track “*.zip” (这里的意思是zip文件标记为大文件)1、首先到项目目录下执行 git lfs install。自己记录一下(我是用的github mac客户端)

2024-02-19 22:17:31 490 1

原创 dataframe 修改某行某列位置的值

dataframe 修改某行某列位置的值

2022-07-22 15:19:20 5220 2

原创 @JsonFormat 不起作用,日期数据返回毫秒数

今天遇到一个bug,后端一个接口返回给前端的json数据中,date类型字段返回的是毫秒数而不是格式化的日期数据,但其他接口是正常的。实体类字段是这样的@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="Asia/Shanghai") private Date gmtCreate;json转换是这样的httpServletResponse.getWriter().write(JSON.toJSONString(responseJso

2022-02-28 20:44:05 5244

原创 pytorch 一个tensor去除指定值的元素

可以用集合运行实现,但转换为set之后会删除重复值,所以接用np.isin实现。A = torch.tensor([1, 2, 3])B = torch.tensor([2])A[~np.isin(A, B)]np.isin还可以用于dataframe数据的过滤中,速度很快非常好用。

2022-02-18 18:36:02 5534

原创 Redis + Mysql 实现点赞功能

本文所有代码已在gitee开源 :freefancy1、需求首先说明功能需求:用户可以对动态点赞/取消点赞,用户可以查看已经点赞的动态,动态下显示点赞的数量和点赞的用户。2、分析传统数据库是可以实现这个需求的,动态表需要有一个字段like_num记录点赞数,另外需要一个表记录点赞,需要有的字段是用户iduser_id、动态idarticle_id、点赞状态status、创建时间gmt_create、最后修改时间gmt_modified。功能的实现也很简单不赘述。mysql应对查询可能还能应付,但点

2022-02-14 23:38:11 2584 6

原创 JWT过期处理——单token方案

前后端分离的项目中采用jwt作为接口的安全机制会遇到jwt过期的问题。jwt中可以设置过期时间,即使是设置成一个月,但可能用户正上一秒还在使用,下一秒jwt过期被叫去重新登录,这是不能接受的,所以需要有处理jwt过期的机制。在这个问题上比较常用的做法是采用双token——access token和refresh token来处理,access token用户授权,refresh token用于前者过期后获取新的access token。这里。我在这里记录我单token方案的思路。用户登录时生成t

2021-12-04 21:06:25 10098 1

原创 SpringBoot + SpringSecurity + JWT 实现后端校验

集成了SpringSecurity后,又花了一天时间集成了JWT,记录一下。0、一些背景HTTP是无状态的,我们不能确定两次请求是不是一个用户发出的,就必须要每次都进行认证。传统方法解决这个问题是采用session和cookie机制,虽然解决了问题,但有一些缺点:session通常是保存在内存中的,用户数量如果较多,服务器的压力大;因为session是保存在最初认证的那台服务器上,换了一台服务器又需要认证,不能很好的适应分布式的环境;有CSRF的风险。因为是基于cookie来进行用户识别的, c

2021-11-19 23:48:24 3196

原创 docker-Jenkins之Gitee Push后自动构建和运行

1、Gitee Push自动构建配置这一步官方文档讲得很清楚了,大家可自行参考配置。Gitee Jenkins插件官方文档这里提一嘴Gitee仓库中的webhook配置这里的URL来自于Jenkins 项目使用Gitee插件的配置中。WebHook密码也来自于配置gitee和jenkins的webhook密码保持一致。配置完成后点击测试,gitee会向jenkins发送消息,正常情况下jenkins中的项目就开始自动构建了。2、构建后自动运行我的项目是一个Springboot项目,

2021-11-17 16:33:38 1188

原创 docker-Jenkins之Maven项目构建(使用服务器环境)

我这里选择的方式利用服务器上的环境(jdk,maven等)。1、安装JDK,Maven现在服务器上安装好jdk和maven,我的安装路径是jdk: /usr/jdk/jdk8maven: /usr/maven/maven3.3.32、创建Jenkins的docker容器先拉镜像,最新的就可以docker pull jenkins创建容器,重点注意要挂载!我们先在服务器上创建目录 /var/jenkins_home,用来挂载jenkins的工作目录,另外我们需要将jdk和maven的目录挂

2021-11-16 18:02:39 1316 1

原创 SpringBoot全局处理异常并记录异常日志

SpringBoot版本:2.5.6@ControllerAdvice(类似的还有@RestControllerAdvice) 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping、@PostMapping, @GetMapping注解中。我们可以利用这个注解做SpringBoot项目的全局异常处理。package com.whut.idea.freefancy.common.exception;i

2021-11-11 22:54:52 2698

原创 pytorch-gradual-warmup-lr安装

项目的github地址:https://github.com/ildoonet/pytorch-gradual-warmup-lr1、命令行安装作者给出的安装方式:$ pip install git+https://github.com/ildoonet/pytorch-gradual-warmup-lr.git自己的环境有点问题,不能顺利安装。可以尝试离线安装。2、离线安装点开项目一看,其实就是一个.py文件,直接在自己的项目中新建一个文件,把scheduler.py内容复制过来即可。

2021-11-05 22:56:17 1319

原创 java.sql.SQLException: Access denied for user ‘‘@‘localhost‘ (using password: YES)

springboot连接数据库时报错java.sql.SQLException: Access denied for user ''@'localhost' (using password: YES)开始我的数据库连接是这么写的spring: datasource: password: 123456 url: jdbc:mysql://localhost:3306/env_text?serverTimezone=Asia/Shanghai driver-class-name:

2021-10-20 20:49:41 4103 2

原创 SpringBoot异常处理及其原理——源码学习

SpringBoot版本:2.3.4应用SpringBoot默认的异常处理机制是:对于浏览器客户端,返回一个白页(whiteLable)对于机器客户端,返回一个json,包含错误信息自定义错误页面页很简单,只要在静态资源路径里放置我们的页面,并用4xx.html和5xx.html命名,就把相应状态码的异常映射到相应的页面。原理下面来探究一下原理在控制器方法中设置一个除零错。@RestController@RequestMapping("/demo")public class

2021-10-20 13:10:50 532

原创 SpringBoot拦截器的使用及其原理——源码学习

该文的SpringBoot版本:2.3.4SpringBoot在web场景下,底层使用的是SpringMVC,所以这篇文章讲的本质上还是SpringMVC的内容。1、拦截其的使用使用拦截器有三步:实现HandlerInterceptor接口下的三个方法,分别是preHandle,postHandle,afterCompletion在WebMvcConfigurer中注册配置拦截路径和放行路径1.1实现HandlerInterceptor接口public class myIntercept

2021-10-19 17:12:38 667

原创 SpringBoot请求返回值处理与内容协商——源码学习

SpringBoot的web场景中,底层依然使用的是SpringMVC,框架会根据请求url找到它对应的handler,然后再找到该handler的handlerAdapter,handlerAdapter先回处理handler(controller.method())的形参,然后执行该方法,并返回方法的返回值,对应源码ServletInvocableHandlerMethod.invokeAndHandle()中的第一行,但这个返回结果并不能直接返回,而是需要进行进一步的处理,public void i

2021-10-19 14:08:07 474

原创 SpringBoot请求处理之控制器参数处理——源码学习

在DispatchServlet的doDispacth方法中,通过mappedHandler = getHandler(processedRequest);获得请求应用的处理器(controller.method())和拦截器,但没有立刻执行处理器中对应的方法,而是通过HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());获得一个处理器的适配器,这个适配器主要是为了在原有处理器基础上,处理请求参数的返回值。这里面包含了大量的工作,

2021-10-18 21:22:11 354

原创 SpringBoot请求处理之获取处理器——源码学习

在springboot中,请求会交由doDispatch()方法处理,其中调用mappedHandler = getHandler(processedRequest);,我们来看看它具体的获取过程。protected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception { if (this.handlerMappings != null) { for (HandlerMapping mappi

2021-10-18 15:50:07 487

原创 SpringBoot请求处理过程(简略)——源码学习

在springboot的web场景中,底层依然是使用的spring mvc,收到的所有请求都要交由dispatchservlet来处理。DispatchServlet的继承关系:在原生的java servlet中,请求会交给service()方法处理,spring MVC是对原生servlet的封装,自然也是如此。在HttpServlet中,该类重写了service()方法,并将请求根据不同的方法分发给不同的doXXX()处理,后面的子类只有FrameworkServlet重写了service()方法

2021-10-18 13:51:47 836

空空如也

空空如也

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

TA关注的人

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