![](https://img-blog.csdnimg.cn/4a4e54cbaec34fbf9c73ba796256ddec.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
springboot
文章平均质量分 65
springboot笔记
一路向北North
这个作者很懒,什么都没留下…
展开
-
springboot基础模板
这里只是记录一下创建好之后最基础的依赖信息。原创 2024-05-15 09:17:55 · 124 阅读 · 0 评论 -
springboot基础(82):分布式定时任务解决方案shedlock
多节点或者多服务器拥有相同的定时任务,这种情况下,不同节点的相同定时任务会被重复执行。如何解决分布式定时任务重复执行问题?此刻我们可以引入分布式定时任务解决shedlock来解决这种定时任务重复执行的问题。Shedlock是一个基于Java的分布式锁库,用于解决分布式环境下的并发问题。它可以确保同一时间只有一个线程能够获取到锁,从而避免了多线程竞争导致的数据不一致或错误的问题。Shedlock的原理是在数据库中创建一个特殊的表,用于记录锁的状态和持有者信息。原创 2024-02-23 10:17:37 · 1034 阅读 · 0 评论 -
springboot基础(81):设置redis序列化器
序列化器有多种,默认的序列是JdkSerializationRedisSerializer ,通常性能较差,相对而言,我们会使用性能最好的Kryo序列化器来序列化。原创 2023-12-08 14:58:06 · 274 阅读 · 0 评论 -
springboot基础(80):redis geospatial的应用
基于redis GEO 的应用比较广泛,比较需要获取附件5公里的停车场或者共享单车。原创 2023-12-07 15:34:43 · 265 阅读 · 0 评论 -
springboot基础(79):通过pdf模板生成文件
通过pdf模板生成文件。原创 2023-08-31 21:49:56 · 1859 阅读 · 4 评论 -
springboot基础(78):Freemarker模板生成word文档
利用Freemarker模板生成word文档。示例,将左侧的模板生成为右侧的文档并下载。原创 2023-06-23 19:41:33 · 2473 阅读 · 2 评论 -
springboot基础(77):生成验证码
Springboot项目使用验证码效果示例。原创 2022-12-29 18:06:38 · 419 阅读 · 0 评论 -
springboot基础(76):TransactionTemplate事务
Spring除了提供了声明式事务之外,也可以使用自定义事务。原创 2022-12-26 16:59:17 · 1416 阅读 · 0 评论 -
springboot基础(75):java如何解析yaml
Java解析yaml文件。原创 2022-12-24 22:26:40 · 1089 阅读 · 0 评论 -
springboot基础(74):@Qualifier和@Primary切换Bean
实际开发中,我们可能需要切换不同的服务,例如切换短消息服务商,更换对象存储服务商(阿里云OSS,或者七牛云对象存储)。我们可以如何切换方式呢?原创 2022-12-15 22:08:22 · 408 阅读 · 0 评论 -
springboot基础(73):jasypt对配置文件加密解密
生产项目中,如果把配置文件的账号名和密码明文配置在配置文件中,如果发生泄漏将会非常危险。提交代码到Git时,为了避免将明文的敏感信息提交,我们可以采用jasypt加密处理,只配置加密信息,可以防止第三方获取直接破译。编写测试用例,并执行运行结果原创 2022-12-03 12:44:27 · 787 阅读 · 0 评论 -
springboot基础(72):Redisson分布式锁
并发执行是比较场景的场景,单机情况下,我们可以利用锁机制来实现顺序执行。然而微服务时代,多节点运行,如何让某业务可以同一时刻只允许一个任务运行呢?Redisson实现分布式锁的用法,可以很容易实现分布式锁的配置。原创 2022-10-09 13:55:44 · 1742 阅读 · 0 评论 -
springboot基础(71):布隆过滤器的应用
什么是布隆过滤器?布隆过滤器有什么作用?微服务中布隆过滤器的方案?布隆过滤器(Bloom Filter)是由 Bloom 于 1970 年提出的。我们可以把它看作由二进制向量(或者说位数组)和一系列随机映射函数(哈希函数)两部分组成的数据结构。相比于我们平时常用的的 List、Map 、Set 等数据结构,它占用空间更少并且效率更高,但是缺点是其返回的结果是概率性的,而不是非常准确的。理论情况下添加到集合中的元素越多,误报的可能性就越大。并且,存放在布隆过滤器的数据不容易删除。原创 2022-10-07 15:35:36 · 1134 阅读 · 0 评论 -
springboot基础(70):多节点登录session共享
通常我们的session保存在服务器内存中,那么当我们部署多台服务器时,如何实现session共享?原创 2022-09-25 02:13:01 · 1133 阅读 · 0 评论 -
springboot基础(69):Controller相关注解
controller相关的注解的使用和解释。原创 2022-09-13 02:39:02 · 3191 阅读 · 1 评论 -
springboot基础(68):本地事务@Transactional简介
使用注解后,再次测试,同样发生了内容长度超长的问题,查看数据库,发现数据库并没有新增记录,很显然第2个insert的失败和第1个insert的成功是同一个事务,所以虽然第一个insert成功,但是第二个操作失败了,所以数据被回滚了,保证了事务的完整性,同时成功或失败。我们直接让name1长度小于10位,name2长度大于10位,此时发生了异常,查看数据库,发现第一个insert的记录在数据库中可以看到,第二个insert则没有插入到数据库,这就发生了事务问题。否则就会出现A减少了100块,而B没有变化。原创 2022-09-12 15:59:00 · 389 阅读 · 0 评论 -
循序渐进学习AOP切面编程(包含详细demo)
AOP切面编程5种注解@Before、@After、@AfterRunning、@AfterThrowing、@Around如何匹配pointcut?语法规则是怎样的?原创 2022-09-11 16:49:20 · 527 阅读 · 0 评论 -
springboot基础(67):利用切面编程实现自定义的@MyCacheable
什么是切面编程?如何实现切面编程?AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。实际上,AOP 的底层是通过 Spring 提供的的动态代理技术实现的。在运行期间,Spring通过动态代理技术动态的生成代理对象,代理对象方法执行时进行增强功能的介入,在去调用目标对象的方法,从而完成功能的增强。原创 2022-09-10 01:53:08 · 580 阅读 · 0 评论 -
springboot基础(66):spring缓存@Cacheable设置缓存有效期
在使用@Cacheable注解时,数据被缓存到redis服务器,但是没有设置失效时间。查看Cacheable的源码,也没有提供设置缓存时间的属性和办法。如何给缓存设置时间呢?原创 2022-09-09 18:48:48 · 6933 阅读 · 0 评论 -
springboot基础(65):导出和导入Excel文件
web开发项目,经常会有导出和导出excel文件的需求。如何导出(下载到excel文件)和导入excel(从excel向系统导入数据)?excel文件的类型有.xlsexcel 2007之前的格式,包含2007.xlsxexcel 2007之后的格式,内存占用更小。.csv该文件可以以txt形式读取,内容之间用英文逗号隔开。注意:本文只涉及到xls和xlsx文件的导入和导出。csv文件的实质就是txt,所以本文不做介绍。.....................原创 2022-08-26 13:50:54 · 2137 阅读 · 0 评论 -
IDEA指定参数启动项目副本
有时候项目测试需要启动,需要将同一个项目启动多个副本,怎么样指定参数启动副本?原创 2022-08-25 13:10:06 · 330 阅读 · 0 评论 -
cron表达式转换成时间(Java)
有时候,为了使用者方便查看cron表达式的实际执行时间,我们需要将表达式转换成具体的时间,以显示给用户判断是否符合需求。表示按照cron表达式,在date之后未来10次的执行时间(不足10次,则按照实际次数返回)将时间转换成cron表达式,这个cron表达式表示date时间执行任务。表示按照cron表达式,在date之后下一次的执行时间。maven项目引入依赖。原创 2022-08-23 20:25:11 · 6075 阅读 · 0 评论 -
springboot基础(64)利用redisTemplate实现Redis锁
多服务器运行时,利用redis实现分布式锁。redis.setnx ,如果key不存在则插入,否则返回失败。原创 2022-08-23 16:46:46 · 2098 阅读 · 2 评论 -
MyQuartz高可用定时任务管理
在项目中,我们经常需要用到定时任务。很多场景需要用到定时任务商家经常在后台定时发布一款新手机。用户定时发布一条邮件。财务系统每月1号进行财务对账。这些项目无疑都有一个共同点就是需要用到定时任务。前面我们已经直到了使用quartz的@Scheduled注解方式开发定时任务,这显然很不方便动态发布定时任务。} }基于上面的定时任务需要,我们需要一个手动可以修改的定时发布任务。既可以完成定时发布手机这样的一次性任务,也可以完成周期性的任务。并且必须保证系统重启后依然可以继续执行原来的任务。原创 2022-08-23 15:33:16 · 545 阅读 · 0 评论 -
springboot基础(63):Springboot整合阿里云短信发送
整合阿里云短信发送。原创 2022-08-16 09:34:32 · 1679 阅读 · 2 评论 -
springboot基础(62):Springboot整合Thymeleaf
Thymeleaf是什么?Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。它与 JSP,Velocity,FreeMaker 等模板引擎类似,也可以轻易地与 Spring MVC 等 Web 框架集成。与其它模板引擎相比,Thymeleaf 最大的特点是,即使不启动 Web 应用,也可以直接在浏览器中打开并正确显示模板页面。...原创 2022-08-12 14:09:17 · 330 阅读 · 0 评论 -
springboot基础(61):如何开启yml提示功能
自己定义的starter,配置yml文件时没有提示,如何增加提供功能?demo以ip-spring-boot-starter为例。原创 2022-08-02 23:22:24 · 1905 阅读 · 0 评论 -
springboot基础(60):完整的自定义ip-spring-boot-starter(包含yml提示功能)
如何开发一个xxx-spring-boot-starter插件?自定义starter如何开启yml提示功能?原创 2022-08-02 21:04:22 · 1093 阅读 · 0 评论 -
springboot基础(59):自定义拦截器
自定义拦截器自定义拦截器System.out.println("preHandle我在方法执行前面执行"+System.currentTimeMillis());配置拦截器/***当然可以添加多个拦截器,需要拦截器的执行是有顺序的}}添加一个controller,测试拦截器功能}}启动服务器,发起请求localhost8080/hello/,测试拦截器观察日志,可以发现preHandle在方法前执行postHandle在方法后执行。.........原创 2022-08-01 12:49:31 · 307 阅读 · 0 评论 -
springboot基础(58):排除加载某项技术
配置扫描META-INF/spring.factories可参考的文档;springboot进阶(6)自定义memcached-spring-boot-starter。原创 2022-07-31 23:58:41 · 438 阅读 · 0 评论 -
springboot基础(57):整合FreeMarker
本章介绍如何整合FreeMarker,简单的快速入门。FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模原创 2022-07-30 18:13:02 · 1431 阅读 · 0 评论 -
springboot基础(56):发送包含html代码和附件的邮件
使用springboot快速发送邮件。原创 2022-07-29 23:52:35 · 699 阅读 · 0 评论 -
springboot原理(2):bean的加载控制(基于ImportSelector)
bean的加载控制指根据特定的情况对bean进行选择性加载以达到适用于项目的目标。原创 2022-07-27 11:41:08 · 263 阅读 · 0 评论 -
springboot原理(1):bean的多种加载方式
简述bean的几种加载方式}}上面的代码,两个Bean,dog2创建的是Dog对象吗?DogFactoryBean通过实现FactoryBean来实现Bean的创建。如下例子。}/***是否单例*@return}}运行代码,查看。可以发现DogFactoryBean创建的也是Dog对象。names){}通过FactoryBean的方式创建Bean,可以在Bean的初始化时做一些其它事情,比如设置参数,进行参数检查等。......原创 2022-07-26 16:57:12 · 826 阅读 · 0 评论 -
springboot基础(55):Spring Boot Admin的自定义端点
构建自己的端点内容}}运行项目,并执行端点查询localhost8080/actuator/myendpoint,返回结果自动转换为json数据。原创 2022-07-22 00:22:25 · 546 阅读 · 0 评论 -
springboot基础(54):Spring Boot Admin的metrics端点指标控制
定义接口}实现,使用构造器方法将MeterRegistry的bean对象设置进去counter=registry.counter("下单指标");System.out.println("付款...");}}编写controller进行调用}}启动服务器测试,发起请求localhost可以看到有自己定义的下单指标,和对应的监控数据。httpshttpshttps。...原创 2022-07-21 23:29:36 · 505 阅读 · 0 评论 -
springboot基础(53):Spring Boot Admin的health端点指标控制
健康指标控制。原创 2022-07-21 22:03:30 · 424 阅读 · 0 评论 -
springboot基础(52):Spring Boot Admin的info端点指标控制
如何控制info端点。info端点未显示任何内容。原创 2022-07-21 19:32:54 · 515 阅读 · 0 评论 -
springboot基础(51):整合kafka
springboot如何整合kafka。原创 2022-07-20 15:58:59 · 623 阅读 · 0 评论 -
springboot基础(50):linux安装kafka
Kafka是消息中间件的一种,可以用于消息队列的处理。https本章的官方参考资料https。原创 2022-07-20 01:57:38 · 1010 阅读 · 0 评论