初识Spring
来源:互联网 发布:windows连不上aws 编辑:程序博客网 时间:2024/05/21 23:32
1、Spring的引入
问题1:代码耦合度高问题
在web项目中,Service层依赖DAO,Action中依赖Service,代码耦合度高!
解决方案:简单工厂模式,在配置文件中指定要创建哪一类的对象.‘’问题2:控制事务繁琐
必须在需要控制事务的地方,手动用代码完成几乎相同的事务控制逻辑,效率低下,且责任不分离!
解决方案:面向切面编程(AOP)
2、Spring简介
2.1 概述
Spring是一个轻量级的DI/IoC和AOP容器的开源框架,来源于Rod Johnson 在其著作《Expert one on one J2EE design and development》中阐述的部分理念和原型衍生而来。
Spring提倡以”最少侵入”的方式来管理应用中的代码,这意味着我们可以随时安装或卸载Spring。
2.2 Spring的优势:
- 低侵入/低耦合(降低组件之间的耦合度,实现软件各层之间的解耦。)
- 声明式事务管理(XML/注解)
- 方便集成其他框架
- 降低JavaEE开发难度
- Spring框架中包括JavaEE 三层的每一层的解决方案 (一站式)
3、Spring主要功能和思想
3.1 IoC(Inverse of Control,控制反转)
所谓IoC,是指将原本在程序中手动创建对象的控制权,交给Spring框架帮我们管理。调用者只管从容器中调用需要使用的对象,而不关心对象的创建过程。
3.2 DI(Dependency Injection)
依赖注入,指Spring创建对象的过程中,将对象依赖的属性通过配置的方式自动的设置给当前创建的对象。
3.2 Spring中的AOP
AOP(Aspect Orientation Programming),面向切面编程。
- 目的: 将一些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理,日志管理,权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。
- 简而言之: 将多个方法前后共同的代码抽离出来,使用动态代理机制来控制,先执行抽离出来的方法,后执行真实的方法。
Spring中AOP使用动态代理实现
- 如果一个类实现了接口,那么Spring使用JDK的动态代理模式实现AOP;
- 如果一个类没有实现接口与,那么Spring使用CGLIB的动态代理模式实现AOP。
AOP中的概念
- 切入点(Pointcut):在哪些类,哪些方法上切入(where);
- 增强(Advice):在方法执行的什么时机(when:方法前/方法后/方法前后)做什么(what:增强的功能);
- 切面(Aspect):切面=切入点+通知,通俗点就是:什么时机,什么地点,做什么!
- 织入(Weaving):把切面加入到对象,并创建出代理对象的过程。(该过程由Spring来完成)。
阅读全文
0 0
- 初识spring
- 初识Spring
- 初识Spring
- Spring初识
- Spring 初识
- 初识Spring
- 初识spring
- 初识Spring
- 初识Spring
- Spring初识
- 初识Spring
- 初识Spring
- 初识Spring
- Spring初识
- 初识Spring
- 初识Spring
- 初识Spring
- 初识Spring
- 【笔记】表单重置:解决$("#myform").reset();函数未定义问题
- MATLAB学习笔记八(关于图像处理)
- lua 自定义控件及动画控制(1)
- Python 生成随机字符串
- MySQL的视图
- 初识Spring
- AlexNet-ImageNet Classification with Deep Convolutional Neural Networks
- 设计模式系列之「代理模式」
- Android中Gif播放
- Python之旧式类、新式类(关键词:Python/旧式类/经典类/新式类)
- Java反射——Class Loader
- linux hadoop 安装
- 几行代码搞定python破解mysql数据库【二】
- Android实现的写字板(绘画板)