Spring是一个轻量级框架,大大简化了java企业级开发,提供了强大稳定的功能,又没有带来额外的负担,让人们再使用它做每件事的时候都有得体和优雅的感觉。
Spring的两个目的:1)让现有技术更易于使用; 2)是促进良好的编程习惯。
一. Spring IoC
1.理解”控制反转“
控制反转也成为依赖注入,是面向对象编程中的一种设计理念,用来降低程序代码之间的耦合度。
依赖,是再代码中一般指通过局部变量,方法参数,返回值等建立的对于其他对象的调用关系。
扩展:1.除了ClassPathXmlApplicationContext,ApplicationContext接口还有其它实现类。例如:FileSystemXmlApplicationContext也可以用于加载Spring配置文件。
2.除了ApplicationContext及其实现类,还可以通过BeanFactory接口及其实现类对Bean组件实施管理。
二. 理解”面向切面编程“(AOP)
1.面向切面编程(AOP)允许你把遍布应用各处的功能分离出来形成可重用的组件, 常见的AOP抽离出来的组件有:日志模块;事务模块;安全模块等.
2.简单的说就是在不改变源程序的基础上为代码增加新的功能,对代码进行增强处理。它的设计思想来源于代理设计模式。
基本概念:
切面(Aspect):一个模块化的横切逻辑(或称横切关注点),可能会横切多个对象。
连接点(Join Point):程序执行中的某个具体的执行点。
增强处理(Advice):切面在某个特定连接点上执行的代码逻辑。
切入点(Pontcut):对连接点的特征进行描述,可以使用正则表达式。增强处理和一个切入点表达式相关联,并在与这个切入点匹配的某个连接点上运行。
目标对象(Target object):被一个或多个切面增强的对象。
AOP代理(AOP proxy):由AOP框架所创建的对象,实现执行增强处理方法等功能。
织入(Weaving):将增强处理连接到应用程序中的类型或对象上的过程。
示例:
AOP的配置如下:
面向切面编程主要关心两个问题:在什么位置,执行什么功能。
来源:https://www.cnblogs.com/shebo/p/9221633.html