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