gpt4 book ai didi

java - 将 Spring XML 转换为 JavaConfig

转载 作者:行者123 更新时间:2023-11-30 03:05:24 24 4
gpt4 key购买 nike

我想将以下 spring bean 从 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但这有点令人困惑,因为它对我来说并没有真正意义 <constructor-arg...><property....>标签是用java表示的。在示例中,它们都翻译为:

return new JButton(...);

最佳答案

在 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. 列表是数组列表

  4. bean 之间的依赖关系如示例中所示

    建议:如果您正在尝试实现某些目标,但您不明白,只需谷歌搜索并搜索具体示例即可。这将是最简单的方法,并且按照规则工作对您来说会很容易

关于java - 将 Spring XML 转换为 JavaConfig,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34911063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com