![](https://img-blog.csdnimg.cn/30810d64d6404dc08da28ea7cc9cd00c.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
SpringBoot技术笔记
文章平均质量分 52
SpringBoot技术笔记
ThinkPet
青年码农一枚
展开
-
API接口设计的18条规范
自己总结的http api接口设计的18条规范原创 2024-06-16 12:48:41 · 897 阅读 · 0 评论 -
web应用中的robots.txt配置
定义robots.txt文件的内容时,你需要遵循一个特定的格式,该文件主要由两部分组成:用户代理(User-agent)和指令(Directives)。用户代理(User-agent)这指定了哪些爬虫(或爬虫类型)应遵守以下的指令。常见的用户代理包括(代表所有爬虫)和具体的爬虫名称(如Googlebot指令(Directives)这些指令告诉爬虫如何访问和索引你的网站。:指定爬虫不应访问的URL路径。(不是所有爬虫都支持):指定爬虫可以访问的URL路径(注意:一些爬虫可能不支持Allow。原创 2024-06-05 10:48:30 · 461 阅读 · 0 评论 -
AOP技术详解
面向切面编程,是对面向对象编程的一种补充和完善,它以通过预编译方式和运行期动态代理方式实现,在不修改源代码的情况下,给程序动态统一添加额外功能的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率用于定义哪些方法调用应该被拦截或通知的表达式。这些表达式基于方法签名和运行时信息来定义切点,允许你精确地指定哪些方法或方法的组合应该触发通知(advice)常见的切点表达式元素和用法方法签名匹配。原创 2024-05-27 13:12:45 · 1020 阅读 · 1 评论 -
单体应用与微服务的优缺点
单体应用(monolith application)就是将应用程序的所有功能都打包成一个独立的单元,可以是 JAR、WAR、EAR 或其它归档格式。随着业务需求的快速发展变化,敏捷性、灵活性和可扩展性需求不断增长,迫切需要一种更加快速高效的软件交付方式。微服务就是一种可以满足这种需求的软件架构风格。单体应用被分解成多个更小的服务,每个服务有自己的归档文件,单独部署,然后共同组成一个应用程序。这里的“微”不是针对代码行数而言,而是说服务的范围限定到单个功能。原创 2024-05-21 11:44:25 · 843 阅读 · 0 评论 -
笔记-用Python脚本启停JAR程序
【代码】笔记-用Python脚本启停JAR程序。原创 2024-04-30 13:25:45 · 588 阅读 · 1 评论 -
Hbase学习笔记
HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统。它利用Hadoop HDFS作为其文件存储系统,并提供实时的读写的数据库系统。HBase的设计思想来源于Google的BigTable论文,是Apache的Hadoop项目的子项目。它适合于存储大表数据,并可以达到实时级别。HBase不同于一般的关系数据库,它基于列而不是基于行的模式,并且主要用来存储非结构化和半结构化的松散数据。HBase的扩展性主要体现在两个方面:一是基于运算能力(RegionServer)的扩展,通过增加RegionSer原创 2024-04-24 17:20:22 · 1161 阅读 · 0 评论 -
【面经】讲一下Spring Bean的生命周期
Spring容器管理Bean的生命周期,包括实例化、属性设置、初始化、使用和销毁阶段。在初始化和销毁阶段,开发人员可以插入自定义逻辑,以确保Bean的正确配置和资源释放原创 2023-11-09 09:39:12 · 76 阅读 · 0 评论 -
【面经】讲一下springboot自动装配原理
对于第三方jar包,SpringBoot会采用SPI机制,在/META-INF/目录下增加spring.factories文件,然后SpringBoot会自动根据约定,自动使用SpringFactoriesLoader来加载配置文件中的内容。在具体实现上,SpringBoot启动时会依赖@Configuration的配置类,该类中会声明为Bean注解,然后将方法的返回值或者是属性注入到IOC容器中。它能自动地将其他组件中的Bean装载到IOC容器中,而不需要开发人员再去配置文件中添加大量的配置。原创 2023-11-09 08:43:57 · 60 阅读 · 0 评论 -
【面经】spring,springboot,springcloud有什么区别和联系
它内置了servlet容器,约定大于配置,简化了Spring开发的配置流程,提高了开发效率。SpringCloud:是一个服务治理平台,是若干个框架的集合,提供了全套的分布式系统解决方案。Spring是基础框架,SpringBoot基于Spring进行了简化,而SpringCloud则是在SpringBoot的基础上提供了更全面的分布式系统解决方案。综上所述,Spring、SpringBoot、SpringCloud都是Java开发中的重要框架,它们之间存在一定的联系和区别。原创 2023-11-08 21:48:31 · 312 阅读 · 0 评论 -
【面经】讲一下spring aop
Spring Aop默认使用的是JDK动态代理。当类没有实现接口时,才使用cglib的动态代理原创 2023-11-08 21:41:54 · 178 阅读 · 0 评论 -
【面经】api接口响应超时如何排查解决
日志是否有异常;代码逻辑是否正确;SQL是否超时;启用async;启用缓存;水平扩展原创 2023-11-08 21:26:13 · 457 阅读 · 0 评论 -
【面经】讲下spring bean的三级缓存与循环依赖问题
单例缓存,早期单例缓存,单例工厂缓存原创 2023-11-07 16:35:00 · 71 阅读 · 0 评论 -
一种轻量级单体springboot防重复提交的解决方案
*** 指定时间内不可重复提交,单位毫秒/*** 指定时间内不可重复提交,单位毫秒/*** 指定时间内不可重复提交,单位毫秒/*** 指定时间内不可重复提交,单位毫秒Retention;/*** 指定时间内不可重复提交,单位毫秒/*** 指定时间内不可重复提交,单位毫秒/*** 指定时间内不可重复提交,单位毫秒/*** 指定时间内不可重复提交,单位毫秒Target;原创 2023-09-10 10:09:42 · 270 阅读 · 1 评论 -
SpringBoot整合ArtemisMQ笔记
【代码】SpringBoot整合ArtemisMQ笔记。原创 2023-08-18 06:57:55 · 355 阅读 · 0 评论 -
springboot整合kafka-笔记
log . info("向kafka发送消息:{}" , message);} }log . info("向kafka发送消息:{}" , message);} }Slf4j;import orglog . info("向kafka发送消息:{}" , message);} }log . info("向kafka发送消息:{}" , message);} }原创 2023-08-16 20:59:11 · 1141 阅读 · 0 评论 -
spring-boot-admin笔记
启动刚刚建的client服务,然后访问spring-boot-admin服务器端-访问localhost:8814。因为此时还没有服务注册到spring-boot-admin-server,所以这里暂时没有应用记录。登录密码是 root / root。原创 2023-08-15 21:11:52 · 296 阅读 · 0 评论 -
VX-API-Gateway开源网关技术的使用记录
VX-API-Gateway 是一个轻量的,支持可视化配置的网关代理服务。可以代理多个后端应用,同时可以对每个后端应用的API做精细化的API代理配置。由于VX-API-Gateway 底层使用的是vert.x技术,所以不必担心性能问题。原创 2023-08-05 09:13:34 · 1131 阅读 · 0 评论 -
spring-cache框架使用笔记
caffeine是一种java内存缓存技术,支持多种缓存策略,caffeine可以单独使用于普通java项目/springboot/springcloud项目,这里引入caffeine来作为spring-cache存取缓存的数据区。redis是一种分布式缓存技术,不限语言,C/S架构,支持可视化观测,redis可以单独使用于普通java项目/springboot/springcloud项目/其他语言项目等,这里引入redis来作为spring-cache框架存取缓存的数据区。原创 2023-08-03 00:12:19 · 552 阅读 · 0 评论 -
SpringDataJPA框架使用笔记
一些jpa框架什么是springDataJPAspringboot整合JPA操作mysql数据库xml依赖配置开启JPA审计功能yml配置使用示例代码实体类repo操作接口类service层springboot整合JPA操作pgsql(或类pg数据库)xml依赖配置yml配置使用示例代码实体类repo操作接口类repo操作接口类与上节相同,这里不再展示service层与上节相同,这里不再展示原创 2023-08-03 00:09:01 · 352 阅读 · 0 评论 -
SpringBoot使用JKS或PKCS12证书实现https
可以利用jdk自带的keytool工具来生成证书文件,默认生成的是JKS证书cmd命令如下: 执行如下命令,并按提示填写证书内容,最后会生成server.keystore文件。原创 2023-08-01 07:03:44 · 3650 阅读 · 0 评论 -
在springboot项目中使用策略工厂模式
【代码】在springboot项目中使用策略工厂模式。原创 2023-07-30 19:15:58 · 765 阅读 · 0 评论 -
SpringBoot配置API跨域
addCorsMappings跨域资源映射。在WebMvcConfigurer里配置。新建CorsConfig配置类,原创 2023-07-30 15:54:44 · 279 阅读 · 0 评论 -
笔记整理-SpringBoot中的扩展点
aware 感知类接口bean生命周期控制类接口app生命周期控制类接口下面详细介绍各种扩展点的使用。原创 2023-07-29 07:14:52 · 652 阅读 · 0 评论 -
SpringBoot中的RestTemplate使用笔记
*** 含请求头参数的url ,必须用@RequestHeader 接收请求头* @return} /*** url路径变量 形式的http请求,必须用@PathVariable接收* @return} /*** queryString形式的get查询* @param a* @param b* @return} /*** post-formData 形式的请求* @param a post-form参数。原创 2023-07-26 07:33:02 · 502 阅读 · 0 评论 -
一种软件license授权设计案例
整体设计思路license服务器端:--负责根据客户端systemSign颁发证书。--使用dom4j生成lic.xml证书--使用AES对xml关键节点进行数据加密--lic证书生成时设定信息包括:-----客户端systemSign-----生效起始时间-----生效截止时间-----上一次校验时间-----项目版本号-----license文件生成路径license客户端:--负责生成systemSign客户端系统签名--证书检验/定时验证/自助更新(手动替换)--A原创 2023-07-25 06:05:17 · 926 阅读 · 0 评论 -
Redis整合springboot笔记
/*** 将消息监听器绑定到消息容器//------分开订阅监听,使用自定义的消息监听器SubscribeListener------- //按名称匹配 container . addMessageListener(new CitySub() , new ChannelTopic("cityTopic"));//按模式匹配 container . addMessageListener(new TestSub() , new PatternTopic("/aaa/*"));原创 2023-07-17 21:27:44 · 815 阅读 · 2 评论 -
一种轻量级websocket实现方案
log . info("一个新客户端打开连接...");");//客户端ip String ip = conn . getRemoteSocketAddress() . getAddress() . getHostAddress();log . info("客户端请求的ip:{}" , ip);log . info("客户端的port:{}" , port);原创 2023-07-12 22:32:40 · 956 阅读 · 0 评论 -
spring-retry笔记
log . info("收到请求参数:{}" , param);throw new IllegalArgumentException("参数异常");} else {throw new RemoteAccessException("远程访问异常");} } }log . info("收到请求参数:{}" , param);throw new IllegalArgumentException("参数异常");} else {原创 2023-07-12 22:29:53 · 330 阅读 · 0 评论 -
SpringBoot整合minio笔记
物料准备:1.引入minio以及 spring-file-storage 相关依赖2.配置yml3.配置 FileRecorder实现类4.启用@EnableFileStorage注解5.测试上传。原创 2023-07-06 21:24:31 · 656 阅读 · 0 评论 -
Guava中的EventBus使用笔记
};//双重锁单例模式 private static AsyncEventBus getAsynEventBus() {} //双重锁单例模式 private static EventBus getEventBus() {} //异步方式发送事件 public static void asyncPost(Object event) {} }} }原创 2023-07-05 23:31:26 · 384 阅读 · 0 评论 -
SpringBoot利用自定义json序列化器实现敏感字段数据脱敏
log . info("mobilePhone数据:{}脱敏后的值是:{}" , s , s1);} }log . info("email数据:{}脱敏后的值是:{}" , s , s1);} }/*** 可以同时注册多个自定义的jackson 序列化器* @return} }原创 2023-07-05 23:31:52 · 1094 阅读 · 0 评论 -
springboot2.4实现事件监听
*** 1.创建事件类* 创建1个事件类,用于封装你想传递的数据。* 这个事件类可以是一个普通的pojo类,不需要实现任何特定的接口/*** 2.创建监听方法* 在合适的类或组件中创建一个监听方法,* 用 @EventListener 注解标注这个方法,* 并指定要监听的事件类型作为参数log . info("监听逻辑t1---evt msg:{}" , msg);log . info("监听逻辑t1---evt ts:{}" , ts);原创 2023-07-05 23:29:51 · 213 阅读 · 0 评论 -
MySQL中的两种特殊插入方式
on duplicate key update 更适合在插入重复数据时进行部分列的更新。replace into更适合替换整行数据,并且需要注意其对自增主键的处理。在选择使用哪种方法时,根据具体的需求和场景进行选择。原创 2023-07-04 23:29:46 · 361 阅读 · 0 评论 -
MySQL悲观锁并发控制实现案例
* 悲观锁 * select语句后加 for update * * //select ... for update可以在读取数据的同时将行锁住,阻止其他事务对这些行进行修改。原创 2023-07-04 23:27:44 · 284 阅读 · 0 评论 -
MySQL乐观锁并发控制实现案例
* 乐观锁 * 1.每次更新 version=version+1 * 2.需要携带version字段进行更新 ,若version 不一致,则不会更新成功 * 3.使用乐观锁更新前的select查询是不能带锁的原创 2023-07-04 23:21:32 · 304 阅读 · 0 评论 -
SpringBoot运行中动态修改logback日志级别
这里提供2个接口,分别是修改logback全局日志级别 ,和单独修改某个package包的日志级别。思路:写一个api接口,通过api接口调用的方式动态修改logback的log日志打印级别。原创 2023-07-01 16:04:32 · 1347 阅读 · 0 评论 -
SpringMvc接收前端发送的api请求参数问题笔记
需要使用@DateTimeFormat注解,来接收前端传的 http://xx.xx.xxx/xsdc?这种日期参数;这样获取日期数据就能直接取到Date对象。原创 2023-07-01 15:36:55 · 474 阅读 · 0 评论 -
SpringBoot中的Jackson使用笔记
springboot中使用jackson笔记原创 2023-07-01 15:23:49 · 555 阅读 · 0 评论 -
SpringBoot利用Guava实现单机app限流访问
/比如说,我这里设置"并发数"为5 @Around("serviceLimit()") public Object around(ProceedingJoinPoint joinPoint) {try {if(flag) {} else {String result = JSON . toJSONString(AjaxPubResponse . error("2003" , "未获取到许可"));return obj;try {原创 2023-07-01 14:58:04 · 493 阅读 · 0 评论 -
Spring AOP中的动态代理技术解析
*** 被动态代理的方法应该是public公共的} }/*** 动态代理类,实现方法拦截器MethodInterceptor接口//cglib动态代理,基于ASM机制实现,通过生成目标类的子类作为代理类 //使用cglib中的Enhancer来生成代理对象子类, public Object getProxyInstance(Class targetClass) {//1.工具类 Enhancer enhancer = new Enhancer();原创 2023-06-22 19:15:12 · 862 阅读 · 0 评论