Java 弹簧自动连线是一种静态工厂方法
说我有课Java 弹簧自动连线是一种静态工厂方法,java,spring,Java,Spring,说我有课 class Service { private final Repository repository @Autowired public Service(Repository repository) { this.repository = repository } } 它自动连接存储库类。假设我想将其更改为同时动态添加一些内容,并且我希望通过静态工厂方法来实现,同时还保持我的依赖性。我会尝试这样做: class Service {
class Service {
private final Repository repository
@Autowired
public Service(Repository repository) {
this.repository = repository
}
}
它自动连接存储库类。假设我想将其更改为同时动态添加一些内容,并且我希望通过静态工厂方法来实现,同时还保持我的依赖性。我会尝试这样做:
class Service {
private final Repository repository;
private String field;
@Autowired
public Service(Repository repository) {
this.repository = repository
}
private Service() {}
public static Service of(String field) {
Service service = new Service();
service.setField(field);
return service;
}
private void setField(String field) {
this.field = field;
}
}
但是这段代码不起作用,因为存储库
实际上不会被实例化
有什么方法可以同时注入spring依赖项和动态属性吗
谢谢大家! 您不能使用Spring创建静态内容。我认为Spring默认创建所有组件的单例bean/实例,如果您的存储库使用任何原型进行注释,它将由Spring容器实例化,这将非常有用。如果这样做,您将返回到紧密耦合。只要在需要的地方注射你的工厂。