springboot怎么满足一个条件时执行一个方法
发布网友
发布时间:2022-03-25 00:42
我来回答
共1个回答
热心网友
时间:2022-03-25 02:11
通过注解实现,常用来实现满足条件执行的有@ConditionalOnXXX注解,比如:@ConditionalOnBean,@ConditionalOnMissingBean等等。
这类条件注解可以使用在方法上,也可以使用在类上,用在类上时,通常是@EnableXXX类型的注解,本质上没有发生变化。用在方法上时,表示满足条件就执行该方法;用在类上时,表示满足条件就加载某个类,在我们自定义配置时时使用得比较多。
Spring Boot中常用的条件注解有:
(1)@ConditionalOnBean,表示:存在某个bean
(2)@ConditionalOnMissingBean,表示:不存在某个bean
(3)@ConditionalOnClass,表示:存在某个类
(4)@ConditionalOnMissingClass,表示:不存在某个类
(5)@ConditionalOnProperty,表示:存在某个属性
(6)@ConditionalOnResource,表示:存在某个资源
(7)@ConditionalOnCloudPlatform,表示:cloud环境
(8)@ConditionalOnWebApplication,表示:web运用环境。
接下来使用@ConditionalOnWebApplication注解举例,代码如下图,表示如果是web环境,就注入自定义的视图解析器
条件注入视图解析器
这里不一一做介绍,仅仅列举了常用的8个,其他条件注解和详细的用法,可以参考官方文档
Spring Boot条件注解文档
springboot怎么满足一个条件时执行一个方法
通过注解实现,常用来实现满足条件执行的有@ConditionalOnXXX注解,比如:@ConditionalOnBean,@ConditionalOnMissingBean等等。这类条件注解可以使用在方法上,也可以使用在类上,用在类上时,通常是@EnableXXX类型的注解,本质上没有发生变化。用在方法上时,表示满足条件就执行该方法;用在类上时,表示满足...
想springboot启动完成后执行某个方法
实现方法有2个。一、ApplicationRunner 实现ApplicationRunner接口 打上 @Component + implements ApplicationRunner 二、CommandLineRunner 实现CommandLineRunner接口 打上 @Component + implements CommandLineRunner SpringApplication的run方法会执行afterRefresh方法 afterRefresh会触发callRunners方法 callRunners方法会调用...
SpringBoot启动后执行某个方法
在项目中,SpringBoot启动后,需要初始化一些业务,要在服务启动后自动执行,不用人去手动操作,即把一些业务放到某方法中,服务启动后可自动执行。总结了3种方法:用起来和第一种差不多 PostConstruct是Java提供的注解:@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法...
springboot启动运行特定代码
在Spring Boot中,我们可以通过使用ApplicationRunner或者CommandLineRunner接口来实现在Spring Boot启动时运行特定代码。一、背景与需求说明 在Spring Boot应用中,有时我们需要在应用启动时运行一些特定的代码,比如进行数据初始化、预加载缓存等操作。为了满足这种需求,Spring Boot提供了两个接口:ApplicationRunner...
springboot启动完成后执行?
org.springframework.boot.CommandLineRunner是SpringBoot提供的一个接口,当你实现该接口并将之注入SpringIoC容器后,SpringBoot应用启动后就会执行其run方法。一个SpringBoot可以存在多个CommandLineRunner的实现,当存在多个时,你可以实现Ordered接口控制这些实现的执行顺序(Order数值越大优先级越低)。接下来...
springboot中怎么实现定时任务
1. 创建任务类:创建一个Java类,用于定义定时任务的逻辑。在该类中定义一个或多个使用`@Scheduled`注解的方法,这些方法的执行时间和策略通过该注解来配置。例如:`@Scheduled`表示每5秒执行一次。2. 配置开启定时任务:在Spring Boot的主配置类或者专门的配置类中,通过注解`@EnableScheduling`开启定时...
springboot启动前执行方法的几种方式
第一个没有实现BeanPostProcessor接口 第二个实现了BeanPostProcessor接口,但是没有重写他的方法 打印结果如下 可以看到同样是使用了@PostConstruct注解,但是他们的执行顺序却截然不同 BeanPostProcessor为每一个spring维护的对象调用前后做操作,实现了它我们当前类就会变成一个BeanPostProcessor对象,就可以...
springboot条件装配(springboot条件注入)
解决办法一:将@Import改成@ConponentScan这样就会扫描同级包和子包。生成功能类的原则是自定义优先,没有自定义时才会使用自动装配类。springboot启动会加载大量的自动配置类:(在下面的spring.factories文件中)通过@ConditionalOnXXX判断我们是否导入了相关的功能(就是pom文件中的starter),如果导入了,...
SpringBoot几种定时任务的实现方式
1. 使用Timer:这个方式在项目中使用较少,以下是demo代码,具体介绍可以查看api。2. 使用ScheduledExecutorService:该方法与Timer类似,以下是demo。3. 使用Spring Task实现简单定时任务:在SpringBoot项目中,我们可以使用注解优雅地实现定时任务。首先创建项目并导入依赖。4. 创建任务类:在主类上使用@...
springboot启动前执行方法的几种方式
提供大量优秀的Web框架方便开发等等。在了解SpringBoot的启动流程的时候,我们先看一下一个SpringBoot应用是如何启动的,如下是一个简单的SpringBoot程序,非常的简洁,他是如何做到的呢,我们接下来就将一步步分解。执行核心run方法初始化initialize方法执行完之后,会调用run方法,开始启动SpringBoot。