我正在为spring boot创建自己的自动配置,以配置连接到我公司的REST ESB的rest客户端,应该有一些基本属性,如(application.properties或.yml)中的URL和凭据。 / p>
我在想:
@Bean
的方法内部吗?)我的代码是:
@Configuration
@ConditionalOnMissingBean(EsbClientService.class)
@ConditionalOnClass({EsbClientService.class,EsbSpringClientServiceImpl.class})
@EnableConfigurationProperties(EsbRestClientProperties.class)
public class EsbClientAutoConfiguration {
private static final Logger logger = LoggerFactory
.getLogger(EsbClientAutoConfiguration.class);
@Autowired
private EsbRestClientProperties properties;
@Bean
public EsbClientService esbClientService(){
//TODO check all properties are set!
logger.info("Auto Configure EsbClientService using EsbSpringClientServiceImpl");
SimpleClientHttpRequestFactory clientFactory = new SimpleClientHttpRequestFactory();
EsbResponseErrorHandler errorHandler = new EsbResponseErrorHandler();
clientFactory.setReadTimeout(properties.getReadTimeout());
clientFactory.setConnectTimeout(properties.getConnectTimeout());
RestTemplate restTemplate = new RestTemplate(clientFactory);
restTemplate.setErrorHandler(errorHandler);
EsbClientService service = new EsbSpringClientServiceImpl(restTemplate, properties);
logger.info("Auto Configure EsbClientService using EsbSpringClientServiceImpl Done");
return service;
}
}