java八股复习指南-Spring篇
spring全家桶理解
Spring框架
核心:ioc和aop
ioc:控制反转
是指把对象的创建和配置的控制权从调用方转移给spring容器,我们可以将对象交给容器管理,即bean,这样不需要自己去new对象,只需要获取bean就可以使用。
好比在家自己做菜,菜的味道全部由自己控制;去餐馆吃饭,菜的味道则是交由餐馆控制。IoC 容器就担任了餐馆的角色。
对象交由容器管理后,默认是单例的,这就解决了资源浪费的问题。
- 解决对象耦合的问题,有利于功能的服用
使用注解@AutoFired
自动注入bean对象
核心注解:
@Component
:通用注解,可标注任意类为Bean对象,如果不知道属于哪一层,即可用该注解@Controller
:对应controller层@Service
:对应service层@Repository
:对应dao层,使用该注解还必须配置扫描地址
@Component
与@Bean
的区别:
@Component
注解作用于类,而@Bean
注解作用于方法。- Spring容器启动时,会自动扫描整个包,寻找带
@Component
注解的类,并将其实例化为Bean对象 - 在带有
@Configuration
注解的配置类中,可以使用@Bean
注解标记方法,这些方法会返回一个Bean对象
aop:面向切面编程
切面:复用一些辅助逻辑,这些辅助逻辑犹如一条条横线,穿插在所有的方法当中
oop是纵向的结构,那么aop则是横向的,是对oop的一种补充;在不修改原有代码基础上,让切面逻辑在所有业务逻辑中生效
SpringMVC
SpringMVC是一款web MVC框架,MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。
MVC框架:
Model:Pojo、Service、Dao
View:视图
Controller:控制器
SpringMVC执行原理
SpringBoot
核心注解:
@SpringBootApplication
- 在SpringBoot项目中,主启动类上面有一个注解SpringBootApplication注解,它对@Configuration、@ComponentScan以及@EnableAutoConfiguration等三个注解进行了封装,@EnableAutoConfiguration注解是SpringBoot实现自动配置的核心注解。
- 该注解通过@Import注解导入了一个@AutoConfigurationImportSelector类,该类实现了一个ImportSelector导入器接口,该接口中存在一个selectImports()方法。该方法的返回值是一个存储Spring中类全名的数组。
- AutoConfigurationSelectors类重写了selectImports()方法,通过重写后的selectImports()方法读取META-INF下spring.factories文件下配置类的全类名。
- 这些配置类定义的Bean会根据条件注解所指定的条件决定是否导入Spring容器中。