如何使用不同的配置创建相同的bean

时间:2019-02-04 11:16:52

标签: java spring spring-boot

这是我的bean配置类

@Configuration
@PropertySource({ "classpath:gerrit.properties" })
public class BeanConfig {

    @Value("${gerrit.user}")
    public String gerritUser;

    @Value("${gerrit.pass}")
    public String gerritPass;

    @Value("${gerrit.url}")
    public String gerritUrl;

    @Value("${proxy.ip}")
    public String proxyIp;

    @Value("${proxy.port}")
    public String proxyPort;

    @Bean(name="gerritRestClient")  
    public GerritRestClient getGerritRestClient(){      
        System.setProperty("https.protocols", "TLSv1.1");
        GerritAuthData.Basic authData=new GerritAuthData.Basic(gerritUrl, gerritUser,gerritPass);
        HttpRequestExecutor httpRequestExecutor=new HttpRequestExecutor();      
        GerritRestClient gerritRestClient=new GerritRestClient(authData,new HttpRequestExecutor());         
        return gerritRestClient;        
    }


}

在gerrit.properties中,我有一个不同的gerrit网址(属性名称gerrit.service.url)。 所以我需要形成一个GerritRestClient类型的bean来利用其他gerrit。我的应用程序都需要两个bean Gerrit Rest CLient是一个github项目,它是Gerrit的Java客户端。

在我的服务代码中,我按如下所示自动装配Bean

@Autowired
private GerritRestClient gerritRestClient;

如何使用属性文件中的其他URL创建另一个bean  类型GerritRestClient以及如何注入

预先感谢

0 个答案:

没有答案