目录
4.DML(Data Manipulation Language)
一.Spring
1.浅谈Spring
Spring是一个开源的轻量级Java企业应用框架,它提供了一系列的工具和框架,用于简化企业级应用的开发。Spring框架的核心是IoC(Inverse of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)两个特性。
2.浅谈IOC
IOC:称为控制反转
将对象的创建权交给Spring容器管理,当我们需要使用该对象时,从Spring容器中直接获取即可。
优点:降低了类与类之间的解耦,类与接口之间的解耦
3.浅谈DI
DI:称为依赖注入
思想为:将组件之间的依赖关系从组件内部转移到组件之间或者外部容器中。
降低组件之间的耦合度:组件之间不再需要知道其依赖对象的具体实现方式,只需要依赖对象的接口或者抽象类即可,这样可以降低组件之间的耦合度,使得组件更加独立和灵活。
4.浅谈AOP
AOP:称为面向切面编程,底层基于动态代理的方式实现
核心思想为:在不改变源码的基础上对代码进行功能性的增强。
作用:降低业务之间的耦合度。
AOP的两种动态代理方式:
JDK动态代理:要求目标类必须至少实现一个接口
CGLab动态代理:要求目标类不能为最终类
5.Spring中单例bean的线程安全问题
在Spring中创建的Bean默认是单例的,在多线程环境下,如果这个单例Bean被共享,就会导致出现线程安全问题。
解决方案:
1.避免在单例bean中使用可变对象
2.使用ThreadLocal
3.使用synchronized关键字
4.使用Lock接口
6.Spring中bean的生命周期
Bean的生命周期分为四大阶段:
实例化:
解析类得到BeanDefinition对象
如果该Bean有多个构造方法,则要推断出构造方法
属性填充:
对类中使用@Autowired注解的属性进行属性填充
判断对象是否实现了Aware接口,实现了执行Aware实现类的逻辑
初始化:
判断对象是否实现了BeanPostProcessor前置处理方法
调用初始化方法InitializingBean接口方法
判断是否实现了BeanPostProcessor后置处理方法
Bean创建完毕,进行使用
销毁:
使用完毕,判断是否实现了DisposableBean接口的方法,如果实现,执行销毁前方法,销毁Bean对象。
7.浅谈Spring事务
Spring事务:可以帮助我们管理和控制数据库中操作的事务。
声明式事务:通过在配置文件中配置事务管理器和事务通知器来实现声明式事务管理。
编程式事务:通过编写Java代码来实现编程式事务管理。可以使用TransactionTemplate类或者PlatformTransactionManager接口来实现编程式事务管理。
(常用)注解式事务:通过在业务方法上添加@Transactional注解来实现注解式事务管理。可以使用注解来定义事务传播属性、异常回滚属性等。