복붙노트

[SPRING] Spring에서 @Order 주석을 사용하는 것은 무엇입니까?

SPRING

Spring에서 @Order 주석을 사용하는 것은 무엇입니까?

@Order 주석을 사용하는 코드를 한 번 보았습니다. Spring Security 또는 Spring MVC와 관련하여이 주석의 사용법을 알고 싶습니다.

다음은 그 예입니다.

@Order(1)
public class StatelessAuthenticationSecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private UserDetailsService userDetailsService;

    @Autowired
    private TokenAuthenticationService tokenAuthenticationService;

}

이 주석을 사용하지 않으면 위의 클래스의 순서는 어떻게됩니까?

해결법

  1. ==============================

    1.Advice 실행 우선 순위에 사용됩니다.

    Advice 실행 우선 순위에 사용됩니다.

    우선 순위가 가장 높은 조언이 먼저 실행됩니다. 숫자가 낮을수록 우선 순위가 높아집니다. 예를 들어, 두 개의 'before'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에서 찾을 수 있습니다.

    이것이 조금 더 명확하게되기를 희망합니다.

    산출:-

    마쓰다 도요타

  2. ==============================

    2.@Order Annotations (Ordered 인터페이스와 마찬가지로)는 Bean이 Spring에 의해로드되거나 우선 순위가 지정되는 특정 순서를 의미합니다.

    @Order Annotations (Ordered 인터페이스와 마찬가지로)는 Bean이 Spring에 의해로드되거나 우선 순위가 지정되는 특정 순서를 의미합니다.

    숫자가 낮을수록 우선 순위가 높음을 나타냅니다. 이 기능은 특정 순서로 Bean을 (즉, @Autowired를 통해) 컬렉션에 추가하는 데 사용될 수 있습니다.

    특정 예제에서 주석은 클래스 자체에서 아무 것도 변경하지 않습니다. 이 특정 클래스가 사용되면 더 높은 우선 순위 ( '1'로 설정되어 있기 때문에)로 사용됩니다. 추가, 종속 정보가 다른 클래스에 추가되고 있기 때문에 우선 순위가 낮습니다.

  3. ==============================

    3.@Order Annotation은 스프링 컨테이너로 빈을로드하는 순서를 지정합니다. 순서 (정수)를 낮추면 우선 순위가 높습니다. 따라서 0의 차수는 10의 차수보다 우선 순위가 더 높습니다. 마찬가지로 -100의 차수는 0보다 우선합니다.

    @Order Annotation은 스프링 컨테이너로 빈을로드하는 순서를 지정합니다. 순서 (정수)를 낮추면 우선 순위가 높습니다. 따라서 0의 차수는 10의 차수보다 우선 순위가 더 높습니다. 마찬가지로 -100의 차수는 0보다 우선합니다.

  4. from https://stackoverflow.com/questions/30328897/what-is-the-use-of-order-annotation-in-spring by cc-by-sa and MIT license