Questa domanda è la risposta a una domanda precedente Specify Custom Application Context.Recupera un bean gestito da un contenitore JerseyTest con jersey-spring3
Stiamo migrando alcuni dei nostri servizi dati da Jersey 1.x utilizzando jersey-spring a Jersey 2.x utilizzando jersey-spring3.
Abbiamo alcune classi di test che ereditano da JerseyTest. Alcune di queste classi utilizzano file applicationContext.xml personalizzati non specificati nel file web.xml.
Per scopi di derisione dell'oggetto, prendiamo in giro alcuni componenti nelle risorse di Jersey.
In Jersey 1.x potremmo prendere in giro oggetti nel file di contesto applicazione
<bean id="mockBean" class="org.easymock.EasyMock"
factory-method="createStrictMock" autowire="byName">
<constructor-arg index="0" value="com.xxx.xxx.ClassToMock" />
</bean>
e recuperare queste istanze deriso come segue
ClassToMock obj = (ClassToMock)ContextLoader
.getCurrentWebApplicationContext()
.getAutowireCapableBeanFactory()
.getBean("mockBean");
Come può lo stesso essere raggiunto con Jersey 2. x usando jersey-spring3?
Ho passato il API docs, user guides e alcuni dei sources ma non sono riuscito a trovare una risposta.
Grazie.
EDIT:
Useremo i fagioli deriso all'interno delle nostre risorse JAX-RS. Abbiamo interfacce di servizio che sono @Autowired
nelle nostre risorse.
ad es.
@Path(ProductResource.RESOURCE_PATH)
@Component
@Scope("prototype")
public class ProductResource
extends GenericResource<Product, BaseModel> {
/*
* Members
*/
public static final String RESOURCE_PATH = "product/";
@Autowired
protected ProductService productService;
...
Vogliamo prendere in giro e impostare le aspettative su questi servizi.
ad es.
<bean id="productService" class="org.easymock.EasyMock"
factory-method="createStrictMock">
<constructor-arg index="0"
value="com.xxx.xxx.service.ProductService" />
</bean>
Puoi illustrarlo su un esempio? (Come/Quando/Dove stai usando il bean di mocked? È all'interno di una risorsa JAX-RS?) Hai bisogno esattamente di 'WebApplicationContext' o di qualsiasi' ApplicationContext' è sufficiente? –
O "WebApplicationContext" o "ApplicationContext" andrebbero bene. Quale mai ci darebbe un puntatore al bean che è stato iniettato nelle risorse JAX-RS. –