この質問は前の質問Specify Custom Application Contextの続きです。jersey-spring3を使用してJerseyTestコンテナからマネージドBeanを取得します。
ジャージースプリングを使用して、ジャージースプリングを使用してジャージースプリングからジャージー2.xにデータサービスの一部を移行しています。
JerseyTestから継承したテストクラスがいくつかあります。これらのクラスの中には、web.xmlファイルで指定されていないカスタムapplicationContext.xmlファイルを使用するものがあります。
オブジェクトをモックする目的で、ジャージーリソースのいくつかのコンポーネントをモックアウトします。我々は
<bean id="mockBean" class="org.easymock.EasyMock"
factory-method="createStrictMock" autowire="byName">
<constructor-arg index="0" value="com.xxx.xxx.ClassToMock" />
</bean>
することにより、アプリケーションのコンテキストファイル内のオブジェクトをモックと同じジャージー2で達成することができますどのように
ClassToMock obj = (ClassToMock)ContextLoader
.getCurrentWebApplicationContext()
.getAutowireCapableBeanFactory()
.getBean("mockBean");
を次のようにこれらの嘲笑のインスタンスを取得することができジャージー1.xでは
。 xジャージースプリング3を使って?
API docs、user guides、およびsourcesのうちのいくつかをコーディネートしましたが、回答が見つかりませんでした。
ありがとうございます。
EDIT:
私たちは、JAX-RSリソースの内部嘲笑豆を使用することになります。私たちのリソースには@Autowired
というサービスインターフェイスがあります。
@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;
...
私たちはこれらのサービスに期待を寄せています。
<bean id="productService" class="org.easymock.EasyMock"
factory-method="createStrictMock">
<constructor-arg index="0"
value="com.xxx.xxx.service.ProductService" />
</bean>
例としてこれを説明できますか? JAX-RSリソースの中にあるのですか?正確に 'WebApplicationContext'が必要か、あるいは' ApplicationContext'で十分ですか? –
'WebApplicationContext'または' ApplicationContext'のどちらでも問題ありません。 JAX-RSリソースに注入されたBeanへのポインタを提供します。 –