3.12毕设
Aware接口,从字面上理解就是感知捕获。单纯的一个Bean是没有知觉的。
在之前的场景中,之所以UserDao能够注入到UserService,有一个前提,就是它两个都是被Spring容器管理的。如果直接new一个UserService,这是没用的,因为UserService没有被Spring容器管理,所以也不会给它里边注入Bean。
在实际开发中,我们可能会遇到一些类,需要获取到容器的详细信息,那就可以通过Aware接口来实现。
Aware是一个空接口,有很多实现类:
这些实现的接口,有一些公共特性:
1.都是以Aware结尾
2.都继承自Aware
3.接口内均定义了一个set方法
每一个子接口均提供了一个set方法,方法的参数就是当前Bean需要感知的内容,因此我们需要在Bean中声明相关的成员变量来接受这个参数。接收到这个参数后,就可以通过这个参数获取到容器的详细信息了。
@Component
public class SayHello implements ApplicationContextAware{
private ApplicationContext applicationContext;
public String sayHello(String name){
//判断容器中是否存在某个Bean
boolean userDao applicationContext.containsBean("userDao333");
System.out.println(userDao);
return "hello "name;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext)throws BeansException{
this.applicationContext applicationContext;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步