Spring框架

Spring框架
轻量级框架,javaEE的春天当前主流框架
目标
使现有技术更加易用,推进编码最佳实践
内容
IOC容器
AOP实现
数据访问支持
>简化JDBC/ORM框架
>声明式事务
Web集成

Spring设计理念
Spring是面向Bean的编程
Spring两大核心技术
控制反转(IoC:Inversion of Control)/依赖注入(DI:Dependency Injection)
面向切面边恒(AOP:Aspect Oriented Programming)
Beans->Core->Context->Beans
Spring的优点
低侵入式设计
独立于各种应用服务器
用来注入特性将组建关系透明化,降低了耦合度
面向切面编程特性允许将通用任务进行集中式处理
与第三方框架的良好整合
控制反转/依赖注入
将组件对象的控制权从代码本身转移到外部容器
组件化的思想:坟利关注点,使用接口,不在关注实现
依赖的注入:将组件的构建和使用分开
目的:解耦合。实现每个组件时只关注组建内部的事情
要点:明确定义组件间的接口

建立Spring项目步骤
1.添加Spring到项目中
2.编写配置文件(哪些类要生成对象,属性赋值)
3.获取Bean实例,调用功能方法
1目标类:方法
2增强类:增强方法
3配置文件:pointcut–>execution()
aspect:
Aspectweaver.jar
Aspectjrt.jar
Aopallance.jar
JoinPorint:调用目标方法,参数,类
proceedingJoinPoint,proceed()
最终运行:目标方法和增强方法合在一起运行

代理模式;代理类和被代理类实现共同的接口(或继承),代理类中存有指向被代理类的索引,实际执行时通过调用代理类的方法、实际执行的是被代理类的方法

而AOP,是通过动态代理实现的
Jdk动态代理(只能对实现了接口的类生成代理,而不能针对类)
Gglib代理(针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法(继承))

将要生成的对象在配置文件中配置
Spring框架启动时,加载IOC容器,IOC生成所有的对象,默认单例模式
单例的好处:
节约资源

AOP相关术语
增强处理(Advice)
前置增强
后置增强
环绕增强,异常抛出增强,最终增强等类型
切入点(Pointcut)
连接点(Join Point)
切面()
目标对象
AOP代理
织入

增强处理:
既可以在目标方法之前增强动作,也可以在执行目标方法之后织入增强动作
它可以决定目标方法在什么时候执行,如何执行,甚至可以完全阻止目标目标方法的执行
它可以改变执行目标方法的参数值,也可以改变执行目标方法之后的返回值
当需要改变目标方法的返回值时,只能使用Around方法
虽然Around功能强大,单通常需要在线程安全的环境下使用,因此,如果使用普通的Before、AfterReturing增强方法
增强方法就可以解决的事情
环绕增强:

POJO增强:

控制反转,就是将对象的创建转移给框架,不需要去new,只需要通过配置或者注解来让他知道从哪里入手。
不用在编写创建对象的代码和维持其复杂的依赖的关系
定义一个接口,可以方便更改其实现类,或者注入需要的属性

工厂模式:根据我们提供的我们所需要的对象实例的描述,为我们返回所需要的产品
1.产品的规范
2.产品
3.工厂
4.客户端/调用

根据构造方法赋值<constructor-arg name="" value=""/>
构造注入
p:命名空间的特点

设值注入:

构造注入:

注入不同数据类型:
设值注入
以下实例:

List 数组 都是用list标签

异常抛出增强
异常抛出增强的特点
在目标方法抛出异常时织入增强处理
可拔插的异常处理方案
最终增强的特点
无论方法是否抛出异常,都会在目标方法最后织入增强处理,即:该增强都会得到执 行
类似于异常处理机制中finally块的作用,一般用于释放资源
可以为各功能模块提供统一的,可拔插的处理方案
aop:after元素:定义最终增强

环绕增强的特点
目标方法前后都可织入增强处理
功能最强大的增强处理
可获取或修改目标方法的参数,返回值,可对它进行异常处理,甚至可以决定目标方法是否执行
aop:around元素:定义环绕增强
常用增强处理类型

Spring AOP配置元素

使用注解实现
注解方式将Bean的定义信息和Bean实现类结合在一起,Spring提到的注解有
@Component:实现Bean组件的定义
@Rrpository:用于标注DAO类
@Service:用于标注业务类
@Controller:用于标注控制器类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值