常用的条件化配置注解(@ConditionalXxx)及其含义
时间: 2023-03-13 07:14:16 浏览: 66
常见的条件配置注解有:@ConditionalOnBean,当容器中存在特定类型的bean时,它将会生效;@ConditionalOnClass,当类路径上存在特定类时,它将会生效;@ConditionalOnProperty,当配置文件中存在特定属性时,它将会生效;@ConditionalOnResource,当指定的资源文件存在时,它将会生效;@ConditionalOnWebApplication,当项目是一个Web项目时,它将会生效;@ConditionalOnExpression,当表达式的结果为true时,它将会生效。
相关问题
@Primary注解含义
@Primary注解是Spring框架中的一个注解,用于标识一个Bean作为默认的Bean实现。当有多个同类型的Bean实现时,如果没有指定使用哪个Bean,则会使用被@Primary注解标识的Bean作为默认实现。
举个例子,假设我们有一个接口UserService和两个实现类UserServiceImpl1和UserServiceImpl2,它们都实现了UserService接口。如果我们在其他地方需要使用UserService接口,但没有指定具体使用哪个实现类,那么Spring会默认使用被@Primary注解标识的UserServiceImpl1作为默认实现。
需要注意的是,@Primary注解只能用于一个Bean上,如果有多个Bean都被标识了@Primary注解,则会抛出异常。
加了注解@Transactional没用
加了注解@Transactional可能没有起作用的原因有以下几种可能性:
1. 配置问题:在使用注解@Transactional时,需要确保Spring的事务管理器已经正确配置。如果事务管理器没有正确配置或者没有启用事务管理功能,那么注解@Transactional将不会生效。
2. 事务传播级别问题:注解@Transactional还可以设置事务的传播级别,默认为REQUIRED。如果在调用加了注解@Transactional的方法时,已经存在一个外部事务,则内部事务将不会生效。
3. 异常处理问题:注解@Transactional默认只对运行时异常进行回滚操作,对于受检异常是不会回滚的。如果加了注解@Transactional的方法中抛出了受检异常,事务将不会回滚。
4. 类自调用问题:如果加了注解@Transactional的方法是在同一个类中被调用的,那么注解@Transactional将不会生效。这是因为Spring使用了基于代理的AOP来实现事务管理,而代理只会拦截外部调用。
5. 注解位置问题:确保注解@Transactional被正确地放置在需要开启事务的方法上。如果注解放置在类级别上或者其他不合适的位置,事务将不会生效。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)