有时我们需要创建一些特定功能的bean,该如何做呢?
1.创建实现FactoryBean的工厂
public class ProxyFactoryBean<T> implements FactoryBean<T> {
private Class<T> proxyInterface;
@Autowired
private QrpcProxy qrpcProxy;
public ProxyFactoryBean() {
}
public ProxyFactoryBean(Class<T> proxyInterface) {
this.proxyInterface = proxyInterface;
}
@Override
public T getObject() {
return qrpcProxy.create(proxyInterface);
}
@Override
public Class<?> getObjectType() {
return this.proxyInterface;
}
@Override
public boolean isSingleton() {
return true;
}
}
2.在xml配置bean
<bean id="testService" class="com.qrpc.server.utils.ProxyFactoryBean">
<constructor-arg value="com.qrpc.api.facade.TestService"/>
</bean>
3.使用
@RestController
public class TestController {
@Autowired
private TestService testService;
@GetMapping(BASE_GETSTRING)
public String getString() {
return testService.getString();
}
}