编程语言
首页 > 编程语言> > AppConfig.java返回带有私有构造函数的bean?

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