【发布时间】:2021-11-16 17:26:21
【问题描述】:
public abstract class Vehicle{
private String vehicleName;
public class Vehicle(String vehicleName){
this.vehicleName = vehicleName;
}
public void drive();
}
@Component("Car")
public class Car implements vehicle(){
public Car(String carName){
super(carName);
}
}
在这里,我的要求是我想动态设置对象名称,即按照上面的代码,我对 Car 类的引用将转到我传递给 @Component 的名称strong>,我希望 Car 类的引用是 Car 类的 carName 属性。
请建议是否可能。
注意 - 我不希望 @Component 名称来自任何属性文件,我希望它来自我现有的汽车对象。
【问题讨论】:
-
不,你不能。还有目的是什么?还有为什么
Car甚至是一个组件... -
您不能在运行时更改组件名称。你可以使用 FactoryBeans,但我不确定你想用你的代码完成什么,所以让我问一下:你能补充一些细节吗?在这种情况下,您想解决什么问题?
-
你的用例到底是什么?
-
您可以使用您选择的名称将 bean 动态添加到 Spring。见stackoverflow.com/questions/4540713/…
标签: java spring spring-boot ioc-container spring-annotations