随笔 - 168  文章 - 0  评论 - 2  阅读 - 4361

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;

  }

}

 

posted on   付治齐吖  阅读(7)  评论(0编辑  收藏  举报
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示