注解
autoconfigureafter解析原理
`@AutoConfigureAfter`是Spring Boot中的一个注解,它用于指定当前自动配置类应该在指定的自动配置类之后进行初始化。当Spring Boot启动时,它会扫描并加载所有的自动配置类,并根据这些类的注解和属性来自动配置应用程序。`@AutoConfigureAfter`注解允许开发者指定一个或多个自动配置类,当前自动配置类应该在这些指定的自动配置类之后进行初始化。spring...
SpringBoot设置编码UTF-8
SpringBoot设置编码UTF-8第⼀种通过过滤器来设置@Configurationpublic class UtfConfig {@Beanpublic FilterRegistrationBean filterRegistrationBean() {FilterRegistrationBean registrationBean = new FilterRegistrationBean();...
SpringBoot跨域Access-Control-Allow-Origin实现解析
SpringBoot跨域Access-Control-Allow-Origin实现解析这篇⽂章主要介绍了SpringBoot跨域Access-Control-Allow-Origin实现解析,⽂中通过⽰例代码介绍的⾮常详细,对⼤家的学习或者⼯作具有⼀定的参考学习价值,需要的朋友可以参考下跨域(CORS)是指不同域名之间相互访问。跨域,指的是浏览器不能执⾏其他⽹站的脚本,它是由浏览器的同源策略所造成...
springboot实现转发和重定向
springboot实现转发和重定向1、转发⽅式⼀:使⽤ "forword" 关键字(不是指java关键字),注意:类的注解不能使⽤@RestController 要⽤@Controller1 2 3 4@RequestMapping(value="/test/test01/{name}", method = RequestMethod.GET)public String test(@PathVa...
SpringBootApplication包含的三个注解及其含义
SpringBootApplication包含的三个注解及其含义springboot原理通俗第⼀个: @SpringBootConfiguration( 声明当前类是⼀个配置类, 简化xml操作 )第⼆个:@EnableAutoConfiguration( 开启⾃动配置, 告诉SpringBoot基于所添加的依赖 )第三个:@ComponentScan( 配置组件扫描的指令 )...
SpringBoot中配置定时任务、线程池与多线程池执行的方法
SpringBoot中配置定时任务、线程池与多线程池执⾏的⽅法配置基础的定时任务最基本的配置⽅法,⽽且这样配置定时任务是单线程串⾏执⾏的,也就是说每次只能有⼀个定时任务可以执⾏,可以试着声明两个⽅法,在⽅法内写⼀个死循环,会发现⼀直卡在⼀个任务上不动,另⼀个也没有执⾏。1、启动类添加@EnableScheduling开启对定时任务的⽀持@EnableScheduling@SpringBootApp...
Mybatis常见注解有哪些(总结)
Mybatis常见注解有哪些(总结)当下,注解⾮常流⾏,以前很长篇的代码,现在基本上⼀个注解就能搞定。那,在Mybatis中⼜有哪些注解呢?Mybatis中的注解基本上都在org.apache.ibatis.annotations⽬录下:@MapperScan该注解存在着争议,但不可否认的是这个注解确实是Mybatis的注解,是为了集成Spring⽽写的注解。该注解主要是扫描某个包⽬录下的Mapp...
探索Java中private方法添加@Transactional事务未生效原因
探索Java中private⽅法添加@Transactional事务未⽣效原因现在产品期望⽤户创建和保存逻辑分离:把User实例的创建和保存逻辑拆到两个⽅法分别进⾏。然后,把事务的注解 @Transactional 加在保存数据库的⽅法上。@Servicepublic class StudentService {@Autowiredprivate StudentMapper studentMapp...
Spring中使用@RequestBody注解接收的实体类中的某些参数为null_百度文 ...
Spring中使⽤@RequestBody注解接收的实体类中的某些参数为null1、问题描述我写完⼀个接⼝,在⽤postman测试的时候,发现其中有⼀个参数cEnterpriseId明明是有值的,但接⼝controller接收到的该参数为null,但其他参数都不为null的。2、解决⽅法我⾸先去百度了⼀下,说是由于实体类的参数命名不规范导致的,没有按照标准“驼峰法”进⾏参数命名。也可以在实体类相应...
java中的JsonSerializer用法,前后端单位转换必备
java中的JsonSerializer⽤法,前后端单位转换必备⽬录java中的JsonSerializer⽤法背景演⽰解决⽅法JackJson中⾃定义JsonSerializer使⽤1、⾃定义类继承JsonSerializer2、在实体类的字段上3、使⽤效果java中的JsonSerializer⽤法背景今天在写项⽬的时候遇到⼀个问题,项⽬中有个类中有创建时间和更新时间两个属性,但是单位在后端⽤...
SpringSession-使用Redis存储HttpSession例子
SpringSession-使⽤Redis存储HttpSession例⼦⽬的使⽤Redis存储管理HttpSession;添加p om.x m l该⼯程基于Spring Boot,同时我们将使⽤Spring IO Platform来维护依赖版本号;引⼊的依赖有spring-session、spring-boot-starter-web、spring-boot-starter-redis,pom⽂件...
hibernate-validator的基本使用
hibernate-validator的基本使⽤validator是⽤来校验参数使⽤!⼀般来说校验参数的⼯作可以放在前端去执⾏,但是假如有⼈不经过前端直接调⽤后端的接⼝呢?很可能就出现⾮法数据⽽导致⼀些问题,所有服务端也要做数据的校验。前端校验是为了提⾼⽤户的体验度,后端校验则是为了保证数据的安全性。校验参数基本上是⼀个体⼒活,⽽且冗余代码繁多,也影响代码的可读性,我们需要⼀个⽐较优雅的⽅式来解决...
SpringBoot中@ComponentScan的使用详解
SpringBoot中@ComponentScan的使⽤详解⽬录SpringBoot @ComponentScan的使⽤SpringBoot @ComponentScan 作⽤SpringBoot @ComponentScan的使⽤SpringBoot的启动类中有⼀个@ComponentScan,之前项⽬由于这个注解造成打包失败,这⾥对于这个注解进⾏总结,防⽌下次遇到这个问题再被难住。其实这个注解...
Springboot集成BeanValidation扩展一:错误提示信息加公共模板
Springboot集成BeanValidation扩展⼀:错误提⽰信息加公共模板Bean Validator扩展1、需求在使⽤validator时,有个需求就是公⽤错误提⽰信息,什么意思?举个例⼦:@NotEmpty⾮空判断,在资源⽂件中我不想每个⾮空判断都写”不能为空“,只需要写”###“,然后提⽰信息⾃动会变成”###不能为空“代码:public class User{//资源⽂件中user...
设计模式之策略模式应用实例(SpringBoot如何干掉ifelse)
设计模式之策略模式应⽤实例(SpringBoot如何⼲掉ifelse)需求这⾥虚拟⼀个业务需求,让⼤家容易理解。假设有⼀个订单系统,⾥⾯的⼀个功能是根据订单的不同类型作出不同的处理。订单实体:service接⼝:传统实现根据订单类型写⼀堆的if else:策略模式实现利⽤策略模式,只需要两⾏即可实现业务逻辑:可以看到上⾯的⽅法中注⼊了HandlerContext,这是⼀个处理器上下⽂,⽤来保存不同...
注解实现SpringCache自定义失效时间(升级版)
注解实现SpringCache⾃定义失效时间(升级版)注解实现SpringCache⾃定义失效时间(升级版)之前做过注解实现⾃定义失效时间,但是需要重写spring-cache中的RedisCache源码,有些不怎么容易扩展,这⾥使⽤⾃定义的CacheManager、和RedisCache类来实现对应的逻辑:1)⾃定义注解import java.lang.annotation.ElementTyp...
动态切换数据源@Async线程安全问题
动态切换数据源@Async线程安全问题多线程的异步调用未成功大致分为以下三种问题:1、没有在@SpringBootApplication启动类当中添加注解@EnableAsync注解。2、异步方法使用注解@Async的返回值只能为void或者Future。没有走Spring的代理类。因为@Transactional和@Async注解的实现都是基于Spring的AOP,而AOP的实现是基于动态代理模...
IDEA项目使用SpringBoot+MyBatis-Plus的方法
IDEA项⽬使⽤SpringBoot+MyBatis-Plus的⽅法步骤如下:1.打开IDEA2.File—>new—> project3.选择spring initializr—>Next4.填写Grouphe和Artifact,选择Java version: 8 ,点击next ,如图:5.选择对应的依赖,点击Next6.核对项⽬的名字是否⼀致,点击finish后就完成了⼯程...
SpringBoot启动慢的解决办法
SpringBoot启动慢的解决办法项⽬集成了很多内容,有 700 多个类,IDEA 中启动⼀次需要 70 秒,⾮常影响开发效率。研究问题原因发现有以下⼏种情况会导致启动速度慢,优化后启动只需 26 秒左右了:1. 和⽹卡有关,禁⽤⼀些不⽤的⽹卡可以提⾼ 2~3 秒,因为启动时会根据 ip 地址获取机器名,有的⽹卡获取不到会等 1 秒超时才返回。2. gradle 中如果依赖了 sleuth 会导...
springboot实现对注解的切面案例
springboot实现对注解的切⾯案例对注解实现切⾯案例:(1)定义⼀个注解@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface MyAnnotation {String getValues() default "test annotation";}@Target(ElementType.M...
@SpringBootApplication的使用
@SpringBootApplication的使⽤之前⽤户使⽤的是3个注解注解他们的main类。分别是@Configuration,@EnableAutoConfiguration,@ComponentScan。由于这些注解⼀般都是⼀起使⽤,spring boot提供了⼀个统⼀的注解@SpringBootApplication。@SpringBootApplication = (默认属性)@Con...
aop切面中或获取自定义注解中的参数
aop切面中或获取自定义注解中的参数 AOP(面向切面编程)是一种编程思想,它允许开发人员在应用程序的不同层次上插入代码,以便在运行时对其进行拦截和修改。在AOP中,切面是一组跨越多个类和方法的通用功能,例如日志记录、性能测量、安全性等。在切面中,我们可以使用自定义注解来传递参数,以便更好地控制切面的行为。 下面是一些有关在AOP切面中或获取自定...
aop切面 类注解
aop切面 类注解AOP(Aspect Oriented Programming)是一种编程范式,用于解决传统面向对象编程中的一些难题,比如横切关注点(cross-cutting concerns)的复用和统一管理。AOP的核心思想是将程序的功能划分为核心业务逻辑和横切关注点两部分,通过对横切关注点的抽象和封装,实现对核心业务逻辑的解耦和复用。在Spring框架中,AOP是一个重要的组成部分,通过...
@PreAuthorize权限控制的原理
@PreAuthorize权限控制的原理@PreAuthorize是SpringSecurity提供的权限安全认证注解。是在进⼊⽅法前进⾏权限验证,@PreAuthorize 声明这个⽅法所需要的权限表达式,例如:@PreAuthorize("hasAuthority('sys:dept:delete')")。1.添加依赖<!-- oauth --><dependency>...
SpringBoot自定义注解接收json参数
SpringBoot⾃定义注解接收json参数SpringBoot如果接受json参数的话需要定义实体类然后使⽤@RequestBody注解,但是如果每个接⼝都创建⼀个实体类的话太⿇烦,因此可以使⽤⾃定义注解的⽅法接收。从⽹上发现了这篇博客,解决了⼀个⼤⼤的疑惑。。转载:RequestJsonpackage com.fig;import java.lang.an...
SpringBoot整合mybatis使用注解实现动态Sql、参数传递等常用操作(实 ...
SpringBoot整合mybatis使⽤注解实现动态Sql、参数传递等常⽤操作(实现⽅法)前⾯介绍了Spring Boot 整合mybatis 使⽤注解的⽅式实现数据库操作,介绍了如何⾃动⽣成注解版的mapper 和pojo类。接下来介绍使⽤mybatis 常⽤注解以及如何传参数等数据库操作中的常⽤操作。其实,mybatis 注解⽅式和 XML配置⽅式两者的使⽤基本上相同,只有在构建 SQL 脚...
...注解并获取注解属性与上下文参数(基于Springboot框架)
⽤AOP拦截⾃定义注解并获取注解属性与上下⽂参数(基于Springboot框架)⽬录AOP可以⽤于⽇志的设计,这样话就少不了要获取上下⽂的信息,博主在设计⽇志模块时考虑了⼀下此法,整理了⼀下如何⽤AOP来拦截你⾃定义的注解。⾃定义注解⾸先先⾃定义⼀个注解@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documented...
IDEA创建Springboot项目时各依赖的说明(DeveloperTools篇)
IDEA创建Springboot项⽬时各依赖的说明(DeveloperTools篇)1.Spring boot DevTools 开发⼈员⼯具它最重要的功能就是⾃动应⽤代码更改到最新的应⽤程序上,只要类路径上的⽂件发⽣更改,使⽤的应⽤程序就会⾃动重新启动。即实现热部署,⽅便开发过程中调试代码。如果不想使⽤重新启动功能,则可以使⽤abled属性将其...
enableeurekaclient 原理
一、enableeurekaclient 原理的介绍在Spring Cloud中,enableeurekaclient 是用来将服务注册到Eureka Server上的注解。通过使用这个注解,我们可以很方便地将Spring Boot应用注册为Eureka客户端,以便于Eureka Server能够发现并管理这些服务。二、enableeurekaclient 的实现1. 在Spring Cloud中...
enableautoconfiguration exclude 原理 -回复
enableautoconfiguration exclude 原理 -回复EnableAutoConfiguration 是 Spring Boot 提供的一个注解,用于自动配置 Spring 应用程序的各种组件。在使用该注解时,可以通过 exclude 参数来排除掉不需要的自动配置类。本文将从原理出发,详细解释 EnableAutoConfiguration 注解及其 exclude 参数的作...