SpringBoot学习笔记
浅尝即止何来突破
只为成功找方法,不为失败找借口
展开
-
Redis---过期删除策略
定时删除策略:每个key对应一个定时器,保证准时删除过期key。特点:采用了时间换空间,占用CPU性能多。惰性删除策略:当用户对key进行访问时,都会先检查此key是否过期。已过期则进行删除,再将查询结果返回。特点:采用空间换时间,占用内存空间多。定期删除策略:随机抽取redis内存空间中expires数组中的数据块进行过期key判断与删除。当数据块中有大于25%的key过期,则采用重点执行操作继续随机抽取数据块进行过期key判断与删除。redis中默认1s执行10次定期删除任务。定期删除是综合前两原创 2022-07-14 16:03:59 · 615 阅读 · 1 评论 -
SpringBoot(Web)---跨域请求
SpringBoot(Web)---跨域请求1、跨域请求描述跨域请求指的是发起request请求报文的协议或ip或port端口号与当前资源的协议或ip或port端口号不同,这种情况视作跨域请求。2、跨域请求可能会出现的问题浏览器发起跨域请求无法获取到目标资源。 实际请求报文与原本要发送的报文不同3、跨域请求造成问题的原因浏览器因相关规范,在发送跨域请求前,会在请求报文达到触发条件时发送请求方法为options的预检请求。原创 2022-03-23 23:56:14 · 1714 阅读 · 0 评论 -
Redis---布隆过滤器
Redis---布隆过滤器简介:Redis官方在4.0版本后新增了布隆过滤器插件,配置了插件执行bf.add 布隆过滤器名称 值、bf.madd布隆过滤器名称 值列表等来对布隆过滤器进行操作。为提高布隆过滤器准确性,通过bf.reserve布隆过滤器名称期望错误率初始容量 命令自定义redis的布隆过滤器。原创 2022-02-24 11:14:23 · 388 阅读 · 0 评论 -
SpringBoot日常知识整理
SpringBoot日常知识整理一、项目管理工具SpringBoot项目使用Maven/gradle作为项目管理工具,pom.xml与settings.gradle为各自的项目管理文件。主要作用为1、统一开发规范与工具 , 2、统一管理jar包二、SpringBoot启动SpringBoot通过main方法所在类文件开启SpringBoot项目,通过注释@SpringBootApplication启动其他SpringBoot自动配置与按规则自定义的信息。三、@SpringBootAppl原创 2021-11-08 17:10:28 · 1979 阅读 · 0 评论 -
RequestMapping下返回值ResonseEntity与@ResponseBody
ResponseEntity的优先级高于@ResponseBody。在不是ResponseEntity的情况下才去检查有没有@ResponseBody注解。如果响应类型是ResponseEntity可以不写@ResponseBody注解,写了也没有关系。 ResponseEntity 是在 org.springframework.http.HttpEntity 的基础上添加了http status code(http状态码),用于RestTemplate以及@Control...原创 2021-08-09 16:07:32 · 404 阅读 · 0 评论 -
Http请求与响应--header头部字段
目录前提:头部字段全览:Http头部字段解释:Accept:作用:请求与响应类型不一致问题:标签下的请求报文accept字段:前提:项目开发中涉及到header头部字段的获取与设置,于是想了解并记录下http头部字段的知识以供后续补充与回顾。头部字段全览:一、常用标准请求头字段 Accept 设置接受的内容类型 Accept-Charset 设置接受的字符编码 Accept-Encoding原创 2021-08-30 00:27:38 · 9008 阅读 · 0 评论 -
Spring MVC生成excel表单
转载连接:Spring MVC下生成excel表格并返回给浏览器通过Apache的POI项目,它是目前比较成熟的HSSF接口,用来处理Excel对象。其实POI不仅仅只能处理excel,它还可以处理word、PowerPoint、Visio、甚至Outlook。...转载 2020-08-06 00:14:39 · 215 阅读 · 0 评论 -
HttpServletRequest读取body只可读取一次的解决方案
什么时候需要读取多次body:当过滤器、拦截器、控制器需要使用请求的body两次以上;前两者执行的操作一般为对数据的验证与提前处理,而控制器执行的操作为对业务的处理。为什么HttpServletRequest对象的请求体body只读取一次:HttpServletRequest使用getInputStream()与getReader()获取输入流因为读取时数据流指针的单向移动导致请求的body内容只可读取一次。怎么解决HttpServletRequest对象的请求体body只读取一次:原创 2021-11-03 09:53:42 · 2900 阅读 · 0 评论 -
git:仅输入一次账号密码就可永久生效
前提:git中pull、push以及对私人仓库的克隆默认是每次需要输入github账号密码进行验证权限的。仅输入一次账号密码:若不想重复输入账号密码,则通过设置如下代码,将账号密码保存在凭证管理器中储存,之后账号密码验证由凭证管理器中获取验证;git config --global credential.helper storeIDEA中应用:IDEA中默认是输入一次github/gitlab账号密码后,不用再手动输入账号密码,而是去凭证管理器中获取验证,简化了输入账号密码的重复性原创 2021-09-07 00:58:14 · 1337 阅读 · 0 评论 -
Idea中连接github遇到的情况说明
前提:不直接从远程仓库进行clone,而是在本地将本地仓库共享到远程仓库1、本地分支从远程分支拉去更新:必须要先建立管理远程仓库,然后将本地分支通过checkout方式与远程分支关联。否则本地分支无法获取更新。2、更改.git文件夹下config文件中的url地址...原创 2021-09-03 00:51:25 · 466 阅读 · 0 评论 -
SpringBoot项目中对隐秘数据进行加密与解密-Jasypt
目的:隐秘关键数据,如数据库账号密码等数据。密文存储位置:一般存储在配置文件中,加密秘钥不可直接写于配置文件,需单独保管(可作为环境变量、也可作为启动时传入参数)参考博客:jasypt在SpringBoot项目中的应用...原创 2021-08-16 16:15:03 · 596 阅读 · 0 评论 -
源码阅读原则
来源博文忌漫无目的:代码数量太大,必须带目的读代码,忽略与此处目的无关的代码。一定要用debug功能(核心):设置断点。通过调用栈与变量变化了解代码。善用方法调用栈(关键):便于理清调用调用过程。先整体,后局部;大方法了解后再了解小方法:观察变量的变化,猜测主干方法做了啥,在逐一验证,查看小方法。总结:看代码的目的是为了理解。并不是所有人都需要阅读源码,也不是一定要看得非常非常精,不放过每一句,没必要。...原创 2021-08-16 15:28:28 · 153 阅读 · 0 评论 -
String类型的编码方式转换
浏览了各个博客描述,得到了如下结论: UTF-8编码和GB2312编码之间不能进行直接转化 UTF-8编码和GBK编码之间,仅仅能是UTF-8 -> GBK -> UTF-8不同编码字符之间的转化参考:String类型转换示例...原创 2021-08-13 14:20:34 · 3289 阅读 · 0 评论 -
SpringBoot请求源码流程图
图来源:一张图看懂请求处理流程原创 2021-08-11 11:22:57 · 714 阅读 · 0 评论 -
SpringBoot传输xml对象
xml文件与xml对象之间转换处理依赖包:<!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api --><dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.4.0-b180830.0359&.原创 2021-08-10 15:12:51 · 636 阅读 · 0 评论 -
Response的Content-type学习笔记
若Response的body为Object(控制器返回值为对象则为Object,为ResponseEntity<?>则根据?的值设置)原创 2021-08-10 12:02:25 · 935 阅读 · 0 评论 -
SpringBoot全局异常处理
应用场景:当业务流程处理出现数据错误或者验证错误,可以通过抛出异常方法中断此次业务流程,将该业务请求处理交由全局异常处理器处理,响应结果为异常处理器返回值(相当于接管原Controller与RequestMapping工作)。@ControllerAdvice与@ExceptionHandler示例: @ControllerAdvice public class SpringExceptionHandler{ /** * 全局处理Excep原创 2021-08-09 15:39:23 · 126 阅读 · 0 评论 -
Hutool工具包-提供各类JAVA工具
它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;包含的组件模块如下:具体使用方法:Hutool中文官网原创 2021-08-08 21:33:37 · 397 阅读 · 0 评论 -
Mybatis Plus学习笔记
Mybatis Plus官网有基本操作与配置指南。目录一、Mybatis plus代码生成器基本配置流程:二、Mybatis plus 使用的基本结构:三、Mybatis plus实践中遇到的问题以及易忽略要点:一、Mybatis plus代码生成器基本配置流程:AutoGenerator代码生成器类型,执行生成方法execute前需要配置如下配置信息:DataSourceConfig类数据源配置--》GlobalConfig全局类策略配置--》PackageConfi原创 2021-08-06 17:32:41 · 452 阅读 · 0 评论 -
JUnit5学习笔记
JUnit5在SpringBoot下进行功能测试常用的注释如下:Web测试常用注释 注释 作用 @SpringBootTest 测试启动SpringBoot环境,并加载相应组件。 @WebMvcTest Web测试控制器时使用。用于生成MockMvc对象;不加载其他Spring容器对象;不能与@SpringBootTest联用。 @AutoConfigureMockMvc Web测试控制器时使用。用于在Spirng容器中自动加载MockMvc对象,与@SpringB原创 2021-08-04 01:44:53 · 147 阅读 · 0 评论 -
断言使用笔记
当断言表达式有误,命令行终端会显示有误内容。当断言表达式无误,命令行终端不会显示断言内容,按正常执行。原创 2021-08-04 01:22:32 · 103 阅读 · 0 评论 -
SpringBoot注释学习笔记
注释接口声明标识符:public @interface@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented描述注释的注释:@Target:设置该注释的作用对象 @Retention:设置该注释作用的范围,一般为RetentionPolicy.RUNTIME @Document:设置该注释会写入javadoc文档内 @Inherited:设置该注释可继承注释中的值:形式:类型+方法名+(原创 2021-08-03 11:56:01 · 201 阅读 · 0 评论 -
RestTemplate学习笔记
RestTemplate核心方法:RestTemplate的核心是execute方法,含设置String类型请求地址url、HttpMethod类型的请求方法method、在请求发送前设置请求头部RequestCallback类型的requestCallback对象、响应接收处理ResponseExtractor类型的responseExtractor对象以及设置请求参数的各个Object类型的URIVariables对象。execute方法的核心是doExecute方法。RestTemplate中原创 2021-08-02 17:03:29 · 912 阅读 · 0 评论 -
SpringBoot下的参数解析器---暂无内容,待补充
首次了解到有参数解析器的存在,留坑,等学习后再进行相关步骤概述与补充原创 2021-07-23 01:26:46 · 94 阅读 · 0 评论 -
RestTemplate各组成部分说明
SpringBoot中RestTemplate是对HttpClient的一种封装,简化了HttpClient开发步骤,减少了代码量。但要对RestTemplate的请求/响应方式进行修改时,还是会涉及到封装的部分的修改,最直接的是ClientHttpRequestFactory,此处需要注意。...原创 2021-07-22 16:23:28 · 233 阅读 · 0 评论 -
Cookie在http请求与响应报文的位置
看了各种介绍http报文的博客,对cookie的response设置与返回request在报文的位置有了相关基本的认识,如有不对之处希望指出错。Cookie的设置以及在响应报文的位置SpirngBoot在response响应返回中,开发者可通过response的addCookie方法将cookie信息转入http报文中,cookie信息位于headers的set-cookie字段。有多少个cookie信息加入就有多少个set-cookie字段。客户端接收到cookie后就将cookie存储在本地原创 2021-07-22 16:12:26 · 5070 阅读 · 0 评论 -
阅读相关AOP博客对AOP使用实操后进行相应的使用补充
阅读来源:完美的AOP演示与讲解博客来源博客阅读概述:Spring中的AOP具体应用有权限校验、日志记录、统计等与系统业务代码关系不大的场景。AOP有两大部分:一是连接点joinPoint;二是切面Aspect。其中切面Aspect又包含了切点PointCut与通知处理Advice。通知处理Adivce包含处理时机(before、around、afterReturning、after、afterThrowing)与处理内容。补充内容如下:1、JoinPoint的参数注入获取:由于A.原创 2021-07-18 23:33:26 · 376 阅读 · 3 评论 -
Spring MVC学习笔记
1、报文传输过程:HTTP报文来到前端适配器(DispatcherServlet)后,根据HandlerMapping找到对应的Handler(Controller)。之后将handler交于handlerAdapter处理,handlerAdapter根据HTTP报文选择handler中对应方法执行,执行完毕返回值交回前端适配器。2、JSON与对象:在1中,在HTTP报文执行处理方法前,需要经过转换器将报文数据进行转换。如果启动了JSON转换器且请求报文内容为json,则经过json转换。如果启动了x原创 2020-06-12 01:54:56 · 147 阅读 · 0 评论 -
Spring IOC容器、Servlet容器、HTTP请求到响应过程
复习Spring与SpringBoot的时候,遇到了概念上的疑惑,现根据一些博客上的信息写下自己对Spring IOC容器、Servlet容器、HTTP请求到响应过程方面的理解。1、应用上下文(ApplicationContext)是Spring IOC容器表现形式之一,另一个是BeanFactory2、BeanFactory基本上已经很少使用了,因为其比应用上下文使用起来更复杂3、S...原创 2020-03-25 23:16:43 · 307 阅读 · 0 评论 -
SpringBoot学习笔记
SpringBoot开篇基本信息讲解SpringBoot开篇要点须知:项目管理工具SpringBoot项目使用Maven/gradle作为项目管理工具,pom.xml与settings.gradle为各自的项目管理文件。主要作用为1、统一开发规范与工具 , 2、统一管理jar包SpringBoot启动SpringBoot通过main方法所在类文件开启SpringBoot项目,通过注释@S...原创 2020-03-14 16:58:05 · 210 阅读 · 0 评论