あなたの場合は明示的ではありませんが。set標準の Bean パターンメソッドを介してプロパティを公開する場合、ビルダーを拡張することができます。つまり、 をorg.apache.httpcomponents:httpclient HttpClientBuilder例にとると、次のようになります。
public class HttpClientFactoryBean
extends HttpClientBuilder
implements InitializingBean,
FactoryBean<HttpClient> {
private HttpClient value;
@Override
public void afterPropertiesSet() throws Exception {
this.value = build();
}
@Override
public HttpClient getObject() throws Exception {
return value;
}
@Override
public Class<?> getObjectType() {
return HttpClient.class;
}
@Override
public boolean isSingleton() {
return true;
}
}
これで、によって公開されたすべてのメソッドHttpClientBuilderがファクトリ Bean にアクセスできるようになりました。次のような構成が可能になりました。
<beans id="httpClient" class="com.drunkendev.factory.HttpClientFactoryBean">
<beans name="defaultCredentialsProvider" ref="credentialsProvider"/>
<beans name="targetAuthenticationStrategy">
<util:constant static-field="org.apache.http.impl.client.TargetAuthenticationStrategy.INSTANCE"/>
</beans>
</beans>