包含ioc和aop两大核心概念

aop----事务管理

spring框架运用的设计模式(查一下)

---------------------------------------
Ioc(控制反转)和Di-----dependency injection(依赖注入)

Ioc 被调用对象不是由调用对象生成(new),而是用spring容器(通过反射机制)生成

---------------------------------------
先理解简单工厂(对象在工厂里new)---理解spring(对象在spring里new)
----------------------------------------
代理模式:
抽象角色,代理角色(对真实对象的一个封装,也重写了抽象类的方法,但没有具体实现),真实角色(最重要引

用的对象)

public Proxy extends Subject{
 realSubject real;
 @Override
 void request(){
  before();
  real=new RealSubject();//对真实对象的一个封装
  real.request();
  after();
 }
}

public class Test1{
 public static void main(String args[]){
  ProxySubject proxy=new ProxySubject();
  proxy.request();
 }
}
-----------------------------------------------------
当真实对象事先不存在时,使用动态代理
public  class DynamicSubject implements InvocationHandler{
 private Object obj;
 public DynamicSubject(Object obj){
 }
 public Object invoke(Proxy。。。。){
 method.invoke(sub,args);
 }
}

public class Test2{
 public static void main(String args[]){
  Real real=new Real();//真实角色
  InvocationHandler handler=new DynamicSubject(real);//动态代理处理器
  Class realClass=real.getClass();
  
  Real real1=(Real)Proxy.newProxyInstance(realClass.getClassLoader

(),realClass.getInterfaces,handler);//调用代理模式的处理器,出现一个实例,1类加载器 2真是角色的接

口3...
  real1.request();
  
 }
}
--------------------------------------------------------------------
横切关注点,方面,连接点(程序执行过程中的一个点,如方法调用,字段访问。。),增强,切入点

--------------------------------------------------------------------
public class TransactionInterceptor implements MethodIntercptor{
 public Object invoke(){
  String methodName=arg0.getMethod().getName();
  if(methodName.startWith("save")||methodName.startWith("update")  ||methodName.startWith("delete")){
  System.out.println("DFJGKL//////");
  }
  arg0.proceed();
 }
}

最新文章

  1. IOS第12天(4,作业弹出键盘上加上(xib)view的处理,时间选择,代理模式使用,键盘的监听 )
  2. [crunch bang]在Crunch Bang安装和设置fcitx(小企鹅输入法)
  3. 中国首个 SaaS 模式的云告警平台安卓版 APP 上线
  4. 判断浏览器是否支持某个css属性
  5. Mysql的列索引和多列索引(联合索引)
  6. java 二叉搜索树
  7. [转]从.NET转JAVA开发
  8. 缩放系列(三):一个可以手势缩放、拖拽、旋转的layout
  9. java1.8--Null Object模式
  10. 安装VC++2015运行库时出现0x80240037错误
  11. Java并发机制及锁的实现原理
  12. python下wxpython程序国际化的实践(中文英文切换)
  13. vue.js(一)
  14. C语言日志处理
  15. LZSS.C
  16. File 文件操作类 大全
  17. 大组合取模之:1<=n<=m<=1e6,1<=p<=1e9
  18. nginx访问控制allow、deny(ngx_http_access_module)
  19. C# CreateDataTable
  20. vuex 源码解析(三) getter属性详解

热门文章

  1. Python—变量
  2. linux学习笔记--文件
  3. linux命令(3):pwd命令
  4. 在浏览器地址栏按回车、F5、Ctrl+F5刷新网页的区别
  5. Noip2016提高组 玩具谜题toy
  6. qt中添加Q_OBJECT报错的问题
  7. Python 9X9乘法口诀表
  8. 浏览器缓存详解:expires,cache-control,last-modified,etag详细说明
  9. ff
  10. 学习Java,还需要学好哪些知识