1、使用@Configuration + @Bean
@Configuration
public class ServiceConfig {
@Bean
@Scope("prototype")
public CommonDrawService commonDrawService() {//函数名可以随便起,不一定commonDrawService
return RPCClient.getRemoteService(CommonDrawService.class);
}
}
2、FactoryBean
实现FactoryBean接口
public class CrawFactoryBean implements FactoryBean {
@Override
public Object getObject() throws Exception {
return RPCClient.getRemoteService(CommonDrawService.class);
}
@Override
public Class<?> getObjectType() {
return CommonDrawService.class;
}
@Override
public boolean isSingleton() {
return false;
}
}
applicationContext.xml添加
<bean id="commonDrawService" class="com.shangde.vulcan.management.web.config.CrawFactoryBean"/>
3、工厂方法
1)静态工厂方法
public class CrawFactory {
public static CommonDrawService getInstance(){
return RPCClient.getRemoteService(CommonDrawService.class);
}
}
applicationContext.xml添加
<bean id="commonDrawService" class="com.shangde.vulcan.front.web.config.CrawFactory" factory-method="getInstance"/>
2)非静态工厂方法
public class CrawFactory {
public CommonDrawService getInstance(){
return RPCClient.getRemoteService(CommonDrawService.class);
}
}
applicationContext.xml添加
<bean id="barFactory" class="com.shangde.vulcan.front.web.config.CrawFactory"/>
<bean id="commonDrawService" factory-bean="barFactory" factory-method="getInstance"/>