1.@Resource和@Autowired依赖注入的区别是什么?@Qualifier的使用场景?
@Resource在jdk1.8后只能通过导依赖的方式使用该注解的功能,@Resource注释包含@Autowired和@Qualifier两个注解的功能。
@Autowired是按照类型去自动注入对象,可以配合@Qualifier使用去查找id。
@Qualifier是通过指定的id在spring容器中匹配对象,用于容器中存在多个同类型的对象时候使用。
2.spring框架中都用到了那些设计模式?
- 工厂模式:调用类中使用的status静态方法创建一个对象
- 单例模式:spirng默认的单例模式
- 代理模式:spring的AOP功能,底层实现原理运用到了动态代理的一个实现方式
- 模板方法:调用类中的非静态方法,解决代码的重复问题
- 观察者模式:实现一对多的一个依赖关系
3.spring的常用注解?
创建对象(实例化对象):
@Component
@Repository
@Service
@Controller
生命周期:
@Scope
@PostConstruct
@PreDestroy
依赖注入:
@Autowired
@Qualifier
@Value
@Resource
纯注解开发:
@Configuration 表示一个类配置类
@PropertySource 加载配置文件
@ComponentScan 包扫描
创建第三方对象的注解:
@Bean