SpringBoot
文章平均质量分 53
springboot
Spirit_NKlaus
逆风的方向,更适合飞翔
展开
-
Springboot集成Ehcache3实现本地缓存
如果只需要在单个应用程序中使用本地缓存,则可以选择Ehcache;它支持内存和磁盘存储,这里不以注解方式演示,通过自己实现缓存管理者灵活控制缓存的读写;5、编写缓存管理者,来控制缓存的增删改查。6、编写controller进行简单测试。3、配置ehcache.xml文件。7、分别调用接口查看日志打印。4、编写缓存策略枚举。原创 2024-04-15 17:27:26 · 1047 阅读 · 1 评论 -
Springboot使用外部yml启动
有时候我们想更灵活的使用配置文件,例如同一套代码去部署多个客户,此时差异大的地方其实只是配置文件,这是我们希望每次启动项目从外部读取配置文件来加载项目,你可以使用一些配置中心来实现,当然也可以自己定义外部文件来实现。项目模拟外部文件读取。原创 2024-03-11 14:57:08 · 736 阅读 · 0 评论 -
Springboot实现缓存预热
很多时候我们代码中使用缓存时都是先判断缓存中没有数据我们再读取数据库而有则直接使用缓存数据,而在系统冷启动(当系统重启或新启动时,缓存是空的,这被称为冷启动)时,我们毫无意外都是直接获取数据库的内容,这时候缓存的命中率几乎为0,这时候我们需要考虑业务系统的缓存预热功能,在系统启动之前通过预先将常用数据加载到缓存中,以提高缓存命中率和系统性能的过程。缓存预热的目的是尽可能地避免缓存击穿和缓存雪崩。2、实现InitializingBean接口,并在afterPropertiesSet方法中执行缓存预热的逻辑。原创 2024-03-04 11:40:21 · 806 阅读 · 0 评论 -
Springboot接口参数校验
在设计接口时我们通常需要对接口中的非法参数做校验,以降低在程序运行时因为一些非法参数而导致程序发生异常的风险,例如登录的时候需要校验用户名密码是否为空,创建用户的时候需要校验邮件、手机号码格式是否准确。如果你的一个实体中的字段某一些是新增的时候必传,某一些修改时又不用传,那么对于不用传的字段肯定不需要校验的,这时候如果我们共用一个实体作为多个接口参数那肯定存在兼容问题,此时你就可以考虑将参数分组判断。接口的第一个参数是 自定义注解类型,第二个参数是 被注解字段的类。addUserV2接口。原创 2024-03-01 15:30:09 · 1040 阅读 · 0 评论 -
Springboot集成Druid实现监控功能
Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource等等等,秒杀一切。Druid可以很好的监控DB池连接和SQL的执行情况,天生就是针对监控而生的DB连接池。1、数据源页面:是当前DataSource配置的基本信息,上述配置的Filter可以在里面找到,如果没有配置Filter(一些信息会无法统计,例如“SQL监控”,会无法获取JDBC相关的SQL执行信息)。原创 2024-02-22 19:20:41 · 2932 阅读 · 0 评论 -
Springboot简单设计两级缓存
如果是分布式环境下,一级缓存之间也会存在一致性问题,当一个节点下的本地缓存修改后,需要通知其他节点也刷新本地缓存中的数据,否则会出现读取到过期数据的情况,这一问题可以通过类似于Redis中的发布/订阅功能解决。定义一个注解,用于添加在需要操作缓存的方法上,使用cacheName + key作为缓存的真正key,timeOut为可以设置的二级缓存Redis的过期时间,type是一个枚举类型的变量,表示操作缓存的类型。但是在设计中,还是要考虑一些问题的,例如数据一致性问题。在yml中配置redis的相关信息。原创 2024-01-31 20:28:12 · 1251 阅读 · 0 评论 -
Springboot集成jasypt实现配置文件加密
简单配置流程为配置文件加入秘钥配置项jasypt.encryptor.password(这里演示不使用这种方式,采用启动时-D参数注入,也可以放在配置中心等地方进行读取),并将需要加密的value值替换成预先经过加密的内容ENC(密文)。在springboot启动类上加上启动参数 -Djasypt.encryptor.password=qwer1997,添加方式和测试类一样 ,启动项目没有发生报错,调用查询接口查询一下数据,数据正常返回,说明集成成功。我们以单密钥对称加密方式为例简单演示一下。原创 2024-02-05 14:50:42 · 775 阅读 · 0 评论 -
Springboot集成Javamelody监控
JavaMelody的目标是监视QA和生产环境中的Java或Java EE应用服务器。它不是模拟用户请求的工具,而是根据用户对应用程序的使用情况来衡量和计算应用程序实际操作的统计信息的工具。详细介绍请参考https://github.com/javamelody/javamelody/wiki/UserGuide。以方式二集成的结果为例,启动服务后访问http://localhost:8081/config/monitoring。方式二、使用javamelody原生的包。基于更有限的响应时间进行优化。原创 2024-01-31 11:54:46 · 805 阅读 · 0 评论 -
Springboot常见跨域解决方案
当修饰方法时,表示此方法可以跨域,使用此方式只能实现局部跨域,当一个项目中存在多个类的话,使用此方式就会比较麻烦(需要给所有类上都添加此注解)。此方式是解决跨域问题最原始的方式,但它可以支持任意的 Spring Boot 版本(早期的 Spring Boot 版本也是支持的)。但此方式也是局部跨域,它应用的范围最小,设置的是方法级别的跨域。重写 ResponseBodyAdvice 接口中的 beforeBodyWrite(返回之前重写)方法,此实现方式也是全局跨域,它对整个项目中的所有接口有效。原创 2024-01-30 10:20:51 · 660 阅读 · 0 评论 -
Springboot优雅实现对接口返回统一封装
前端在调用后端接口时往往不同的接口返回的数据是不一样的,但是通常我们会与前端约定一个固定的返回格式,通过固定的格式告诉他们什么时候接口是返回成功,什么时候返回失败,返回成功后他们如何拿到接口返回的数据去渲染前端页面。所以我们需要定义一个统一的标准返回格式的。我们发现delete的方法返回的json格式没有格式化,我们只需要稍加改造一下delete方法就能正常返回格式化的数据。对于一些不想返回固定包装的方法可以在方法上加上@IgnoreAutoResponse注解即可返回原始的格式。原创 2023-12-20 15:21:32 · 1953 阅读 · 0 评论 -
Springboot整合Elasticsearch初体验
我使用的是springboot的2.3.5.RELEASE版本和Elasticsearch的7.6.0版本,这里贴出Elasticsearch的依赖,其它的依赖按照自己的需求自行添加。<!-- elasticsearch start --><dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-c原创 2021-02-09 21:02:53 · 251 阅读 · 0 评论 -
Springboot整合EasyExcel实现Excel导入导出
引入easyExcel依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.6</version></dependency>EasyExcelUtil/** * EasyExcel工具类 * * @author: YuanXing on 2020/1.原创 2020-12-23 20:46:00 · 1531 阅读 · 1 评论 -
SpringBoot使用freemarker动态生成word文档
最近做项目有个需求,在动态生成word文档的同时插入电子签名图片,这里使用freemarker来实现。首先引入freemarker依赖:<!-- freemarker --><dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version><原创 2020-06-10 11:20:49 · 932 阅读 · 0 评论 -
SpringBoot对SpringMvc的自动装配
面试中很容易被问到SpringBoot对SpringMvc的自动装配这个问题,最近看了一些资料,自己稍微总结了一下SpringBoot对SpringMvc做了很多集成,也就是自动装配,下面来浅读一下WebMvcAutoConfiguration这个配置类1,视图解析器的ContentNegotiatingViewResolver作用是根据方法的返回值决定是转发还是重定向,存在一个视图解析器的集...原创 2020-04-27 17:48:53 · 510 阅读 · 0 评论 -
Springboot整合Easy Excel自定义导出模板
我是用的springboot,基本jar包不多说,加入Easy Excel的jar包<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>1.1.2-beta5</ver...原创 2020-03-28 10:28:46 · 3844 阅读 · 0 评论 -
Springboot整合RabbitMQ发邮件
分享一下在springboot中整合rabbitmq来发送邮件,这一玩也是完了两小时,一步一个坑。。。关于rabbitmq的介绍就不说,先引入依赖<!-- 邮件 依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-b...原创 2020-04-16 17:20:16 · 1072 阅读 · 0 评论 -
Springboot全局异常处理从配置文件中读取自定义异常信息
自定义异常的教程社区上有很多,今天抽空研究了一下把自定义的异常信息写到配置文件中,自我感觉这样便于使用与维护,下面简单分享一下1,springboot常用的pom依赖就不列出来了,这里我加了一个依赖 <!-- commons组件读取配置文件相关依赖 --> <dependency> <groupId>commons-configuration...原创 2019-12-31 16:31:59 · 1218 阅读 · 0 评论 -
SpringBoot中使用拦截器
1,定义拦截器类 implements HandlerInterceptorpublic class MyInterceptor implements HandlerInterceptor{ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response,...原创 2018-08-25 15:35:34 · 446 阅读 · 0 评论 -
SpringBoot添加Swagger配置
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法/参数/模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。1,先在pom.xml文件里面加入依赖<!--配置swagger-->...原创 2018-08-23 10:47:55 · 1503 阅读 · 0 评论 -
SpringBoot @Bean
1,定义bean@Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。添加的bean的id为方法名下面是@Configuration里的一个例子@Configurationpublic class AppConfig { @Bean public TransferService transferSe...转载 2018-08-20 11:47:42 · 13111 阅读 · 1 评论 -
SpringBoot单元,集成测试
1、在pom包中添加spring-boot-starter-test包引用<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope&g...转载 2018-08-18 20:52:47 · 326 阅读 · 0 评论