什么是spring?
spring是一个开源/轻量级的java开发框架 03年创建 创始人:绕的 周森 为解决企业级开发的复杂性而创建,主要作用是简化开发,
为了降低Java开发的复杂性,Spring采取了以下4种关键策略
1:基于pojo的轻量级和最小侵入式编程
2:通过依赖注入和面向接口实现松耦合
3:基于切面和惯例声明式编程
4:通过切面和模板减少样板式代码
应用场景:JavaEE企业应用开发,包括SSH、SSM
特点:
轻量级,非侵入式,容器
工作原理:
ioc控制反转:将一个类放到spring容器里,将对象的创建,初始化以及销毁等工作交给spring容器管理,由spring控制对象的生命周期
ioc的优点:Ioc和依赖注入将代码量降到了最低,用最小的代价和最小的侵入性实现松耦,ioc容器支持加载服务的饿汉式初始化和懒汉式‘
容易测试
ioc 支持哪些功能?依赖注入 依赖检查 自动装配 支持集合 指定初始化方法和销毁方法 支持回调某些方法
aop面向切面:核心思想是将业务重点的商业逻辑和与其对应提供的通用服务进行分离,aop有两个部分,横切关注点和核心关注点,业务处理的主要流程就是核心关注点,与之关系不大的部分是横切关注点,横切关注点的一个特点就是经常伴随核心关注点的前后使用,比如权限认证,日志和事务
aop利用一种横切的技术,剖开封装对象的内部,将影响多个类的公共行为封装到一个可重用的模块,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性,实现aop的技术,主要分为两大类,动态代理技术和静态织入de方式,Springboot是用来两种动态代理机制,jdk动态代理和cglib动态代理
spring中使用到了那些设计模式:单例 工厂 代理 模板 观察者
spring注入bean有几种方式?set方法注入 构造器注入 静态工厂注入 实例工厂
springbean 的作用域 Singleton bean在spring ioc容器中只有一个实例 默认
prototype requset session global-session
spring支持两种事务管理:编程式事务管理 声明式事务管理