spring高频面试题
Spring常用注解
(1)@Configuration:用于指定当前类是一个spring配置类
(2)@ComponentScan:用于指定spring初始化容器时要扫描的包
(3)@Bean:只能写在方法上,表明使用此方法创建一个对象,并且放入 spring 容器
(4)@PropertySource:用于加载 .properties 文件中的配置
(5)@Import:用于导入其他配置类
谈谈你对Spring的AOP理解
AOP:面向切片编程,在不修改源代码的情况下给程序动态统一添加额外功能。AOP还可以隔离业务逻辑,降低耦合度,提高程序的可重用性和开发效率
Spring事务实现方式
事务四种实现方式
-
编程式事务管理(实际开发很少使用)
-
声明式事务管理
2.1 基于 TransactionProxyFactoryBean 的方式
2.2 基于 @Transactional 注解的方式
2.3 基于 Aspectj AOP 的XML配置方式
事务: 同一个事务下,一组SQL要么全部成功,要么全部失败
事务: 四大特征:(ACID):原子性,隔离性,一致性,持久性
事务隔离级别
有四种隔离级别,从低到高分别为:
- 读未提交
- 读已提交
- 可重复读
- 串行化
IOC容器对Bean的生命周期
- 通过构造器或工厂方法创建Bean实例
- 为Bean的属性设置值和对其它Bean的引用
- 调用Bean的初始化方法
- Bean可以使用了
- 当容器关闭时,调用Bean的销毁方法
Spring的bean的实例化方式
有三种方式:
- 构造器实例化
- 静态工厂方式实例化
- 实例工厂方式实例化
AOP常用使用场景
- 日志记录
- 日志审计
- 事务管理
- 缓存管理
- 安全性检查
- 性能监控
- 异常处理
SQL语句
有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数
学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来
大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。
显示格式:
语文数学英语
及格优秀不及格
SQL语句:
select
(case when 语文 >= 80 then '优秀' when 语文 >= 60 and 语文 < 80 then '及格' else '不及格' end) as 语文,
(case when 数学 >= 80 then '优秀' when 数学 >= 60 and 数学 < 80 then '及格' else '不及格' end) as 数学,
(case when 英语 >= 80 then '优秀' when 英语 >= 60 and 英语 < 80 then '及格' else '不及格' end) as 英语
from table