如下代码:
1
2
3
4
5
6
7
8
9
|
@Bean
@ConfigurationProperties("spring.datasource")
public DataSource dataSource(){
return new DruidDataSource();
}
|
这种写法会让返回的DataSource Bean与spring.datasource下的配置一一绑定。这是我学习尚硅谷的SpringBoot课程进行查漏补缺时学到的一种写法。实际上让@Configuration注解在方法上,在我看到这个课程前我自己就探索出来了,如下代码所示,但是我当时以为@ConfigurationProperties影响的是参数,而且我在断点中也曾发现过templates是一个长度为零的List。
1
2
3
4
5
6
7
8
9
10
11
12
|
@Configuration
public static class TemplatesPropertiesInternalConfiguration {
@Bean
@ConfigurationProperties(prefix = "templates")
public List<Template> templates(List<Template> templates) {
return templates;
}
}
|
所以我这次决定验证一下该知识点,我实验代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
@Configuration
public static class TemplatesPropertiesInternalConfiguration {
@Bean
@ConfigurationProperties(prefix = "templates")
public List<Template> templates() {
return null;
}
}
@Configuration
public static class TemplatesPropertiesInternalConfiguration {
@Bean
@ConfigurationProperties(prefix = "templates")
public List<Template> templates() {
return new ArrayList();
}
}
|
我期待这两个方法都能够返回我在配置文件中配置的List<Template>
。额,好尴尬,其实我不用实验的,因为我代码中已经在使用这个知识点了,只是这个知识点是我自己摸索出来的: