java - Spring boot Bean注解及Configuration中的实例变量流
问题描述
我是 Spring Boot 框架的新手,我对 @Bean 注释以及实例变量如何被 Bean 更改有些困惑。我有一个下面的例子,如果有人可以回答我的问题将非常有帮助:
- 如果我在我的实例变量中定义 restTemplate 将 userRestTemplate 模板 bean 将能够改变它的值?
- 如果 userRestTemplate 正在更改其值,那么 userDetail 将通过 userRestTemplate bean 获得更新的值?
- 如果不是 userdetail bean 将在 setTemplate 方法中设置什么?
@Configuration
public class UserConfiguration{
RestTemplate restTemplate;
@Bean
@Named("userRestTemplate")
public RestTemplate userRestTemplate(RestTemplateBuilder restTemplateBuilder) {
RestTemplate restTemplate = restTemplateBuilder.build();
//restTemplate.getMessageConverters().add(0, createMappingJacksonHttpMessageConverter());
this.restTemplate = restTemplate;
return restTemplate;
}
@Bean
public UserDetail userDetail() {
UserDetail user = new UserDetail();
user.setTemplate(restTemplate);
return user;
}
}
解决方案
您可以使用以下代码配置新 bean。
@Configuration
public class UserConfiguration{
private final RestTemplate restTemplate;
@Autowired
public UserConfiguration(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
@Bean
public UserDetail userDetail() {
UserDetail user = new UserDetail();
user.setTemplate(restTemplate);
return user;
}
}
推荐阅读
- python - Matplotlib:如何仅渲染较大图形的小区域(剪辑)
- ios - Swift - 如何模仿 iOS 的 Files 应用可扩展导航栏
- string - 给定一个前缀,返回带有该前缀的前 N 个搜索词
- qt - Qt 相当于 timeGetTime()
- javascript - 如何在 ReactJS 中循环的映射中对值进行排序
- javascript - 真的没有将符号转换为索引“B3”到[2、3]的内置方法吗?
- css - Angular / CSS样式更改行项的宽度
- javascript - 使用有限字符使点可选
- java - 使用泛型进行动态转换
- python - Tkinter - 在我的项目中添加背景后出现问题