述
在 kotlin 和 Java 的混合开发中,偶尔会用到 Spring Boot 的 @Value() 这个注解, 下面记录一下 kotlin 中,使用 Spring Boot 注入属性的几种方式.
环境
假设,在 Spring Boot 的 application.yml 中有这样的配置1
2
3spring:
application:
name: testApp
这样的配置要怎么注入到实体类中的属性呢?
@Value 注解
第一种方式,使用@Value
这个注解,在Java中的写法如下:
1 | @Component |
对应的 kotlin 中, 代码如下:
1 | @Component |
kotlin 的写法有几点和Java不一样的
- 要注入的参数必须声明在 kotlin 的构造中,声明在类中是不起作用的.
- kotlin 中的 $ 是保留字,需要转义才能使用.
@ConfigurationProperties 注解
@ConfigurationProperties
这个注解, Java 的用法就不再介绍了, kotlin 中,代码如下:
1 | @Component |
或者
1 | @Component |
下面这种 lateinit 的方式我没有试过, 但是使用 @Value
注解和 lateinit
这种方式注入是行不通的.
常用的属性注入就这些,先记到这儿