Назначение аннотации @Component для ресурсов spring-boot-starter-jersey в Spring boot

@Path("test")
public TestResource {

    @GET
    public Response testGet() {
        return Response.ok().build();
    }

}

Из документации по весенней загрузке раздел о JAX-RS и Джерси: «Все зарегистрированные конечные точки должны быть @Components с аннотациями HTTP-ресурсов (@GET и т. д.), например». Приведенный выше ресурс по-прежнему работает без аннотации @Component. Что бы я сломал, опустив аннотацию @Component?


person Vinay Nagaraj    schedule 14.09.2015    source источник
comment
Spring не будет управлять экземпляром TestResource.   -  person Sotirios Delimanolis    schedule 15.09.2015
comment
Правильно сказал @SotiriosDelimanolis. TestResource управляется не Spring, а Jersey, поэтому не имеет значения, аннотируете ли вы его с помощью @Component или @Controller и т. д.   -  person user2004685    schedule 15.09.2015
comment
Есть ли преимущество или недостаток в том, что TestResource управляется пружиной, а не трикотажем? @SotiriosDelimanolis @user2004685   -  person Vinay Nagaraj    schedule 15.09.2015
comment
Жизненные циклы этих двух ресурсов будут разными. Подробнее см. мой ответ здесь.   -  person Rahul Khimasia    schedule 17.09.2020


Ответы (1)


«Чтобы ресурсы JAX-RS могли работать с функциями Spring, требующими проксирования, такими как управление транзакциями Spring (с @Transactional), Spring Security и аспектно-ориентированное программирование (например, @Aspect), ресурсы сами должны управляться Spring путем аннотирования с @Component, @Service, @Controller или @Repository:"

person Vinay Nagaraj    schedule 16.09.2015
comment
Кроме того, вы также должны знать, что жизненный цикл управляемых ресурсов Spring отличается от обычных управляемых ресурсов Джерси. Подробнее см. мой ответ здесь. - person Rahul Khimasia; 17.09.2020