- 浏览: 596305 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
Spring Boot的强大之处在于使用了Spring 4框架的新特性:@Conditional注释,此注释使得只有在特定条件满足时才启用一些配置。
下面来介绍如何使用Condition
首先写一个类
接下来就可以使用了
@Conditional(MyCondition.class)
这句代码可以标注在类上面,表示该类下面的所有@Bean都会启用配置
也可以标注在方法上面,只是对该方法启用配置
除了自己自定义Condition之外,Spring还提供了很多Condition给我们用
@ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication(不是web应用)
下面来介绍如何使用Condition
首先写一个类
package com.test.spring; import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; import org.springframework.core.type.AnnotatedTypeMetadata; public class MyCondition implements Condition { /** * 这里写自己的逻辑,只有返回true,才会启用配置 */ public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { return true; } }
接下来就可以使用了
package com.test.spring; import java.io.Serializable; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; @Configuration @Conditional(MyCondition.class) public class Config { @Bean public Serializable createSerializable() { System.out.println("======000"); return ""; } }
@Conditional(MyCondition.class)
这句代码可以标注在类上面,表示该类下面的所有@Bean都会启用配置
也可以标注在方法上面,只是对该方法启用配置
除了自己自定义Condition之外,Spring还提供了很多Condition给我们用
@ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication(不是web应用)
发表评论
文章已被作者锁定,不允许评论。
-
spring boot集成jsp
2018-11-21 16:53 7341.配置文件 server: port: 8080 ... -
Spring BeanFactoryPostProcessor和BeanPostProcessor的区别
2018-11-14 15:40 701链接:https://blog.csdn.net/caihai ... -
spring BeanPostProcessor理解
2018-11-14 11:31 317链接:https://blog.csdn.net/ginkgo ... -
Spring 源码解析之Initializer
2018-11-14 11:27 449链接:https://blog.csdn.net/ktlife ... -
spring boot AnnotationConfigApplicationContext的实例化过程
2018-11-10 14:18 1119链接:https://blog.csdn.net/chr1sg ... -
spring transaction同一个类不回滚解决方法
2018-10-11 10:59 7671.修改配置文件 <aop:aspectj-autopr ... -
Spring @Transaction学习
2018-10-08 10:36 2891.考虑有下面这么一个类 public class Foo ... -
spring mvc i18n国际化学习(spring:message)
2018-06-09 09:35 637spring.xml文件中配置: <!-- 存储区域 ... -
Spring Boot Oauth2.0授权服务器
2018-05-11 14:19 1645什么是OAuth? OAuth(Open Authoriza ... -
Spring Boot @Import注解(将指定类实例注入到IOC容器中)
2018-05-09 10:20 1594SpringBoot 的 @Import 用于将指定的类实例注 ... -
Spring Boot自定义starter pom实例(/META-INFO/spring.factory文件)
2018-05-09 09:48 1129自定义starter pom 自己实现一个简单的例子,当某个类 ... -
Spring Boot自动配置原理(@Conditional @Import)
2018-04-26 14:45 1324Springboot的自动配置是SpringBoot的关键,主 ... -
Spring Boot优缺点总结
2018-04-16 10:25 1532优点: 1.去除了大量的xml配置文件 2.简化 ... -
SpringBoot JPA @Transaction 知识学习
2018-03-16 09:09 756一、事务相关概念 1、事务的特点 原子性:事务是一个原子操 ... -
Sprint @Query注解的用法(nativeQuery=true/false)(Spring Data JPA)
2018-03-15 16:33 37911. 一个使用@Query注解的简单例子 @Query(val ... -
Spring Boot JpaRepository知识学习(Spring Data JPA)
2018-03-14 11:17 17851.Spring Data所解决的问题 Spring Dat ... -
SpringCloud Hystrix知识学习(防止雪崩效应)
2018-03-13 14:57 924一、Hystrix说明 1.服务雪崩效应:是一种因服务提供者的 ... -
SpringCloud @LoadBalanced注解学习
2018-03-13 09:48 2212当时我们说开启负载均衡很简单,只需要在RestTemplate ... -
Spring Boot配置方式(java配置和注解配置)
2018-03-12 15:09 1104Java配置 从Spring 3.x开始,Spring提供了J ... -
java RestTemplate访问restful服务
2018-03-01 15:02 1611REST的基础知识 当谈论REST时,有一种常见的错误就是将其 ...
相关推荐
`@Conditional`注解的另一个常见用法是配合Spring Boot的内置条件注解,如`@ConditionalOnClass`(检查类路径中是否存在某个类)、`@ConditionalOnMissingBean`(如果容器中不存在某个bean,则创建新bean)等。...
在Spring Boot框架中,`@Conditional`注解是条件装配的核心工具,它允许我们基于某些条件来决定是否加载或注册一个Bean。这个功能使得我们能够更精细化地控制应用的配置,仅在满足特定条件时才会激活某个Bean。下面...
在Spring Boot框架中,`@Conditional`注解是条件化注解的核心,它允许你在创建Bean时设置特定的条件。当这些条件满足时,Bean才会被Spring容器注册并实例化。这一特性使得开发者可以根据应用程序的具体环境和配置...
在 Spring Boot 中,@Conditional 注解是自动化配置的核心控制。它可以根据具体的条件决定是否创建 Bean,例如根据配置文件中的某个属性的值来决定是否创建 Bean。 @Conditional 注解的使用 @Conditional 注解需要...
在 Spring Boot 中,自动配置是通过 @Conditional 注解来实现的。 @Conditional 注解可以根据不同的条件来决定是否启用某个配置。例如,在 Spring Boot 中,JdbcTemplate 是否存在 Classpath 中,如果存在,并且 ...
自定义@Conditional 注释示例什么是@Conditional 是添加到 Spring 4 的注解,用于指定处理特定配置或将特定 bean 注册到 Spring 上下文的条件。为什么重要Spring Boot 项目自动配置支持依赖于 @Conditional - 它有...
**Spring Boot 常用注解详解** Spring Boot以其简洁的配置、快速的启动和集成众多优秀框架的能力,成为Java开发领域中的热门选择。在Spring Boot应用中,注解起着至关重要的作用,它们简化了配置,使得代码更加简洁...
总之,`@Conditional`是Spring 4.0引入的重要特性,它提供了在运行时基于条件进行bean注册的能力,极大地简化了条件逻辑的处理,提升了Spring Boot应用的可配置性和可扩展性。通过自定义条件类,我们可以根据各种...
Spring Boot还提供了一个注解@SpringBootApplication,它实际上是一个复合注解,包含@ComponentScan(包扫描)和@EnableAutoConfiguration(开启自动装配)。 自动装配的原理还与Spring的条件化装配有关,即@...
Spring Boot conditional 注解用法详解 Spring Boot conditional 注解是 Spring Boot 框架中的一种重要机制,它允许开发者根据特定的条件来决定是否创建某个 Bean,这种机制可以极大地提高应用程序的灵活性和可维护...
3. Conditional注解:如@ConditionalOnClass、@ConditionalOnMissingBean等,根据条件决定是否执行配置。 四、Spring Boot Web开发 1. Web MVC:提供RESTful API开发支持,包括Controller、Model、View等。 2. ...
Spring Boot 最核心的 27 个注解详解 在 Spring Boot 框架中,注解扮演着非常重要的角色,它们可以极大地简化项目的配置,最大化地实现了“约定大于配置”的原则。但是,对于初学者来说,各种注解很容易让人“云里...
6. **条件注解**:Spring Boot使用`@Conditional`系列注解,如`@ConditionalOnClass`、`@ConditionalOnMissingBean`等,使得配置的启用基于特定条件,增加了代码的灵活性。 7. **属性绑定**:`@Value`和`@...
答:Spring Boot通过@Conditional注解,结合@ComponentScan扫描到的@ConfigurationProperties,根据条件加载特定的配置类。例如,如果检测到类路径下有hibernate.properties,就会启用Hibernate的相关配置。 2. ...
基于条件注解(@Conditional),Spring Boot会根据类路径中的jar包和配置文件自动配置相应的bean。例如,如果类路径下存在HSQLDB数据库,那么Spring Boot就会自动配置一个内存数据库。 3. **嵌入式Web服务器...
7. **条件注解(Conditional Annotation)**:Spring Boot提供了如@ConditionalOnClass、@ConditionalOnBean、@ConditionalOnMissingBean等注解,使得Bean的创建基于某些条件。例如,@ConditionalOnClass只有在类...
默认情况下,Spring Boot会扫描启动类所在的包及其子包下的所有组件(如@Controller、@Service、@Repository、@Component等注解的类),但是有时候我们可能需要自定义扫描范围,这就是这个标题所要讲述的内容。...
6. **条件注解(Conditional Annotation)**:Spring Boot使用`@Conditional`系列注解来决定哪些配置类或Bean应该在特定条件下生效。例如,`@ConditionalOnClass`和`@ConditionalOnProperty`。 7. **YAML与...
通过条件注解(@Conditional),Spring Boot能智能地根据类路径、环境变量和属性来决定是否激活某个配置。 此外,Spring Boot的starter项目结构值得探究。每个Starter都有一个主POM,引入了必要的依赖,为开发者...
3. 自动配置类中的`@Bean`方法会根据条件注解(如`@Conditional`)决定是否创建并注册Bean到Spring容器中。 #### 6. 如何使用Spring Boot实现异常处理? Spring Boot中异常处理通常采用`ControllerAdvice`机制来...