被快手捞了一手,明天面试。加油呀。冲鸭!!!八股文我来了fighting!!!
【Spring】
- 什么是 Spring 框架?
- 列举⼀些重要的Spring模块?(Core/Aspects/AOP/Web/JDBC/ORM/JMS/Test)
- @RestController vs @Controller
- Spring IOC & AOP
- Spring AOP 和 AspectJ AOP 有什么区别?
- Spring 中的 bean 的作⽤域有哪些?(5)
- Spring 中的单例 bean 的线程安全问题了解吗?(ThreadLocal)
- @Component 和 @Bean 的区别是什么?
- 将⼀个类声明为Spring的 bean 的注解有哪些?
- Bean生命周期
- SpringMVC ⼯作原理了解吗?
- 拦截器和过滤器
- Spring 框架中⽤到了哪些设计模式?
- Spring 事务(隔离级别,传播属性)
【Mybatis】 - $和#的区别是什么?
- Mybatis和Hibernate的区别
- MyBatis原理分析(传统sqlsession/mapper接口动态代理)
【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方法)对象类型。