2017-01-12 15 views
1

Я использую весенний ботинок с сеткой и трикотажем (весенний ботинок-майку). У меня есть конечная точка Джерси, которая должна вводить компонент области запроса. Однако при запуске приложения я получаю ошибку, найденную не bean.Весенняя обувь - предотвращение запуска экземпляра контроллера

@Component 
@Path("blah")  
@RequestScoped 
public class JerseyController{ 
    @Inject 
    private MyEntity entity; 
} 

@Component 
public class JerseyConfiguration extends ResourceConfig{ 
    public JeyseyConfiguration(){ 
     register(JeyseyController.class); 
     registere(MyEntityProvider.class); 
    } 
} 

Есть ли способ, в веб-приложение весна-загрузки, чтобы предотвратить Spring от попыток создания экземпляра и ввести свой JerseyController, пока запрос HTTP не принимается, так что вводимый зависимость может быть предоставлена ​​поставщиком Джерси?

+1

'@ Компонент' не требуется на ресурсах Джерси. Это приведет к тому, что Spring создаст его экземпляр (с областью действия Singleton по умолчанию). Я не думаю, что Весна уважает '@ RequestScoped'. Это аннотация из Джерси. Если вы хотите использовать '@ Component', я думаю, что Spring' @Scope («запрос») может сделать трюк. –

+0

Вот и все! Благодарю. Удалил атрибут '@ Component' –

ответ

1

@Component не требуется на ресурсах Джерси. Это приведет к тому, что Spring создаст его экземпляр (с областью действия Singleton по умолчанию). Я не думаю, что Весна не уважает @RequestScoped. Это аннотация из Джерси. Если вы хотите использовать @Component, я думаю, что весна @Scope("request") может сделать трюк.

Вы также можете удалить @RequestScoped. Это размер по умолчанию для ресурсов Джерси.

Единственный раз, когда мне когда-либо приходилось использовать @Component на ресурсах Джерси, если мне нужно использовать Spring @Value (возможно, АОП также, но я не делаю много АОП). Помимо этого, интеграция Jersey-Spring уже поддерживает наиболее распространенную функцию Spring, которая является DI. И если вы действительно хотите сделать ресурс Джерси синглом, Джерси поддерживает аннотацию @Singleton.

 Смежные вопросы

  • Нет связанных вопросов^_^