【发布时间】:2020-07-31 10:42:21
【问题描述】:
我是 Spring 新手,我知道 DI 的基本原理。我无法理解的是,如果我们希望更改 bean 类型,我们仍然需要在 Parent 类中进行代码更改。
例如在下面的代码中 我们需要在服务类中指定限定符(“自行车”)。所以明天我需要在服务类中将其更改为新的 implm,如限定符(“汽车”)。同样,如果有卡车,我需要创建扩展车辆的新类并在服务中用作限定符(“卡车”)。我仍然需要去上课并更改这 1 行代码。更改仍然是不可避免的。我实际上这样做有什么好处 :
public interface Vehicle {
public void start();
public void stop();
}
@Component(value="car")
public class Car implements Vehicle {
@Override
public void start() {
System.out.println("Car started");
}
@Override
public void stop() {
System.out.println("Car stopped");
}
}
@Component(value="bike")
public class Bike implements Vehicle {
@Override
public void start() {
System.out.println("Bike started");
}
@Override
public void stop() {
System.out.println("Bike stopped");
}
}
@Component
public class VehicleService {
@Autowired
@Qualifier("bike")
private Vehicle vehicle;
public void service() {
vehicle.start();
vehicle.stop();
}
}
【问题讨论】:
标签: spring spring-boot