Spring
Ioc控制反转
- IOC 将创建和查找依赖对象的控制权交给了容器,实现对象之间的松散耦合
- 方便测试,功能复用,使得程序结构更灵活
解释依赖注入
- IOC和DI是同一个内容但是从不同角度阐述
- DI是指容器动态的将某个依赖关系注入到组件之中
- 提高了组件复用率,只需简单配置就可指定目标需要的资源完成自身业务逻辑
Aop面向切面编程
- AOP技术可以将一些系统性相关的编程工作抽取出来实现通过切面进入系统从而避免业务逻辑的代码混入很多系统相关的逻辑
- 例如权限管理,事务管理,日志管理等
- AOP在Java里是利用反射机制实现
- 静态AOP,AspectJ实现的AOP将切面代码直接编译到Java类文件
- 动态AOP,将切面代码动态织入实现AOP,SpringAOP为动态AOP,基于代理模式生成代理对象,JDK提供的动态代理和CGLIB两种代理技术
Spring动态代理,默认哪种
-
被代理对象需要实现JDK提供的动态代理接口
-
通过CGLIB实现动态代理,只需要对目标对象继承即可
-
Spring优先支持实现接口的方式,没有接口则使用CGLIB的方式
Autowired和Resource区别
两者都用来装配bean
- @Autowired Spring提供,只按照类型byType注入
- @Resource J2E提供,默认按照名称byName自动注入 ,找不到名称才按照类型装配
静态代理/动态代理
介绍一下Maven
Spring事务的七大传播机制
SpringBoot
Springboot有什么优点,特性
自动配置的特点
Spring boot 简化配置的原理
Mybatis
- mybatis #和$区别
SpringMVC
springmvc的原理
项目的web.xml配置中dispatcherServlet和ContextListener
-
DiapatcherServlet,前端控制器,前端控制器设计模式的典型实现,提供SpringMVC的集中访问的点 - 通过HandlerMapping将请求映射到处理器上
- 通过ViewResolver解析逻辑视图名到具体视图实现
- 如果执行过程中遇到异常将交给HandlerExceptionResolver来解析
-
ServletContextListener 接口能够监听ServletContext对象的生命周期(即整个Web应用生命周期)