
Spring
文章平均质量分 71
Micrle_007
这个作者很懒,什么都没留下…
展开
-
spring @Order注解
Order多个相同类型处理器的执行顺序:例如多个异常处理器处理相同类型的异常。多个切面(Aspect)的执行顺序:在 AOP 中控制不同切面的执行先后顺序。多个过滤器(Filter)的执行顺序:在 Spring Web 中控制过滤器的执行顺序。通过使用@Order注解,你可以明确指定这些组件的执行顺序,从而确保应用行为符合预期。原创 2024-06-18 20:44:02 · 465 阅读 · 0 评论 -
jpa下hibernate的ddl-auto的各种属性
一般选择validate/update/none,绝对不能选 create, create-drop,update能帮助建表。如果希望实体类发生改动而数据库表做出相应的更改且不破坏数据库现有的数据,要将spring.jpa.hibernate.ddl-auto属性值设置为update。这里还有一点,就算把ddl-auto设置成update值,也不能识别对表结构的所有更改,往往只能识别出增加的字段,比如修改字段名,修改字段类型或者删除一个字段都是不能够识别的。原创 2024-06-18 10:15:12 · 2123 阅读 · 0 评论 -
spring validator使用
在开发现代应用程序时,数据验证是确保用户输入的正确性和应用程序数据完整性的关键方面。Spring Boot 提供了强大的数据验证机制,使开发者能够轻松地执行验证操作。本文将深入介绍 Spring Boot 中的 Validation,以及如何在应用程序中正确使用它。因Springboot的默认内置了(Spring boot 2.3以前版本),虽然也能做到数据校验,但是考虑到是一个抽象层,使得验证框架的具体实现变得可插拔。这意味着,除了,开发者可以选择其他符合 Bean Validation 规范的实现。原创 2024-05-16 22:23:07 · 799 阅读 · 0 评论 -
SpringBoot接收参数的19种方式
https://juejin.cn/post/7343243744479625267?share_token=6D3AD82C-0404-47A7-949C-CA71F9BC9583原创 2024-05-14 20:31:42 · 370 阅读 · 0 评论 -
springboot @Async 失效的9种场景
这个问题还是比较有意思的,今天这篇文章总结了@Async注解失效的9种场景,希望对你会有所帮助。原创 2024-05-08 18:07:41 · 1286 阅读 · 0 评论 -
Spring 核心扩展点
一般情况下,Spring通过反射机制利用bean的class属性指定支线类去实例化bean,在某些情况下,实例化Bean过程比较复杂,如果按照传统的方式,则需要在bean中提供大量的配置信息。使用场景:用户可以扩展这个类,来为要实例化的bean作一个代理,比如为该对象的所有的方法作一个拦截,在调用前后输出一行log,模仿。可以看到,该类用于执行各种驱动接口,在bean实例化之后,属性填充之后,通过执行以上红框标出的扩展接口,来获取对应容器的变量。其作用是在bean的初始化阶段,如果对一个方法标注了。转载 2024-04-04 21:31:08 · 94 阅读 · 0 评论 -
spring三级缓存
二级缓存:earlySingletonObjects。一级缓存:SingletonObjects。原创 2023-12-21 14:56:02 · 940 阅读 · 0 评论 -
Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
当标记在一个方法上时表示该方法是支持缓存的,当标记在一个类上时则表示该类所有的方法都是支持缓存的。我们前面提到的@Cacheable、@cacheEvict等也可以标注在接口上,这对于基于接口的代理来说是没有什么问题的,但是需要注意的是当我们设置proxy-target-class为true或者mode为aspectj时,是直接基于class进行操作的,定义在接口上的@Cacheable等Cache注解不会被识别到,那对应的Spring Cache也不会起作用了。下面是几个使用参数作为key的示例。转载 2023-11-14 10:33:36 · 1597 阅读 · 0 评论 -
spring 常见扩展点
spring转载 2023-06-17 09:19:01 · 430 阅读 · 0 评论 -
Spring 注解面面通 之 @CrossOrigin 注解应用详解
默认情况下,只允许客户端访问:Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。注意:CORS处理时,从Forwarded、X-Forwarded-Host、X-Forwarded-Port、X-Forwarded-Proto取请求源值。若为Cache-Control、Content-Language、Expires、Last-Modified、Pragma,则无需设置。转载 2023-06-10 07:59:39 · 2727 阅读 · 0 评论 -
spring cache和SpEL表达式
spring cache原创 2023-05-16 08:50:53 · 1652 阅读 · 0 评论 -
枚举类定义异常类型以及注解@RestControllerAdvice用法途
RestControllerAdvice是一个组合注解,由@ControllerAdvice、@ResponseBody组成,而@ControllerAdvice继承了@Component,因此@RestControllerAdvice本质上是个Component,用于定义@ExceptionHandler,@InitBinder和@ModelAttribute方法,适用于所有使用@RequestMapping方法。@ExceptionHandler注解,标明了该处理方法体处理的异常类型。原创 2023-03-13 15:55:31 · 744 阅读 · 0 评论 -
SpringBoot @RestControllerAdvice注解对返回值统一封装
spring转载 2023-03-13 15:04:01 · 505 阅读 · 0 评论 -
Spring核心扩展点
我们一说到spring,可能第一个想到的是IOC(控制反转) 和AOP(面向切面编程)。没错,它们是spring的基石,得益于它们的优秀设计,使得spring能够从众多优秀框架中脱颖而出。除此之外,我们在使用spring的过程中,有没有发现它的扩展能力非常强。由于这个优势的存在,让spring拥有强大的包容能力,让很多第三方应用能够轻松投入spring的怀抱。比如:rocketmq、mybatis、redis等。今天跟大家一起聊聊,在Spring中最常用的11个扩展点。原创 2023-03-12 14:01:51 · 318 阅读 · 0 评论 -
@Autowired作用在方法上
java转载 2023-02-01 11:23:06 · 3010 阅读 · 0 评论 -
Nacos + OpenFeign 的正确使用方式
摘要原创 2022-06-18 12:57:47 · 6406 阅读 · 0 评论 -
get和post接口加密
这日,刚撸完2两代码,正准备掏出手机摸鱼放松放松,只见老大朝我走过来,并露出一个”善意“的微笑,兴伟呀,xx项目有于安全问题,需要对接口整体进行加密处理,你这方面比较有经验,就给你安排上了哈,看这周内提测行不...,额,摸摸头上飘摇着而稀疏的长发,感觉我爱了。和产品、前端同学对外需求后,梳理了相关技术方案, 主要的需求点如下:尽量少改动,不影响之前的业务逻辑; 考虑到时间紧迫性,可采用对称性加密方式,服务需要对接安卓、IOS、H5三端,另外考虑到H5端存储密钥安全性相对来说会低一些,故分针对H5和转载 2022-05-03 09:00:56 · 2809 阅读 · 2 评论 -
处理器拦截器(HandlerInterceptor)详解
简介SpringWebMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于处理器进行预处理和后处理。应用场景1、日志记录,可以记录请求信息的日志,以便进行信息监控、信息统计等。2、权限检查:如登陆检测,进入处理器检测是否登陆,如果没有直接返回到登陆页面。3、性能监控:典型的是慢日志。HandlerInterceptorpublic interface HandlerInterceptor { /** * 预处理回调方法,实现处理器的预处理(如检转载 2022-04-21 10:17:09 · 2103 阅读 · 0 评论 -
Spring里用到了哪些设计模式
前言前几天,一位读者面阿里被问到一个问题:Spring框架用到了哪些设计模式?,答的不是很好,于是打算写篇文章讲讲这个!文章首发在公众号(月伴飞鱼),之后同步到个人网站:xiaoflyfish.cn/ 面经:社招一年半面经分享(含阿里美团头条京东滴滴)微信搜索:月伴飞鱼,交个朋友,进面试交流群公众号后台回复666,可以获得免费电子书籍觉得不错,希望点赞,在看,转发支持一下,谢谢代理模式所谓代理,是指它与被代理对象实现了相同的接口,客户端必须通过代理才能与被代理的目标类进行交..转载 2022-02-22 09:22:01 · 179 阅读 · 0 评论 -
springboot 和springMVC interceptor使用
HandlerInterceptor简介拦截器我想大家都并不陌生,最常用的登录拦截、或是权限校验、或是防重复提交、或是根据业务像12306去校验购票时间,总之可以去做很多的事情。我仔细想了想这里我分三篇博客来介绍HandlerInterceptor的使用,从基本的使用、到自定义注解、最后到读取body中的流解决无法多次读取的问题。1、定义实现类定义一个Interceptor 非常简单方式也有几种,我这里简单列举两种1、类要实现Spring 的HandlerInterceptor 接口2、原创 2022-02-18 16:22:25 · 566 阅读 · 0 评论 -
spring创建定时任务
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http:/.原创 2022-01-28 15:00:04 · 814 阅读 · 0 评论 -
springboot项目中使用spring的xml文件
1、spring.xml配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"...原创 2022-01-22 11:00:51 · 1211 阅读 · 0 评论 -
springboot和springframework以及jdk版本的对应关系
Spring boot 版本 Spring Framework jdk 版本 maven 版本 1.2.0 版本之前 6 3.0 1.2.0 4.1.3+ 6 3.2+ 1.2.1 4.1.3+ 7 3.2+ 1.2.3 4.1.5+ 7 3.2+ 1.3.4 4.2.6+ 7 3.2+ 1.3.6 4.2.7+ 7 3.2+ 1.3.7 4.2.原创 2022-01-22 10:06:46 · 3717 阅读 · 0 评论 -
springboot 项目里使用spring.xml文件
注:启动类中得添加一个@ImportResource注解1、beans.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframewo...原创 2022-01-12 22:03:36 · 467 阅读 · 0 评论 -
Spring整合jasypt使用说明
https://blog.51cto.com/aiilive/1420903jasypt既然是以简单的方式来解决java开发中的加密问题,自然使用起来难度不是很大。加密是从系统安全性方面考虑的,因此jasypt更像是面向方面的解决办法,不管你的系统中配置文件,敏感信息是否已经加密或者没有加密,jasypt都能够轻松的嵌入其中,开发人员就不用专门考虑加密算法和代码的编写。要想深入了解jasypt是如何将加密解密和摘要算法组织起来,轻松的解决开发中加密问题以及和第三方组件集成,查看它的源代码是不错...原创 2022-01-12 13:59:06 · 3012 阅读 · 0 评论 -
spring @POSTConstruction注解的作用
@PostConstruction从注解的名字就可以看出意思是:后构造,顾名思义就是在构造方法执行之后的行为,一个很典型的应用就是很多初始化的操作,而这些初始化的操作又dependent on 依赖注入对象,具体解释如下:作用:@PostConstruct注解的方法在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为一些数据的常规化加载,比如数据字典之类的。执行顺序:其实从依赖注入的字面意思就可以知道,要将对象p注入到对象a,那么首先就必须得生成.原创 2021-08-01 09:05:16 · 540 阅读 · 0 评论 -
Spring Boot@Component注解下的类无法@Autowired的问题
这个问题心累(确实)在把我的一个非Web程序迁移从Spring迁移到SpringBoot时,出现了在@Component注解下@Autowired的类为null的情况,也就是没注入成功,或者说是此类在bean加载之前就被调用了。试了各种办法,修改扫描包,修改@Component注解等等,皆未成功,后来看到了一个方法,探究了一下。@Componentpublic class ComponentClass { @Autowired private JedisClient jedi转载 2021-07-15 07:21:06 · 1563 阅读 · 0 评论 -
Spring Batch完整入门实践
前言本文将从0到1讲解一个Spring Batch是如何搭建并运行起来的。本教程将讲解从一个文本文件读取数据,然后写入MySQL。什么是 Spring BatchSpring Batch 作为 Spring 的子项目,是一款基于 Spring 的企业批处理框架。通过它可以构建出健壮的企业批处理应用。Spring Batch 不仅提供了统一的读写接口、丰富的任务处理方式、灵活的事务管理及并发处理,同时还支持日志、监控、任务重启与跳过等特性,大大简化了批处理应用开发,将开发人员从复杂的任务配置管原创 2021-05-26 09:20:43 · 4815 阅读 · 0 评论 -
spring scheduled定时任务
@scheduled注解作用用来开启定时任务fixedRate 和 fixedDelay 的区别fixedRate 任务两次执行时间间隔是任务的开始点,而 fixedDelay 的间隔是前次任务的结束与下次任务的开始。@Scheduled(fixedRate = 5000) 5秒执行一次cron:通过表达式来配置任务执行时间cron表达式详解一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。按顺序依次为:秒(0~59)分钟(0~59)3 小时(0~23)4转载 2020-12-01 08:51:29 · 710 阅读 · 0 评论 -
spring中用到的设计模式
1. 简单工厂又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。2. 工厂方法(Factory Method)定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Met.转载 2020-11-12 23:07:48 · 135 阅读 · 0 评论 -
spring循环依赖 第二讲
前言Spring中的循环依赖一直是Spring中一个很重要的话题,一方面是因为源码中为了解决循环依赖做了很多处理,另外一方面是因为面试的时候,如果问到Spring中比较高阶的问题,那么循环依赖必定逃不掉。如果你回答得好,那么这就是你的必杀技,反正,那就是面试官的必杀技,这也是取这个标题的原因,当然,本文的目的是为了让你在之后的所有面试中能多一个必杀技,专门用来绝杀面试官!本文的核心思想就是,当面试官问:“请讲一讲Spring中的循环依赖。”的时候,我们到底该怎么回答?主要分下面几点转载 2020-10-27 09:43:50 · 193 阅读 · 0 评论 -
spring 循环依赖
众所周知spring在默认单例的情况下是支持循环引用的为了节省图片大小我把那些可以动得gif图片做成了只循环一次,如果看到图片不动了请右键选择在新标签打开,那么图片就会动,手机用户则更简单,直接手指点击图片便能看到动图,每张gif我都标识了,如果没有标识则为静态图片;Appconfig.java类的代码@Configurable@ComponentScan("com.shadow")public class Appconfig {}X.java类的代码package com.转载 2020-10-25 08:52:26 · 318 阅读 · 0 评论 -
JDBC和数据库连接池的关系
原创 2020-09-23 14:44:36 · 360 阅读 · 0 评论 -
spring @Transactional注解的使用和失效场景
一、事务事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种。编程式事务:是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强,如下示例:try { //TODO something transactionManager.commit(status);} catch (Exception e) { transactionManager.rollback(status); throw new原创 2020-09-03 16:41:41 · 513 阅读 · 0 评论 -
spring AOP 切在方法上可以改变方法的返回值
spring AOP 切在方法上可以改变方法的返回值: @Around("point()") public Object around(ProceedingJoinPoint pjp) throws Throwable{ System.out.println("beginning----"); Object object = pjp.proceed(); //运行doSth(),返回值用一个Object类型来接收 object = "Mission Two"; //改变原创 2020-07-30 10:19:19 · 1437 阅读 · 0 评论 -
Spring注解——同一接口有多个实现类,如何注入
先写一个场景,举例说明:1、接口:IAnimalpublic Interface IAnimal{......}2、实现类:DogImpl ,实现了IAnimal接口。@Service("dogImpl")public class DaoImpl impliments IAnimal{...}3、业务类:AnimalControllerpublic class AnimalController { @Autowired privat...转载 2020-07-27 09:49:29 · 1220 阅读 · 0 评论 -
Spring事务传播行为
Spring在 TransactionDefinition 接口中规定了 7 种类型的事务传播行为。事务传播行为是 Spring 框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是 Spring 为我们提供的强大的工具箱,使用事务传播行可以为我们的开发工作提供许多便利。但是人们对他的误解也颇多,你一定也听过“service 方法事务最好不要嵌套”的传言。要想正确的使用工具首先需要了解工具。本文对七种事务传播行为做详细介绍,内容主要代码示例的方式呈现。基础概念1. 什么是事务传播行为?.原创 2020-05-11 21:28:43 · 220 阅读 · 0 评论 -
使用Redis+AOP优化权限管理功能
在mall-security模块中有一个过滤器,当用户登录后,请求会带着token经过这个过滤器。这个过滤器会根据用户携带的token进行类似免密登录的操作,其中有一步会从数据库中查询登录用户信息,下面是这个过滤器类的代码。/** * JWT登录授权过滤器 * Created by macro on 2018/4/26. */publicclass JwtAuthentication...原创 2020-03-25 12:15:27 · 305 阅读 · 0 评论 -
Spring Aop中@Pointcut用法
格式:execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern)throws-pattern?) //表示匹配所有方法 1)execution(* *(..)) //表示匹配com.savage.server.UserService中所...转载 2020-03-13 17:33:28 · 1030 阅读 · 0 评论 -
spring AOP @Aspect,@pointcut的理解
最近写的项目里面都用到了很多切面,切点的知识,写完以后,来自我总结一下:举个例子:一个类(Show)里面有一个表演(display)的方法,在表演之前,应该有致辞(say)的方法,在表演之后,应该有鼓掌(hand)的方法。为了高内聚低耦合,表演的方法应该单独封装在一个类里面,致辞和鼓掌的方法应该另外封装,但在调用时必须按照顺序来调用执行。这时候就需要设置切面和切点了!切面应该设置在致辞...转载 2020-03-13 16:34:53 · 705 阅读 · 0 评论