一:Spring和SpringBoot的区别是什么?
SpringBoot的出现,主要是起到了简化Spring应用程序的开发和部署,SpringBoot主要在这几个方面来提升了我们使用Spring的效率
- 自动配置:Spring Boot通过Auto-Configuration来减少开发人员的配置工作,我们可以通过依赖一个starter就把一坨东西全部都依赖进来
- 内嵌Web服务器:Spring Boot内置了常见的Web服务器(如Tomcat、Jetty)
- 约定大于配置:SpringBoot中有很多约定大于配置的思想的体现,比如他默认读取spring.factories来加载Starter、读取application.properties或application.yml文件来进行属性配置等。
二:Autowired和Resource的关系?
- byName和byType匹配顺序不同
Autowired在获取bean的时候,先在Spring容器中查找以Bean为类型的Bean实例,如果找不到或者找到多个bean,则会通过beanName来找。
Resource在获取bean的时候,和Autowired恰好相反,先是byName方式,然后再是byType方式。 - 作用域不同
Autowired可以作用在构造器,字段,setter方法上
Resource 只可以使用在字段,setter方法上 - 支持方不同
Autowired是Spring提供的自动注入注解,只有Spring容器会支持
Resource是JDK官方提供的自动注入注解,所有的IOC容器都会支持这个注解
三:BeanFactory和FactroyBean的关系?
BeanFactory是Spring loC容器的一个接口,用来获取Bean以及管理Bean的创建和生命周期。
FactoryBean是一个接口,用于定义一个工厂Bean,它可以产生某种类型的对象。