À quoi sert l'annotation @Order au printemps?

je suis tombé sur un coup d'oeil de code qui utilise @Order annotation. Je veux savoir à quoi sert cette annotation en ce qui concerne la sécurité du ressort ou le ressort MVC.

Voici un exemple:

@Order(1)
public class StatelessAuthenticationSecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private UserDetailsService userDetailsService;

    @Autowired
    private TokenAuthenticationService tokenAuthenticationService;

}

Ce qu'il se passe à l'ordre mentionné ci-dessus classe si nous n'utilisons pas cette annotation?

38
demandé sur informatik01 0000-00-00 00:00:00

1 réponses

il est utilisé pour l'exécution de conseils de priorité.

Le Conseil de priorité le plus élevé s'exécute en premier. Plus le nombre est faible, plus la priorité. Par exemple, si l'on donne deux conseils "avant", celui qui a la priorité la plus élevée s'exécutera en premier.

une autre façon de l'utiliser est de commander des collections 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())
        }
    }
}

Vous pouvez trouver le code de l'exécutable ici: https://github.com/patrikbego/spring-order-demo.git

Espérons que cette précise un peu plus loin.

Sortie:-

Mazda Toyota

50
répondu Patrik Bego 2018-05-07 07:51:10