kotlin替代品
@Autowired(required=false)
private DependencyC dependencyC;
和
private Optional<HelloService> optionalHelloService;
public HelloController(Optional<HelloService> helloService) {
this.optionalHelloService = helloService;
}
答案 0 :(得分:2)
然后应将该属性设置为可空的
class HelloController(
@Autowired(required = false) val helloService: HelloService?
)
答案 1 :(得分:0)
接受的答案已过时。 Spring使用类型信息来推断bean是否是可选的。看到 https://docs.spring.io/spring/docs/current/spring-framework-reference/languages.html#kotlin-annotations,特别是
以类似的方式,带有@ Autowired,@ Bean或@Inject的Spring bean注入使用此信息来确定是否需要bean。
由于@Autowired
对于构造函数参数是可选的,因此最短的Kotlin替代方案是
class HelloController(private val optionalHelloService: HelloService?)