Skip to content

Commit 7528cd0

Browse files
committed
code examples for Spring Boot @conditionals
1 parent f7e158a commit 7528cd0

File tree

45 files changed

+848
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+848
-0
lines changed

settings.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ include 'spring-boot:modular:application'
2020
include 'spring-boot:spring-boot-testing'
2121
include 'spring-boot:spring-boot-logging'
2222
include 'spring-boot:validation'
23+
include 'spring-boot:conditionals'
2324

2425
include 'logging'
2526

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.reflectoring.conditionals;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
6+
@SpringBootApplication
7+
public class ConditionalsApplication {
8+
9+
public static void main(String[] args) {
10+
SpringApplication.run(ConditionalsApplication.class, args);
11+
}
12+
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.reflectoring.conditionals.applyingconditionals;
2+
3+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
4+
import org.springframework.context.annotation.Bean;
5+
import org.springframework.context.annotation.Configuration;
6+
7+
@Configuration
8+
class ConditionalBeanConfiguration {
9+
10+
@Bean
11+
@ConditionalOnProperty("conditionalBean.enabled")
12+
ConditionalBean conditionalBean(){
13+
return new ConditionalBean();
14+
};
15+
16+
17+
static class ConditionalBean {
18+
19+
}
20+
21+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package io.reflectoring.conditionals.applyingconditionals;
2+
3+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
4+
import org.springframework.stereotype.Component;
5+
6+
@Component
7+
@ConditionalOnProperty("conditionalComponent.enabled")
8+
class ConditionalComponent {
9+
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package io.reflectoring.conditionals.applyingconditionals;
2+
3+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
@Configuration
7+
@ConditionalOnProperty("configuration.enabled")
8+
class ConditionalConfiguration {
9+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package io.reflectoring.conditionals.conditionalonbean;
2+
3+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
4+
import org.springframework.context.annotation.Bean;
5+
import org.springframework.context.annotation.Configuration;
6+
7+
@Configuration
8+
class DependantModule {
9+
10+
@Bean
11+
OptionalBean optionalBean() {
12+
return new OptionalBean();
13+
}
14+
15+
@Bean
16+
@ConditionalOnBean(OptionalBean.class)
17+
DependantBean dependantBean() {
18+
return new DependantBean();
19+
}
20+
21+
static class DependantBean {
22+
}
23+
24+
static class OptionalBean {
25+
}
26+
27+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.reflectoring.conditionals.conditionalonbean;
2+
3+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
4+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
5+
import org.springframework.context.annotation.Bean;
6+
import org.springframework.context.annotation.Configuration;
7+
8+
@Configuration
9+
class NoOptionalBeanModule {
10+
11+
@Bean
12+
@ConditionalOnBean(OptionalBean.class)
13+
DependantBean dependantBean(){
14+
return new DependantBean();
15+
}
16+
17+
static class DependantBean {}
18+
19+
static class OptionalBean {}
20+
21+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package io.reflectoring.conditionals.conditionalonclass;
2+
3+
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
@Configuration
7+
@ConditionalOnClass(name = "this.clazz.does.not.Exist")
8+
class OnClassModule {
9+
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package io.reflectoring.conditionals.conditionaloncloudplatform;
2+
3+
import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
4+
import org.springframework.boot.cloud.CloudPlatform;
5+
import org.springframework.context.annotation.Configuration;
6+
7+
@Configuration
8+
@ConditionalOnCloudPlatform(CloudPlatform.CLOUD_FOUNDRY)
9+
class OnCloudPlatformModule {
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package io.reflectoring.conditionals.conditionalonexpression;
2+
3+
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
@Configuration
7+
@ConditionalOnExpression("${module.enabled:true} " +
8+
"and ${module.submodule.enabled:true}")
9+
class SubModule {
10+
}

0 commit comments

Comments
 (0)