关于spring的内容还包括——工厂方法 单例 适配器等 、
不至该文所叙述的内容
AOP(Aspect Oriented Program) 一种编程思想 spring_aop是实现这一编程思想的方式或者工具
在这一编程思想中把功能分为核心业务功能,和周边功能。
所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务
这一功能围绕的是以用户为主
所谓的周边功能,比如性能统计,日志,事务管理等等,也即开发人员所要做的维护工作
周边功能也就是切面,核心和周边是独立的,两者的编织(waving)才是面向切面编程。
这种编程思想,一般切面和核心功能是低耦合的、可选择的。
耦合就是两者的关系紧密程度。
一些关键字解释:
1、解耦,字面意思就是解除耦合关系。
2、在软件工程中,降低耦合度即可以理解为解耦,模块间有依赖关系必然存在耦合,理论上的绝对零耦合是做不到的,但可以通过一些现有的方法将耦合度降至最低。
3、数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递.数据耦合联系简单,耦合度低,模块独立性好,模块间的影响最小,是最理想的一种耦合形式
除了功能代码在自定义的类中,重点也就是.xml文件里的 配置。
一、那么bean 是什么 为什么要用id name 以及在使用<aop 会提示要有namespace的声明。
bean可以理解为spring IOC的实例化对象,是个装注入对象的容器
而id 和name 是bean的属性,两者作用上一样,所以在命名该注入对象的名字的时候常会用id或name
1、id取值要求严格些,必须满足XML的命名规范。id是唯一的,配置文件中不允许出现两个id相同的。
2、name取值比较随意,甚至可以用数字开头。在配置文件中允许出现两个name相同的,在用getBean()返回实例时,后面一个Bean被返回。
Object object = joinPoint.proceed();
这一段代码就是将来与某个核心功能结合之后,用于执行核心功能的代码
利用bean在.xml文件里声明周边功能代码的对象和核心功能代码的
之后配合<aop:pointcut 以及<aop:aspect里的<aop:around 等等 总体放入 <aop:config即可
<aop:around pointcut-ref="" method=""/>
其中<aop:pointcut 里会有expression=""
该字符串里放的也就是描述满足条件的方法进行调用
即:execution(* package_name_next.*(..))
这表示对满足如下条件的方法调用,进行切面操作:
" * " 表示 返回任意类型
package_name_next.* 包名以 package_name_next 开头的类的任意方法
(…) 参数是任意数量和类型