我看到了使用 @Order
注释的代码。我想知道这个注解对于 Spring Security 或 Spring MVC 有什么用处。
这是一个例子:
@Order(1)
public class StatelessAuthenticationSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Autowired
private TokenAuthenticationService tokenAuthenticationService;
}
如果我们不使用这个注解,上面提到的类的顺序会怎样?
最佳答案
用于Advice执行优先级。
最高优先级的建议首先运行。数字越小,优先级越高。例如,给定两条“之前”建议,优先级最高的一条将首先运行。
使用它的另一种方式是订购 Autowired 集合
@Component
@Order(2)
class Toyota extends Car {
public String getName() {
return "Toyota";
}
}
@Component
@Order(1)
class Mazda extends Car {
public String getName() {
return "Mazda";
}
}
@Component
public class Cars {
@Autowired
List<Car> cars;
public void printNames(String [] args) {
for(Car car : cars) {
System.out.println(car.getName())
}
}
}
您可以在此处找到可执行代码:https://github.com/patrikbego/spring-order-demo.git
希望这能进一步澄清它。
输出:-
马自达丰田
关于spring - Spring中@Order注解有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30328897/