有没有办法提供类本身而不是 bean 名称@DependsOn?
即假设:
@Component
class MyComponent {
}
Run Code Online (Sandbox Code Playgroud)
而不是这个:
@Component
@DependsOn("myComponent")
class Dependent {
}
Run Code Online (Sandbox Code Playgroud)
做这个:
@Component
@DependsOn(MyComponent.class)
class Dependent {
}
Run Code Online (Sandbox Code Playgroud)
或者,有没有办法使用其他注释或 Spring 配置形式来实现相同的功能?
我想要这样做的原因是为了确保编译器对此进行检查,因此类重命名直到运行时才会破坏它。
如果您的目的只是让编译器检查,以便重命名MyComponent 不会破坏事物,您可以简单地分配一个自定义的 bean 名称,MyComponent这样它的 bean 名称将不再依赖于从类名称派生的默认行为。
设置一个常量来引用这个自定义的bean名称,每个需要引用这个bean名称的bean配置都应该引用这个常量。
从代码角度看,它看起来像:
@Component(value=MyComponent.beanName)
class MyComponent {
public static final String beanName = "myComponent";
}
@Component
@DependsOn(MyComponent.beanName)
class Dependent {
}
Run Code Online (Sandbox Code Playgroud)