AppConfig.java返回带有私有构造函数的bean?
作者:互联网
由于安全性而有一个没有注释扫描的AppConfig.java,并且由于更难绑定而没有通过app-config.xml进行配置,因此我创建了spring-beans实例,如下所示:
@Configuration
public class AppConfig {
@Bean
public AddressService addressService(){
return new AddressService();
}
}
一切正常,但是如果我想阻止其他人创建AddressService实例怎么办?通常,我会声明构造函数为私有,但是编译器给我一个错误,我无法再在AppConfig中访问AddressService的私有构造函数!
为了完整起见,这是AddressService:
public final class AddressService {
private AddressService(){}
}
解决方法:
这是一个可行的解决方案.
@Configuration
public class AppConfig {
public static class AddressService {
private AddressService() {}
}
@Bean
public AddressService addressService() {
return new AddressService();
}
}
标签:private-constructor,spring-ioc,spring,java 来源: https://codeday.me/bug/20191118/2025282.html