Spring总记
1.Spring是什么
轻量级的的IOC和AOP的框架 , 主要是解决企业级项目的复杂性
2.Spring好处优势
松耦合 \ 代码复用性高 \ 开发效率高
3.Spring的使用场景
只要是企业级项目开发 , 一般都要使用Spring
4.Spring的体系架构
核心 \ 测试 \ aop \ 持久层 \ 事务 \ web 对每个层都有支持
5.Spring的下载解压
官网下载解压
6.IOC
控制反转: 创建对象交给Spring去操作 , 我们只需要从Spring IOC容器中获取就行
Spring创建对象额方式 : 1.bean标签 ; 2.包扫描+@Component注解(需要aop包)
默认情况下: 只要配置Bean标签 , 使用包扫描+注解 配置文件一加载 , 就创建对象放入容器中;
懒加载和多例的情况除外的
7.DI
依赖注入: 就是给Spring在管理的对象属性赋值
方式: set方法(最常用) ; 构造方法 ; p命名空间
赋值方式:
1.基本类型字符串 <property name = "属性名" value = "属性值">
2.自定义类型<property name = "属性名" ref = "另一个标Bean签的id值">
3.List集合<list> ; Set集合<set> ; 数组<array> ; map集合<map><entry> ;
4.properties配置文件 <props><prop>
注解的方式赋值: 加载外部配置文件 , 然后给使用注解的对象赋值
加载配置文件的方式:
<context : property-placeHolder location>
<bean>
@PropertyResources
取值: @Values(${})
8.Bean的创建方式
默认方式: 默认构造函数
静态工厂: 一个类 , 一个静态方法 , 配置文件中配置class值这个类 factory-method=方法
实例工厂: 一个类 , 一个实例方法 , 配置文件中配置2个Bean标签 , 一个是这个类的Bean指定class这个类另一个Bean标签 , 不指定class , 使用factory-method , 指定这个类的Bean标签的id
9.Bean的懒加载
默认情况下 , 容器一启动就创建好对象了
懒加载需要Bean标签中 , 配置lazy-init=true , 此时第一次访问才会创建对象
10.Bean的作用域
单例(默认)
多例(每次调用都会创建一个对象 scope)
11.加载外部配置文件
加载配置文件的方式:
<context : property-placeHolder location>
<bean>
@PropertyResources
取值: @Values(${})
12.SpringAOP是什么
**aop:**面向切面编程 , 在程序运行期间 , 在不修改源代码的情况下 , 使用动态代理技术 , 给程序同一添加新功能的这样的一种技术
13.aop手动使用动态代理编写
动态代理:
JDK(面向接口+实现) 动态代理生成的这个类 , 是这个实现类的代理类
cglib ; javaassit
14.aop的术语
连接点( joinPoint ) 类中的方法
切入点( pointCut ) 真正被拦截的点
通知( advice ) 增强的内容
切面( aspect ) 多和切入点和多个通知
目标对象( target ) 对那个对象中的方法增强那个对象就是目标的对象
织入 (weaving) 增强作用到切入点的过程
15.aspectJ的使用(Sping-aop,aspectjweave)
1.方法拦截器:
定义一个类的实现 MethodInteceptor ;
编写配置文件<aop: config>
<aop: advice ="id" 切入点表达式/>
满足不同情况做不同的事情的话 , 需要依赖通知: 前置 ; 后置 ; 环绕 ; 异常 ; 最终
2.xml的配置
3.注解配置
16.Spring对持久层的支持
jdbcTamplate以及jdbcDaoSupport : 需要包 , Spring-jdbc , spring-tx
需要配置数据源: DriverManagerDataSource(没有缓冲池) 换成第三方数据源 , 如:druid
17.事务相关
什么是事务: 一组操作当做一个不可再拆分的整体 , 这个整体要么成功 , 要么失败
事务的特性: ACID
数据库的隔离级别: 5种(4种指不包含没有事务)
解决事务的方式:
模板的方式 ;
xml配置 ;
注解:<tx: annotation-driven/> , @Transaction(要配置事务管理器)
通知类型: 前置 ; 后置 ; 环绕 ; 异常 ; 最终
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/192929.html