Der*_*har 10 java spring guice
什么是Spring框架相当于FactoryModuleBuilder, @AssistedInject以及@Assisted在谷歌吉斯?换句话说,使用Spring创建工厂对象的建议方法是什么,其方法接受应用程序(而不是容器)必须提供的参数?
Spring静态工厂方法不一样FactoryModuleBuilder. FactoryModuleBuilder构建一个Guice模块,生成实现工厂方法模式的 "工厂" .与Spring静态工厂方法不同,这些工厂对象的方法是实例方法,而不是静态方法.静态工厂方法的问题在于它是静态的并且不实现接口,因此不能用替代工厂实现替换它.FactoryModuleBuilder但是,不同的实例可以构建实现相同接口的不同工厂.
Spring没有与Guice相同的东西FactoryModuleBuilder.最接近的等价物是Spring @Configuration类,它提供了一个工厂bean,它实现了一个工厂接口,该接口的方法接受来自应用程序的任意参数.Spring容器可以将依赖项注入到@Configuration对象中,而对象又可以提供给工厂构造函数.与之不同的是FactoryModuleBuilder,Spring方法产生了许多典型的工厂实现的样板代码.
例:
public class Vehicle {
}
public class Car extends Vehicle {
private final int numberOfPassengers;
public Car(int numberOfPassengers) {
this.numberOfPassengers = numberOfPassengers;
}
}
public interface VehicleFactory {
Vehicle createPassengerVehicle(int numberOfPassengers);
}
@Configuration
public class CarFactoryConfiguration {
@Bean
VehicleFactory carFactory() {
return new VehicleFactory() {
@Override
Vehicle createPassengerVehicle(int numberOfPassengers) {
return new Car(numberOfPassengers);
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |