被快手捞了一手,明天面试。加油呀。冲鸭!!!八股文我来了fighting!!!

【Spring】

【SpringBoot】

  • SpringBoot自动配置的原理是什么?介绍SpringBootApplication注解.

它主要加载了@SpringBootApplication注解主配置类,这个@SpringBootApplication注解主配置类里边
最主要的功能就是SpringBoot开启了一个@EnableAutoConfiguration注解的自动配置功能。
@EnableAutoConfiguration作用:它主要利用了一个EnableAutoConfigurationImportSelector选择器给Spring容器中来导入一些组件。
@SpringBootApplication注解等同于下面三个注解:
@SpringBootConfiguration: 底层是Configuration注解,说白了就是支持JavaConfig的方式来进
行配置
@EnableAutoConfiguration:开启自动配置功能
@ComponentScan:就是扫描注解,默认是扫描当前类下的package
其中@EnableAutoConfiguration 是关键(启用自动配置),内部实际上就去加载METAINF/
spring.factories 文件的信息,然后筛选出以EnableAutoConfiguration 为key的数据,加载
到IOC容器中,实现自动配置功能!

mybatis把sql交给配置文件
原理:Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

【框架核心】

1、mybatis配置文件,包括Mybatis全局配置文件和Mybatis映射文件,其中全局配置文件配置了数据源、事务等信息;映射文件配置了SQL执行相关的 信息。

2、mybatis通过读取配置文件信息(全局配置文件和映射文件),构造出SqlSessionFactory,即会话工厂。

3、通过SqlSessionFactory,可以创建SqlSession即会话。Mybatis是通过SqlSession来操作数据库的。

4、SqlSession本身不能直接操作数据库,它是通过底层的Executor执行器接口来操作数据库的。Executor接口有两个实现类,一个是普通执行器,一个是缓存执行器(默认)

5、Executor执行器要处理的SQL信息是封装到一个底层对象MappedStatement中。该对象包括:SQL语句、输入参数映射信息、输出结果集映射信息。其中输入参数和输出结果的映射类型包括HashMap集合对象、POJO(java普通类,只有成员变量和简单的get、set方法)对象类型