2016-01-20 70 views
-1

我想下面的Spring bean从XML转换为javaconfig类:转换的Spring XML来JavaConfig

<bean id="restTemplate" class="org.springframework.security.oauth2.client.OAuth2RestTemplate"> 
    <constructor-arg ref="resource"/> 
    <property name="messageConverters"> 
     <list> 
      <ref bean="jaxbMessageConverter" /> 
      <ref bean="stringHttpMessageConverter" /> 
      <ref bean="jsonConverter" /> 
     </list> 
    </property> 
</bean> 

<bean id="resource" class="org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordResourceDetails"> 
    <property name="username" value="asdfasdf" /> 
    <property name="password" value="asdfasdfa" /> 
    <property name="clientId" value="asdfasdf-asdfas-asdfasf" /> 
    <property name="clientSecret" value="asdfasdf-asdfasdf-adfasdfd" /> 
    <property name="accessTokenUri" value="asdfsadfasd" /> 
    <property name="grantType" value="password"></property> 
    <property name="clientAuthenticationScheme" value="form" /> 
</bean> 

正是你会如何转换呢?我遇到了this example,但它有点令人困惑,因为它对我来说并没有意义,因为它代表了java中的<constructor-arg...><property....>标记。在这个例子中,他们都翻译成:

return new JButton(...); 

回答

1

在spring配置文件中,你需要这样做:

@Bean 
public ResourceOwnerPasswordResourceDetails resource() { 
     ResourceOwnerPasswordResourceDetails r = new ResourceOwnerPasswordResourceDetails(); 
     r.setUsername("asdfasdf"); 
    .... 

} 
@Bean 
public OAuth2RestTemplate restTemplate() { 
     OAuth2RestTemplate rest = new OAuth2RestTemplate(resource()); 
     rest.setMessageConverters(...); 
     List<HttpMessageConverter<?>> messageConv = new ArrayList<HttpMessageConverter<?>>(); 
     messageConv.add(new MappingJackson2HttpMessageConverter()); 
     rest.setMessageConverters(messageConv); 
} 

从上面的例子可以理解规则:

  1. 财产可以用setProperty完成..
  2. 构造函数arg在构造函数中真的是参数
  3. 名单是豆之间的ArrayList
  4. Depencdecies就像在例如

    建议:如果你想实现的东西,你不明白它只是谷歌和检索算法的具体例子。这将是最简单的方式和按规则工作将很容易为您

+0

'setMessageConverters'究竟是如何工作,因为它是一个列表? – Richard

+0

看看我的编辑,你需要根据你的转换器创建它 – Aviad

+0

所以这有助于我更好地理解如何将spring xml转换为javaconfig。但是,如何在xml中定义一个接受1个输入的方法。像'公共富(int x)' – Richard