programing

Spring에서 @Order 주석은 어떤 용도로 사용됩니까?

lastmoon 2023. 8. 5. 10:52
반응형

Spring에서 @Order 주석은 어떤 용도로 사용됩니까?

다음을 사용하는 코드의 개요를 발견했습니다.@Order주석Spring Security 또는 Spring MVC와 관련하여 이 주석의 용도가 무엇인지 알고 싶습니다.

다음은 예입니다.

@Order(1)
public class StatelessAuthenticationSecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private UserDetailsService userDetailsService;

    @Autowired
    private TokenAuthenticationService tokenAuthenticationService;

}

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

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

우선 순위가 가장 높은 조언이 먼저 실행됩니다.숫자가 작을수록 우선 순위가 높아집니다.예를 들어, 두 개의 '이전' 조언이 주어지면 우선 순위가 가장 높은 것이 먼저 실행됩니다.

다른 사용 방법은 자동 배선 컬렉션을 주문하는 것입니다.

@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 에서 확인할 수 있습니다.

이것이 그것을 조금 더 명확히 하기를 바랍니다.

출력:-

마쓰다 도요타

@Order주석(및Orderedinterface)는 Spring에 의해 콩이 적재되거나 우선순위가 지정되는 특정 순서를 의미합니다.

숫자가 작을수록 우선 순위가 높음을 나타냅니다.이 기능은 특정 순서로 콩을 컬렉션에 추가하는 데 사용할 수 있습니다(즉,@Autowired), 그 중에서도.

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

@Order주석은 스프링 컨테이너별로 콩을 적재하는 순서를 지정합니다.순서(정수)가 낮을수록 우선 순위가 높습니다.따라서 0의 순서가 10의 순서보다 우선합니다.마찬가지로 -100의 순서는 0보다 우선 순위가 높습니다.

언급URL : https://stackoverflow.com/questions/30328897/what-is-the-use-of-order-annotation-in-spring

반응형