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自动注入原理(springboot如何注入自定义类)
最关键的要属@Import(EnableAutoConfigurationImportSelector.class),借助**EnableAutoConfigurationImportSelector**,@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器:通过@Import(AutoConfigurationImportSelector.class)导入的配置功能, AutoConfiguration...
springboot启动完成后执行?
SpringBoot在初始化之后执行某项操作的方法在任意方法上加入@PostConstruct,例如 这种方法需要一个配置类,也就是加上了@Configuration注解 在返回某个类的方法上加入@Bean注解进行注入,其参数需带有initMethod,其值为想要执行初始化方法的名厅凳称,配置类例如 实际使岁岁用的类例如 该接口的定义扮雀旅...
springboot条件装配(springboot条件注入)
SpringBoot项目开发技巧一:自动装配自动装配实现的就是该类中的selectImports方法里。通过selectImports方法,取到spring.factories文件下的一系列类名,随后将这些类自动加载至IOC容器中。解决办法一:将@Import改成@ConponentScan这样就会扫描同级包和子包。生成功能类的原则是自定义优先,没有自定义时才会使...
springboot怎么运行(springboot怎么运行html)
springboot启动前执行方法的几种方式运行带有main方法类通过命令行java-jar的方式通过spring-boot-plugin的方式执行带有main方法类这种方式很简单,我主要是通过IDAE的方式,进行执行。你能够使用SpringBoot创建Java应用并通过java-jar来运行或者创建传统的通过war来部署的应用。SpringBoot也提供了一个命令行工具...
springboot启动前执行方法的几种方式
第一个没有实现BeanPostProcessor接口 第二个实现了BeanPostProcessor接口,但是没有重写他的方法 打印结果如下 可以看到同样是使用了@PostConstruct注解,但是他们的执行顺序却截然不同 BeanPostProcessor为每一个spring维护的对象调用前后做操作,实现了它我们当前类就会变成一个BeanPostProcessor对象,就可以...
springboot多事物管理器能在一个方法执行吗
在SpringBoot中,多数据源的事务管理器不能在一个方法执行中同时使用的原因与Spring框架的事务机制有关,Spring框架通过注解或XML配置来定义事务的边界和属性,当涉及到多数据源时,在一个方法中使用多个数据源,其事务管理器是不同的,而且不同数据源的事务管理器可能对应不同的数据库连接,Spring无法确保...
springboot配置信息(springboot配置jndi)
因为springboot加载配置文件时最底层是使用的下面的方法: 这两个方法只会获取classloader类的ucp属性里面第一个匹配到的值。如果对springboot自身的机制不满意,想获取所有的classpath:/路径下面的applicaiton.yml文件,可以使用下面的方法: 本文总结了springboot配置文件的原理以及多个配置文件生效的顺序。如果存在增加了...
springboot怎么用(springboot怎么用在web上又用在微信小程序上)_百 ...
因为有spring-boot-starter-rsocketdependency依赖,所以springboot会自动配置RSocketserver。跟平常一样,可以用属性驱动的方式修改RSocketserver默认配置值。例如:通过增加如下配置在application.properties中,来修改RSocket端口 也可以根据需要进一步修改服务器的其他属性 3.2.设置客户端 接下来,我们来设置客户端,也是一个spring...
springboot多数据源配置(springboot多数据源配置和切换苞米豆)_百度知...
1、pom文件 2、配置文件 如果选择druid链接池要去除druid配置;还要配置一个默认数据源(spring.datasource.dynamic.primary) 3、数据源切换SpringBoot项目中配置多数据源@Transactional注解失效问题 当一个SpringBoot项目在配置了多个数据源,在编写Service层方法的时候,直接在service方法的上添加的@Transactional直接实现事务管...