class Proxy{
private Class<?> customType;
..
}
interface Foo{
public String foo();
..
}
<bean id="foo" class="com.test.Proxy">
<property name="customType" value="com.test.Foo"/>
</bean>
除外
Bean foo是com.test.Foo
的实例,而非com.test.Proxy
问题
我应该怎么做Proxy类,看起来spring提供了一个接口来做这个,但我真的不知道如何实现这个?
我也是谷歌搜索,但是找不到它,也许我使用的关键字是错的,任何人都可以帮助或给我一个指南链接,非常感谢。
结果
class Proxy<T> implements FactoryBean<T>{
private Class<?> customType;
public Class<?> getObjectType() {
return customType;
}
public T getObject() throws Exception {
return (T)customObj;
}
..
}
答案 0 :(得分:1)
您必须提供Foo的实现,因为您必须实例化实现而不是接口:
class Proxy{
private Foo customType;
..
}
interface Foo{
public String foo();
..
}
class FooImpl implements Foo{
public String foo();
...
}
然后在xml中,设置如下:
<bean id="foo" class="com.test.Proxy">
<property name="customType">
<bean class="com.test.FooImpl" />
</property>
</bean>