1.Spring简介
- 什么是Spring:
- spring产生于2003年,轻量级javase/ee一站式开源框架。
- spring在三层架构的地位:
- 表示层:SpringMVC/struts2
- 业务逻辑层:Spring framework
- 数据持久层:Mybatis/Hibernate/JdbcTemplate
- spring的优点:
- 方便解耦,简化开发(高内聚,低耦合)
- spring是工厂,负责创建对象以及对象关系的维护。
- 支持aop编程(面向切面编程)
- spring支持对javaee api的简化
- spring支持对junit的整合
- spring的体系结构
- spring的核心
- ioc:控制反转
- aop:面向切
2.对象创建的方式
3.bean的生命
4.注册实现bean的配置
- @Component:创建对象 <===> <bean class=""></bean>
- @Component("id"):创建对象 <==> <bean id="" class=""></bean>
- @Controller: 表示层
- @Service:业务逻辑层
- @Repository:数据持久层
- @Autowired: 按照类型自动注入(找不到:不注入;找到一个:注入成功;找到多个:异常)
- 按照名称注入:
- 1.@Autowired
- @Qualifier("name")
- 2.@Resource
- 前提: spring-aop.jar
5.spring整合junit
- junit:用于单元测试。
- junit使用:导入junit(junit 4)
- spring整合junit:spring-test.jar
- 代理
- 对象访问前后实现预处理,过滤等处理。
- 代理模式
- 静态代理: 编译期间为每个委托类创建代理类。
- 动态代理: 运行期间为每个委托类的对象创建代理对象。
- 接口+实现类 (jdk的动态代理)
- 实现类(cglib的动态代理)
6.Aop
- 面向切面编程。采用横向抽取方式,在运行阶段将增强代码织入目标对象的思想。底层采用动态代理。
- aop应用场景
- 事务管理,日志系统,性能监测,缓存等...
- aop框架
- spring aop(spring-aop.jar)
- aspectj(aspects.jar)
- jboss
- aop的专业术语
- target: 目标对象
- advice: 通知,增强代码(遵循特定规范的增强代码)
- joinpoint: 连接点,目标对象方法
- pointcut: 切入点,真正添加增强的目标对象的方法
- weaver: 织入,增强代码添加到切入点的过程。
- aspect:切面,增强代码和切入点连接形成逻辑面。
- aop编程
- 导入jar
- 4+1
- spring-aop.jar:spring aop框架
- aspects.jar:aspectj规范
- aopalliance-1.0.jar:aop联盟(规范通知)
- aspectjweaver.jar:实现织入
- 导入jar
- aop应用场景