java - 如何将 xml 符号转换为基于注释的符号 : Spring - Java

标签 java spring spring-annotations

我的 spring 上下文 xml 中有以下 xml 配置,我很少使用基于注释的方法,无法弄清楚如何使用注释来表示以下内容,需要帮助。

<bean id="myPolicyAdmin" class="org.springframework.security.oauth2.client.OAuth2RestTemplate">
        <constructor-arg>
            <bean class="org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordResourceDetails">
                <property name="accessTokenUri" value="${accessTokenEndpointUrl}" />
                <property name="clientId" value="${clientId}" />
                <property name="clientSecret" value="${clientSecret}" />
                <property name="username" value="${policyAdminUserName}" />
                <property name="password" value="${policyAdminUserPassword}" />
            </bean>
        </constructor-arg>
    </bean>

在我的 java 类(策略管理器)中,它被称为如下,我实际上是在引用一个示例并尝试将其转换为所有注释基础。

@Autowired
@Qualifier("myPolicyAdmin")
private OAuth2RestTemplate myPolicyAdminTemplate;

编辑: 我尝试为 org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordResourceDetails 创建一个 bean,但不确定如何设置它的属性以及如何将它作为 的构造函数参数访问myPolicyAdminTemplate

最佳答案

您可以使用 JavaConfig 配置相同的 bean,如下所示:

@Component
@Configuration
public class AppConfig
{
    @Value("${accessTokenEndpointUrl}") String accessTokenUri;
    @Value("${clientId}") String clientId;
    @Value("${clientSecret}") String clientSecret;
    @Value("${policyAdminUserName}") String username;
    @Value("${policyAdminUserPassword}") String password;

    @Bean
    public OAuth2RestTemplate myPolicyAdmin(ResourceOwnerPasswordResourceDetails details)
    {
        return new OAuth2RestTemplate(details);
    }

    @Bean
    public ResourceOwnerPasswordResourceDetails resourceOwnerPasswordResourceDetails()
    {
         ResourceOwnerPasswordResourceDetails bean = new ResourceOwnerPasswordResourceDetails();
         bean.setAccessTokenUri(accessTokenUri);
         bean.setClientId(clientId);
         bean.setClientSecret(clientSecret);
         bean.setUsername(username);
         bean.setPassword(password);         
         return bean;
    }
}

关于java - 如何将 xml 符号转换为基于注释的符号 : Spring - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30310674/

相关文章:

java - 如何使用注释在 @Scope ("prototype") bean 中指定实例特定的 @Value?

javascript - 提交给 servlet 的隐藏表单字段值不正确

java - 如何在 Java 中查找带有空格的字符串的子字符串?

Java模块: accessibility problems for Mockito 2. 20.0

java - @Transactional 和继承

css - spring security css 样式不起作用

java - save 方法无法使用 Hibernate + Spring 保存对象

spring - 处理多个验证注释错误消息

java - 为什么在 Spring 中我不允许使用 @Configuration 注释最终类?

java - 使用 GridBagLayout 定位