为了安全起见,在没有注释扫描的情况下使用了AppConfig.java
,并且由于更难绑定而没有通过app-config.xml
进行配置,因此我创建了spring-beans实例,如下所示:
@Configuration
public class AppConfig {
@Bean
public AddressService addressService(){
return new AddressService();
}
}
一切正常,但是如果我想阻止其他人创建
AddressService
实例怎么办?通常我会声明构造函数为私有,但是编译器给我一个错误,我无法再访问AddressService
中的AppConfig
私有构造函数!为了完整起见,这是
AddressService
:public final class AddressService {
private AddressService(){}
}
最佳答案
这是一个可行的解决方案。
@Configuration
public class AppConfig {
public static class AddressService {
private AddressService() {}
}
@Bean
public AddressService addressService() {
return new AddressService();
}
}