Java 用注释注入取代通过XML的Springbean注入
我想通过注释声明和注入bean。它以前是通过XML完成的,但我需要应用于Spring启动项目 以下是源xmlJava 用注释注入取代通过XML的Springbean注入,java,spring,spring-boot,Java,Spring,Spring Boot,我想通过注释声明和注入bean。它以前是通过XML完成的,但我需要应用于Spring启动项目 以下是源xml <oauth:resource-details-service id="rds"> <oauth:resource id="oauth1" key="${key}" secret="${secret}" request-token-url="${token}"
<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>
这样做的正确方法是什么?我不确定您是否在寻找这个解释。但如果我理解你的问题,那么下面的信息可能会对你有所帮助 对于示例配置类,您可以看到示例 对于注册配置类,您可以看到
请参阅@Service、@Component、@Repository、@Controller、@Autowired相关示例。您可以在主类中使用@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;
您可以在您的配置java类中初始化
BaseProtectedResourceDetails
,然后为OAuthRestTemplate
初始化bean,并在构造函数中传递BaseProtectedResourceDetails
的初始化bean。我今晚将尝试此操作,如果可行,则接受此操作。谢谢。如果resourceDetails需要在属性文件(如密钥)中定义配置,则在创建bean时,使用@Value注释的字段可能是工作字段,还是为空字段?您可以尝试使用如下环境对象:@Resource Environment env;并获取如下属性:最终字符串myPropertyValue=environment.getProperty(“myProperty”);
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( );
}
}
@SpringBootApplication
public class Application{
@Bean
public OAuthRestTemplate getAuth(){
BaseProtectedResourceDetails resourceDetails = new BaseProtectedResourceDetails();
resourceDetails.set...
resourceDetails.set...
return new OAuthRestTemplate(resourceDetails);
}
}
@Autowired
private OAuthRestTemplate oAuthRestTemplate;