Spring Boot教程(一)(快乐入门)(下)

                                                                                                                    原创者:文思

上集讲解了入门,这集讲一讲学习与实际应用中容易出现的坑。

1、版本之坑:

Spring Boot教程(一)(快乐入门)(下)_第1张图片


Spring Boot教程(一)(快乐入门)(下)_第2张图片

test=1无法绑定影射到private int test中,ignoreUnknownFields = false在有属性不能匹配到声明的域的时候抛出异常.

单独使用并注入配置类进行调用:


Spring Boot教程(一)(快乐入门)(下)_第3张图片
Spring Boot教程(一)(快乐入门)(下)_第4张图片
Spring Boot教程(一)(快乐入门)(下)_第5张图片
Spring Boot教程(一)(快乐入门)(下)_第6张图片

@EnableConfigurationProperties注解。 这个注解告诉Spring Boot 使能支持@ConfigurationPropertie。但是

Spring boot1.5以上在spring boot(版本1.5.1.RELEASE)项目中,当准备映射自定义的配置文件属性到类中的时候,发现原本的@ConfigurationProperties注解已将location属性移除,因此导致无法正常给配置类的属性赋值

Spring Boot教程(一)(快乐入门)(下)_第7张图片

用的1.5.4版本,所以用location这里报错了

为何去除:

Spring Boot教程(一)(快乐入门)(下)_第8张图片

spring boot认为将一在配置类中采用@Component的方式注册为组件,然后使用@PropertySource来指定自定义的资源目录个配置类绑定到一个配置文件是一件不好的事,避免一个重要的配置文件有多处修改入口,保持入口一致性。

解决方法:

在配置类中采用@Component的方式注册为组件,然后使用@PropertySource来指定自定义的资源目录

Spring Boot教程(一)(快乐入门)(下)_第9张图片
Spring Boot教程(一)(快乐入门)(下)_第10张图片

这就是@ConfigurationProperties的location属性被取消后的一种替代方案,如果TestPropertiesNow还取不到我也没办法了。

spring boot 1.5版本后使用@Value注解注入属性,以读取邮件配置文件并发送为例:

Spring Boot教程(一)(快乐入门)(下)_第11张图片

实例:

Spring Boot教程(一)(快乐入门)(下)_第12张图片
Spring Boot教程(一)(快乐入门)(下)_第13张图片
Spring Boot教程(一)(快乐入门)(下)_第14张图片

-----------------------------------------------------------------------------------------------------------------------------------------------------

2:覆盖约定

Spring Boot教程(一)(快乐入门)(下)_第15张图片

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

3:maven依赖

3.1、继承 spring-boot-starter-parent:

spring-boot-starter-parent project

默认是 Java 1.6。 Resource filtering。exec plugin、surefire、Git commit ID、shade。

Resource filtering for application.properties 和 application.yml,以及,profile-specific file,如application-foo.properties 或 application-foo.yml。

Spring Boot教程(一)(快乐入门)(下)_第16张图片

想使用不同版本的JDK:

Spring Boot教程(一)(快乐入门)(下)_第17张图片

3.2、不继承 spring-boot-starter-parent:

这种情况下,仍然可以使用dependency management,但不能使用plugin management啦。方式如下:

Spring Boot教程(一)(快乐入门)(下)_第18张图片

注意,scope是import。而且,这种情况下,不再允许在覆盖相应的版本。如果要使用其他版本,需要在上面的前面添加一个完整的dependency。如下:

Spring Boot教程(一)(快乐入门)(下)_第19张图片

你可能感兴趣的:(Spring Boot教程(一)(快乐入门)(下))