我想通过注释声明并注入一个bean。它以前是通过XML完成的,但我需要应用于Spring Boot项目。
以下是源xml
<oauth:resource-details-service id="rds">
<oauth:resource
id="oauth1"
key="${key}"
secret="${secret}"
request-token-url="${token}"
user-authorization-url="${user-auth}"
access-token-url="${accesstokenurl}">
</oauth:resource>
</oauth:resource-details-service>
这种豆子后来被用作这种
<bean class="org.springframework.security.oauth.consumer.client.OAuthRestTemplate">
<constructor-arg ref="oauth1"/>
</bean>
我找到的唯一方法是通过直接实例化
BaseProtectedResourceDetails resourceDetails = new BaseProtectedResourceDetails();
resourceDetails.set...
resourceDetails.set...
OAuthRestTemplate restTemplate = new OAuthRestTemplate(resourceDetails);
这样做的正确方法是什么?
您可以在主类中使用@Bean注释,例如:
@SpringBootApplication
public class Application{
@Bean
public OAuthRestTemplate getAuth(){
BaseProtectedResourceDetails resourceDetails = new BaseProtectedResourceDetails();
resourceDetails.set...
resourceDetails.set...
return new OAuthRestTemplate(resourceDetails);
}
}
并且在使用@Autowired注入对象之后
@Autowired
private OAuthRestTemplate oAuthRestTemplate;
我不确定您是否在搜索此解释。但如果我理解你的问题,那么以下信息可能会对你有所帮助。
对于示例配置类,您可以看到此示例。
package com.tutorialspoint;
import org.springframework.context.annotation.*;
@Configuration
public class TextEditorConfig {
@Bean
public TextEditor textEditor(){
return new TextEditor( spellChecker() );
}
@Bean
public SpellChecker spellChecker(){
return new SpellChecker( );
}
}
对于注册配置类,您可以看到这个SO答案。
有关"服务"、"组件"、"存储库"、"控制器"one_answers"自动连线"的示例,请参见此。