面试题:34(完成)

1.@Resource和@Autowired依赖注入的区别是什么?@Qualifier的使用场景?

@Resource在jdk1.8后只能通过导依赖的方式使用该注解的功能,@Resource注释包含@Autowired和@Qualifier两个注解的功能。
@Autowired是按照类型去自动注入对象,可以配合@Qualifier使用去查找id。
@Qualifier是通过指定的id在spring容器中匹配对象,用于容器中存在多个同类型的对象时候使用。

2.spring框架中都用到了那些设计模式?

  1. 工厂模式:调用类中使用的status静态方法创建一个对象
  2. 单例模式:spirng默认的单例模式
  3. 代理模式:spring的AOP功能,底层实现原理运用到了动态代理的一个实现方式
  4. 模板方法:调用类中的非静态方法,解决代码的重复问题
  5. 观察者模式:实现一对多的一个依赖关系

    3.spring的常用注解?

    创建对象(实例化对象):
    @Component
    @Repository
    @Service
    @Controller
    生命周期:
    @Scope
    @PostConstruct
    @PreDestroy
    依赖注入:
    @Autowired
    @Qualifier
    @Value
    @Resource
    纯注解开发:
    @Configuration 表示一个类配置类
    @PropertySource 加载配置文件
    @ComponentScan 包扫描
    创建第三方对象的注解:
    @Bean