spring中@Conditional、@ImportResource、@Import 这三个注解的作用分别是什么,请用代码演示。
时间: 2024-05-07 12:21:33 浏览: 6
1. @Conditional:根据条件判断是否加载某个 Bean。
例如,我们可以根据系统的环境变量来判断是否加载某个 Bean。具体演示代码如下:
```java
@Configuration
public class ExampleConfig {
@Bean
@Conditional(SystemPropertyCondition.class)
public ExampleBean exampleBean() {
return new ExampleBean();
}
}
public class SystemPropertyCondition implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
return System.getProperty("example.property") != null;
}
}
```
2. @ImportResource:导入 XML 配置文件中的 Bean。
例如,我们可以将一个 xml 配置文件中的 Bean 导入到 Spring 容器中。具体演示代码如下:
```java
@Configuration
@ImportResource("classpath:example.xml")
public class ExampleConfig {
}
```
3. @Import:导入其他配置类中的 Bean。
例如,我们可以将其他配置类中的 Bean 导入到当前配置类中。具体演示代码如下:
```java
@Configuration
@Import(OtherConfig.class)
public class ExampleConfig {
}
```