对于bean中非依赖注入的属性,也可以在创建bean的时候也可以去设置值,spring中提供了Aware回调接口,用于到bean生命周期中依赖注入之后设置其他属性值。
UserServiceImpl类中有一个beanName属性,实现了BeanNameAware接口
// 不能通过"beanName"从spring容器中找到对应的bean,通过beanNameAware接口
private String beanName;
BeanNameAware接口
public interface BeanNameAware {
/**
* 设置bean的beanName属性
*
* @param beanName
*/
void setBeanName(String beanName);
}
Aware接口在bean生命周期中被调用
// Aware回调
// 实现了BeanNameAware接口,调用setBeanName方法
if (instance instanceof BeanNameAware) {
((BeanNameAware) instance).setBeanName(beanName);
}
参考B站视频:链接