Spring的核心概念
Java企业级框架
- 大规模:用户数量多、数据规模大、功能众多
- 性能和安全要求高
- 业务复杂
- 灵活应变
Spring的绿草从
Spring
轻量级框架,Java EE的春天,当前主流框架
目标
使现有技术更加易用,推进编码最佳实践
内容
- IoC容器
- AOP实现
- 数据访问支持
- 简化JDBC/ORM框架
- 声明式事务
- Web集成
Spring体系结构
Spring设计理念
Spring是面向Bean的编程
Spring两大核心技术
- 控制反转(Ioc:Inversion of Control)/ 依赖注入(DI:Dependency Injection)
- 面向切面编程(AOP:Aspect Oriented Programming)
Spring的优点
- 低侵入式设计
- 独立于各种应用服务器
- 依赖注入特性将组件关系透明化,降低了耦合度
- 面向切面编程特性允许将通过热舞进行集中式处理
- 与第三方框架良好整合
控制反转/依赖注入
将组件对象的控制权从代码本身转移到外部容器
- 组件化的思想:分离关注点,使用接口,不再关注实现
- 目的:解耦合。实现每个组件时只关注组件内部的事情
- 要点:明确定义组件间的接口
- 依赖的注入:将组件的构建和使用分开
<bean id="" class="实体类">
<!-- 注入基本类型 -->
<property name="属性" value="值"></property>
<!-- 注入复杂类型 -->
<property name="属性" ref="值"></property>
</bean>
面向切面编程
- AOP的目标:让我们可以“专心做事”
- AOP原理
- 将复杂的需求分解出不同方面,将散布在系统中的公共功能集中解决
- 采用代理机制组装起来运行,在不改变原程序的基础上对代码进行增强处理,增加新的功能
所谓的面向切面编程,是一种通过预编译和运行期动态代理的方式实现在不修改源代码的情况下给程序动态功能的技术
- AOP相关术语
- 增强处理(Advic)
- 前置增强
- 后置增强
- 环绕增强、异常抛出增强、最终增强等类型
- 切入点(Pointcut)
- 连接点(Join Point)
- 切面(Aspect)
- 目标对象(Target object)
- AOP代理(AOP proxy)
- 织入(Weaving)
- 使用Spring AOP实现日志输出
- 在项目中添加Spring AOP的jar文件
- 编写前置增强和后置增强实现日志功能
- 编写Spring配置文件,对业务方法进行增强处理
- 编写代码获取带有增强处理的业务对象
- 怎么使用AOP