
SpringBoot
文章平均质量分 73
欧阳方超
微信公众号—“欧阳方超”。一份书写一份理解,一份记录一份沉淀,回首时这些是美丽的风景,若能不经意间帮到正在路上的你,吾心备喜焉!Java、Linux运维、大数据。
展开
-
Spring Boot2.x教程:(十八)与MyBatis-Plus结合实现事务管理
Spring Boot 结合 MyBatis-Plus 实现事务管理,先阐述事务概念及 Spring 引入事务管理的原因。接着通过转账案例,从创建库表、配置 pom 文件到编写各层代码展示完整实现过程,还提及测试示例及异常回滚情况,最后说明事务相关注意事项及 @EnableTransactionManagement 注解的使用情形原创 2025-03-18 18:45:00 · 927 阅读 · 0 评论 -
Spring Boot2.x教程:(十七)从奶茶店说起:轻松理解Spring Boot的Service默认单例与多线程
Spring Boot中的Service采用单例模式是一种优秀的设计,因为它可以做到节省系统资源、提高性能、方便共享状态、便于资源复用,关键是要正确处理线程安全问题,区分好什么资源可以共享,什么数据需要隔离。就像一个高效的奶茶店,一个制作间可以供多个店员使用,但每个店员都要管理好自己的订单,不能混乱。原创 2024-12-26 22:15:00 · 812 阅读 · 0 评论 -
JWT(二):拦截风险分析与应对措施
JWT 从后端传至前端存在被拦截风险,可通过多种措施应对。如设置合理有效期、用 HTTPS 协议传输、结合刷新令牌机制、进行权限细分与严格验证、监控及异常检测、采用多因素身份验证等,这些方法能有效减轻因 JWT 被拦截而导致的安全风险。原创 2024-12-23 22:15:00 · 1755 阅读 · 0 评论 -
JWT(一):JWT(JSON Web Token)原理
JWT 是开放标准,由 Header、Payload、Signature 组成,用于安全传递信息,适用于身份验证与信息交换等场景。JJWT 是其 Java 实现库,可便捷创建、解析和验证 JWT,如通过特定方法生成并验证,遵循相关规范且开源,在 Java 开发中有重要应用。原创 2024-12-18 12:00:00 · 981 阅读 · 0 评论 -
SSpring Boot2.x教程:(十六)只给接口开启https
本文介绍在 SpringBoot 中通过自签名证书开启 https 访问。先利用 JDK 的 keytool 命令生成密钥库与自签名证书,再将证书文件置于项目 resources 目录,于 application.yml 中配置相关参数,最后启动应用即可启用 https 访问。原创 2024-12-17 19:45:00 · 414 阅读 · 0 评论 -
Spring Boot2.x教程:(十五)关于RestTemplate和@Bean的一些遐想
理解 Spring Boot 中RedisTemplate的自定义配置与注入机制,我们能更好地在项目中运用 Redis 进行高效的数据处理与缓存管理,提升应用的性能与功能扩展性。原创 2024-12-10 19:30:00 · 1403 阅读 · 0 评论 -
Spring Boot2.x教程:(十四)Spring Security新线程为什么获取不到用户信息-续1
通过创建DelegatingSecurityContextExecutorService Bean 并在CompletableFuture中使用它,能够优雅地解决CompletableFuture异步任务中SecurityContext的传递问题。这种自动传递机制与手动传递方式相比,大大简化了代码逻辑,减少了因手动处理不当而导致安全漏洞的风险,提高了应用的安全性和可维护性。原创 2024-12-08 21:30:00 · 795 阅读 · 0 评论 -
Spring Boot2.x教程:(十三)Spring Security新线程为什么获取不到用户信息
为了确保在多线程环境中能够正确获取到用户 ID需要保证新启用的线程拥有当前线程的SecurityContext,本文介绍的手动传递SecurityContext可以做到这一点。原创 2024-12-07 12:15:00 · 437 阅读 · 0 评论 -
swagger/knife4j小事记录(三):Spring Security集成Knife4j访问授权问题及解决方案
增加了 favicon.ico 的访问许可,通过以上配置和调整,应该能够解决Spring Security环境下Knife4j的访问授权问题。原创 2024-12-04 21:00:00 · 896 阅读 · 0 评论 -
Spring Boot2.x教程:(十二)日志分割后续
通过添加 ConsoleAppender,成功解决了在IDE 中无法打印日志的问题。确保同时配置文件和控制台输出是保证日志功能正常工作的关键。至于上次为什么没有发现日志没有往IDE的控制台中打印呢,因为着急上线,根本没在IDE中启动测试……原创 2024-11-11 21:30:00 · 392 阅读 · 0 评论 -
Spring Boot2.x教程:(十一)AOP结合自定义注解实现权限验证
通过AOP实现权限校验具有以下优点:代码解耦、提高复用性、集中管理权限逻辑、易于维护和扩展、无侵入性,不影响原有业务代码。原创 2024-11-04 17:01:55 · 572 阅读 · 0 评论 -
Spring Boot2.x教程:(十)从Field injection is not recommended谈谈依赖注入
尽管字段注入在某些情况下看起来更简单,但它带来了许多潜在的问题,特别是在可测试性和可维护性方面。因此,我们建议使用构造函数或方法参数进行依赖注入,以提高代码质量和可读性。原创 2024-10-31 22:30:00 · 1333 阅读 · 0 评论 -
Spring Boot2.x教程:(九)AOP基本概念与示例
AOP 是一种强大的编程范式,通过将横切关注点与业务逻辑分离,提高了代码的可维护性和可扩展性。Spring Boot 提供了便捷的 AOP 支持,使得开发者能够轻松实现日志记录、事务管理等功能。原创 2024-10-28 21:45:00 · 1074 阅读 · 0 评论 -
Spring Boot2.x教程:(八)优雅地在工具类中使用@Autowired注解
在Spring Boot中,使用@Autowired注解来注入Bean是一个常见的做法。然而,当我们需要在工具类中使用静态方法时,直接使用@Autowired注解会遇到一些挑战。原创 2024-10-11 18:15:00 · 1005 阅读 · 0 评论 -
Spring Boot2.x教程:(七)解决 ClassNotFoundException:org.aspectj.lang.JoinPoint
解决 java.lang.ClassNotFoundException 异常通常涉及确保所有必要的依赖项已包含在项目中,并在构建系统和运行环境中正确配置。原创 2024-10-11 12:15:00 · 724 阅读 · 0 评论 -
Spring Boot2.x教程:(六)一次线上剔除nacos服务的经历——bootstrap.yml与application.yml的区别
一次线上停掉nacos服务引发的问题,这也充分暴漏了对bootstrap.yml和application.yml的了解不足,同时也没有跟上Spring Cloud变迁时本应留意的一些问题原创 2024-10-10 21:00:00 · 1533 阅读 · 0 评论 -
Spring Boot2.x教程:(五)日志分割
通过以上步骤,可以成功地在Spring Boot项目中实现每天生成一个新的日志文件,并且只保留最近7天的日志。这种方式不仅使得日志管理更加高效,还避免了单一大文件带来的管理和性能问题。再也不用使用Linux中的crontab定时删除日志了。原创 2024-10-09 20:45:00 · 884 阅读 · 0 评论 -
Spring Boot2.x教程:(四)Spring Boot2.6及之后版本整合Knife4j的问题
更强大的功能:PathPatternParser 支持更多更灵活的匹配模式,例如变量提取、命名空间匹配等等,可以处理更复杂的路径匹配场景。原创 2024-07-03 18:30:00 · 1226 阅读 · 0 评论 -
将带有html标签的字符串转为pdf文件
大家好,我是欧阳方超,可以关注我的公众号“欧阳方超”,后续内容将在公众号首发。最近一个项目有数据需要从第三方厂商获取,第三方厂商的接口返回的文本在cdata标签中,注意是带有p、span等标签的,我的目标是把它提取出来,并基于提取的内容生成pdf文件。本文展示了把带html标签的字符串转为pdf的方法,并解决了过程中遇到的问题。我们下次见。原创 2023-12-31 23:59:54 · 1316 阅读 · 0 评论 -
你以为出现NoClassDefFoundError错误会是什么原因?
罪过啊,我再次想到了我之前的想法——当你在进行一个原子操作的时候,请专心完成它再做其他事情。原创 2023-12-21 23:00:00 · 896 阅读 · 0 评论 -
maven引入第三方包但在最终的包中却找不到该第三方包的问题
本文介绍了如何解决systemPath引入本地jar无法打到最终jar中的问题,至于使用mvn install安装到本地,当然也是可以的,这里就不介绍了原创 2023-12-20 00:30:00 · 1166 阅读 · 0 评论 -
Java中的序列化与反序列化(四):Java类属性首字母或前两个字母大写获取属性值为null的问题
总之,还是从Java属性的命名规范上着手比较科学原创 2023-06-21 13:31:49 · 1571 阅读 · 0 评论 -
Spring Boot2.x教程:(三)Spring Boot工程控制mybatit-plus打印sql语句不打印结果集
接手一个项目,某个sql查询会把结果也打印出来,关键是查询结果还比较多,有几千条记录(话说也不多),但是就是不想让它输出到控制台,今天就来记录一下如何操作才能不把sql结果集打印出来原创 2023-02-15 18:15:38 · 4006 阅读 · 0 评论 -
swagger/knife4j小事记录(二)
1、概述大家好,我是欧阳方超。今天的事情还是跟swagger(确切地说时knife4j)有关,在整合了swagger的SpringBoot项目中,引入的依赖如下:<!-- https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter --> <dependency> <groupId>io.springfox</groupId> <artifactId&原创 2022-02-20 15:23:22 · 1299 阅读 · 0 评论 -
swager小事记录(一)
1、概述大家好,我是欧阳方超。今天这个事情还要从一个现象说起,往下看吧。在使用swagger时进行接口管理时,在SwaggerConfig类中使用@Bean定义的一组接口在swagger页面中始终找不到,并伴随着下面的报错日志:2022-02-19 17:31:34.343 ERROR 9260 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Unable to scan documentation context 商原创 2022-02-19 21:45:03 · 1675 阅读 · 0 评论 -
SpringBoot打成war在Linux中运行报错-The temporary upload location [/tmp/……] is not valid
1、现象描述由于某种你知道或不知道的原因,Spring Boot工程被打成了war包进行部署,在Linux上部署后在请求某功能时报错,关键日志如下:nested exception is java.io.IOException: The temporary upload location[/tmp/tomcat.816155955786196858.8084] is not valid显示“临时的上次路径无效”,从Linux上查看该目录,果然也没有,那报错也就不足为怪了。2、问题解决问了其他同原创 2022-02-10 16:31:36 · 1067 阅读 · 0 评论 -
Spring Boot2.x教程:(二)对静态资源的处理
1、概述记录一下Spring中对静态资源的处理。2、 默认对静态资源的处理默认创建的Spring Boot工程,一般都会存在resources/static目录,通常情况下放在这个目录里的静态资源,比如图片、html页面、js文件等,都是可以直接访问的。在Spring Boot工程中这几个地方可以放置静态资源,它们分别是:classpath:/META-INFclasspath:/resources/classpath:/static/classpath:/public/3、自定义静态资原创 2022-02-04 17:44:11 · 795 阅读 · 0 评论 -
jar包在CentOS中启动时遭遇蜗牛般的速度
SpringBoot在CentOS7中启动,特别慢,得几百秒才能完成,原因竟然是 /etc/hosts中ip后机器名不存在或与/etc/hostname不一致。参考centos7 springboot jar 启动非常慢;解决SpringBoot项目jar包启动慢;centos7 里启动jar包启动非常慢解决方法...原创 2021-11-10 23:24:31 · 1734 阅读 · 0 评论 -
Spring Boot项目中前后端交互时Date类型数据的处理问题
1、概述数据库中为了记录数据的创建或修改时间,通常会加上时间类型的字段,在后端如果不对这类字段处理返回给前端的格式往往不是易读格式,前端往后端传时间类型的值时也会存在类似问题,本文针对此类问题展开讨论。...原创 2021-08-27 07:59:14 · 585 阅读 · 0 评论 -
Spring Boot2.x教程:(一)数据源概述
1、 概述不夸张地说,系统的运行过程就是处理数据的过程,数据的结构多种多样:结构化数据、半结构化数据以及非结构化数。结构化数据作为数据中的一个庞大群体,在各市各样的系统中充当着重要的角色,本篇就研究下Spring Boot如何与关系型数据库进行集成工作的。2、配置单个数据源在配置文件中通过一些属性(spring.datasource.*)可以控制数据源的配置,比如:spring: datasource: url: "jdbc:mysql://localhost/test" us原创 2021-08-24 13:12:16 · 269 阅读 · 0 评论 -
spring-boot-maven-plugin爆红
问题描述创建Spring Boot项目后,在pom文件中,会出现一个artifactId为spring-boot-maven-plugin的插件,并且显示该插件找不到。<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>原创 2021-08-22 20:27:08 · 596 阅读 · 0 评论 -
启动报错
报错信息java: java.lang.ExceptionInInitializerErrorUnable to make field private com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors com.sun.tools.javac.processing.JavacProcessingEnvironment.discoveredProcs accessible: module jdk.co原创 2021-05-10 13:16:13 · 1085 阅读 · 0 评论