java是否创建具有特定@ConditionalOnProperty的注释?
我的计划是创建一个注释,如果我把它放在一个类上,那么只有当@ConditionalOnProperty为true时,这个类才会是一个bean
我有这个:
@ConditionalOnProperty(prefix = "backend-auth", value = "enabled", havingValue = "true", matchIfMissing = false)
我只想在application.properties
文件中存在backend-auth.enabled=true
时创建一些bean(控制器/服务)。现在我有了这个:
@RestController
@ConditionalOnProperty(prefix = "backend-auth", value = "enabled", havingValue = "true", matchIfMissing = false)
public class FirstController {}
@RestController
@ConditionalOnProperty(prefix = "backend-auth", value = "enabled", havingValue = "true", matchIfMissing = false)
public class SecondController{}
@Service
@ConditionalOnProperty(prefix = "backend-auth", value = "enabled", havingValue = "true", matchIfMissing = false)
public class FirstService {}
@Service
@ConditionalOnProperty(prefix = "backend-auth", value = "enabled", havingValue = "true", matchIfMissing = false)
public class SecondService{}
正如你所看到的,我正在重用@ConditionalOnProperty
部分,如果我想更改prefix
、value
或havingValue
值,那么我必须在4个位置进行更改,如果不注意,可能会错过它
我正在考虑创建一个包含@ConditionalOnProperty
的注释,并在我的FirstController
,SecondController
,FirstService
,SecondService
上使用这个自定义注释
我想以这样的方式结束:
@RestController
@BackendAuthEnabled
public class FirstController {}
@RestController
@BackendAuthEnabled
public class SecondController{}
@Service
@BackendAuthEnabled
public class FirstService {}
@Service
@BackendAuthEnabled
public class SecondService{}
# 1 楼答案
好了:
(感谢Wim的链接)