博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring笔记--0907
阅读量:4351 次
发布时间:2019-06-07

本文共 1757 字,大约阅读时间需要 5 分钟。

包含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();
 }
}

 

转载于:https://www.cnblogs.com/ximencuixue/p/3307493.html

你可能感兴趣的文章
网络传输协议总结(转载)
查看>>
C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 角色权限的配置页面改进优化...
查看>>
如何编写Spring-Boot自动配置
查看>>
(三)Asp.net web api中的坑-【http post请求中的参数】
查看>>
洛谷跑路
查看>>
使用DbProviderFactories.GetFactory方法需要配置数据库提供者
查看>>
Ubuntu || LinuxMint 配置apache虚拟主机
查看>>
HTML—链接
查看>>
将进程设置为守护进程
查看>>
用连接池提高Servlet访问数据库的效率
查看>>
luogu P1494 [国家集训队]小Z的袜子 ( 普 通 )
查看>>
树的数据结构
查看>>
MyEclipse导入Color Theme
查看>>
Vue开发微信H5 微信分享签名失败问题解决方案
查看>>
Linux - 配置SSH免密通信 - “ssh-keygen”的基本用法
查看>>
Python(2.7.6) glob - 匹配指定模式的文件
查看>>
HTTP - 持久连接
查看>>
添加路由时啥时候是dev啥时候是gw
查看>>
redis 中文字符显示
查看>>
登录日志分析常用查询
查看>>