好吧写了好久的没点保存全都丢了。现在重写。倒是想起来三月份时候帮别人修改wps了啊哈哈
Mysql事务
事务:事务值逻辑上的一组操作。组成这个操作的各个单元,要么全成功,要么全不成功。
手动控制事务
开启事务:start transaction begin
提交事务:commit
回滚事务:rollback
事务的特性(面试题)
原子性:事务是不可分割的,要么全发生,要么全不发生。
一致性:事务必须使得数据库从一个一致状态转到另一个一致状态(有点像能量守恒)
隔离性:一个事务是一个
持久性:发生即存在,即使数据库崩了
事务的隔离级别
赃读:指一个事务读了另一个事务(还没提交完就显示了)
不可重复读:读的时候这边改了(update)
幻读:读的时候增加了(insert)
数据库通过设置事务的隔离级别防止以上情况的发生:
* 1、READ UNCOMMITTED: 赃读、不可重复读、虚读都有可能发生。
* 2、READ COMMITTED: 避免赃读。不可重复读、虚读都有可能发生。(oracle默认的)
* 4、REPEATABLE READ:避免赃读、不可重复读。虚读有可能发生。(mysql默认)
* 8、SERIALIZABLE: 避免赃读、不可重复读、虚读。
级别越高,性能越低,数据越安全
好了开启下一节:代理模式,23种常用的面向对象软件的设计模式之一
Proxy patten
优点:(1)职责清晰
(2)保护作用
(3)高扩展性
Proxy.newProxyInstance():产生代理类的实例。仅能代理实现至少一个接口的类
ClassLoader:类加载器。固定写法,和被代理类使用相同的类加载器即可。
Class[] interface:代理类要实现的接口。固定写法,和被代理类使用相同的接口即可。
InvocationHandler:策略(方案)设计模式的应用。如何代理?
InvocationHandler中的invoke方法:调用代理类的任何方法,此方法都会执行
Object proxy:代理对象本身的引用。一般用不着。
Method method:当前调用的方法。
Object[] args:当前方法用到的参数
Ok,下一个是代理模式的实例
Class Wangwu
{
Public static void main (String [] args)
{
//创建被代理的对象
Final meinv lmm = new LMM();
//创建代理对象,动态代理,直接生成代理对象
Meinv mp = (meinv) Proxy.newProxyInstance(lmm.getClass.getLoader() , lmm.getClass().getInterfaces() , new InvocationHandler(){
//proxy参数接受的是代理对象,method接收的是被调用的方法,args是参数
@Override
Public Object invoke(Object proxy,Method method,Object []args) throws Throwable{
System.out.println(“媒婆拿走了500”);
Object obj = method.invoke(lmm,new Object[]{(Double) args[0]/2});
System.out.println(“媒婆偷着乐”);
Return obj;
}
}
);
Mp.shopping(1000);
Mp.eat(1000);
}
}
这个框是弱智吧愁死我了
开启下一个环节:注解
1
他不是注释,他是给程序看的,用来描述程序是如何运行及在什么阶段运行的
注解在实际开发中,最大的功能是用来替换配置文件。
注解是 jdk1.5的新特性
可以通过反射来让注解具有功能
2
(1)jdk中的三个基本注解
@Override 检查子类确实覆盖了父类的方法
@Deprecated 说明已经过时了
@SupperssWarnings({“unused”,”deprecation”}):控制程序中的警告。{} 数组。 All抑制所有警告
(2)自定义注解的语法
//注解实际是一个接口,只需要在interface前加入@符号,就是一个注解了
//本质上就是一个接口,继承了java.lang.annotation.Annotation接口
public @interface MyAnnotation1 {
//在注解中可以定义属性
//int age() default 23;//没有指定默认值,在使用该注解时必须指定属性的值
String name();
String value() default "hehe";//该属性比较特殊,在使用注解时可以不指定属性名称
Hobby hobby();//枚举类型
Class claz();
String[] like();
// public static final int num = 23;//没出错
// public abstract void ss();//出错
}
public class Demo2 {
//使用自定义的注解
//@MyAnnotation1(age=20,name="李四")
@MyAnnotation1(name="yy",value="kk",hobby=Hobby.play,claz=Object.class,like={"hehe","haha"})
public void ff()
{
}
}
(3)注解的反射:(重要)
A:反射注解类
哦就是像发射,把注解拿出来
<T extends Annotation> T getAnnotation(Class<T> annotationType):得到指定类型的注解引用。没有返回null。
Annotation[] getAnnotations():得到所有的注解,包含从父类继承下来的。
Annotation[] getDeclaredAnnotations():得到自己身上的注解。
boolean isAnnotationPresent(Class<? extends Annotation> annotationType):判断指定的注解有没有。
Class、Method、Field、Constructor等实现了AnnotatedElement接口.
如果:Class.isAnnotationPresent(MyTest.class):判断类上面有没有@MyTest注解;
Method.isAnnotationPresent(MyTest.class):判断方法上面有没有@MyTest注解。
(4)元注解
a、自定义的注解的存活范围(生命周期):默认是CLASS。
什么是元注解:
只能用在注解上的注解叫做元注解。(即:用于修饰注解的注解)
@Retention:作用。改变自定义的注解的存活范围。
RetentionPolicy:
SOURCE
CLASS
RUNTIME
@Target:作用,指定该注解能用在什么地方。
ElementType:
TYPE:
METHOD:
FIELD:
ANNOTATION_TYPE
@Documented:作用,使用了@MyTest的注解的类,如果@MyTest注解上面有@Documented注解,那么使用了@MyTest的注解的类的API文档中会出现@MyTest的身影。
@Inherited:作用,说明该注解可以被继承下去。
类加载器:这东西还挺好玩
作用就是把class文件加载到jvm中,class引用字节码
Jvm中的类加载器:
BootStrap:老大。类加载器的祖先。 打印它会得到null。
负责加载JRE/lib/rt.jar(JDK中绝大部分的类)
ExtClassLoader:
负责加载JRE/lib/ext/*.jar
AppClassLoader:
负责加载在classpath环境变量中的所有类。
父类委托机制
引用
先说大方面
就是加载jar包里的类,三个加载器分别负责加载不同的
想一想老师上课用的那个例子:
两个类,一个子类,一个父类,子类继承父类
A extends HttpServlet
把A 放第二个jar里找,
先从第一个找,再从第二个找,第二圈
找到了A ,加载A ,然后加载父类,
从第二个找,往上找,
父类只会往上找,不会往下找
先加载A ,后加载父类
分享到:
相关推荐
在事务管理中,动态代理通常用于实现AOP(面向切面编程),将事务逻辑与业务逻辑分离。 1. **Java动态代理基础**: - Java动态代理基于Java反射API实现,主要涉及到`java.lang.reflect.Proxy`和`java.lang.reflect...
代理机制决定了何时以及如何应用事务规则,而事务传播行为定义了在一个事务中的方法被另一个事务中的方法调用时,应该如何处理事务。例如,PROPAGATION_REQUIRED 表示如果当前存在事务,则加入到当前事务;如果没有...
6. CAD系统中事务代理模型的应用实例: 该部分详细研究了代理模型的功能实现,分析了该模型对CAD系统的具体影响,并且提供了模型的应用实例。这表明了代理模型在实际CAD系统中能够有效地提升事务处理的并发性和一致...
在深入探讨Spring事务代理配置之前,我们先简要回顾一下Spring框架的核心概念。Spring是一个开源的Java平台,它提供了一套全面的编程和配置模型,主要用于简化企业级应用的开发。其中,依赖注入(Dependency ...
本文将深入探讨如何在Spring框架中使用`TransactionProxyFactoryBean`来实现声明式事务代理配置。 #### 声明式事务管理概述 声明式事务管理通过在配置文件或注解中定义事务边界,而不是在业务代码中显式地管理事务...
在代理记账业务中,事务所与客户签订代理记账协议,明确双方的权利和义务。协议中规定了事务所的服务内容、服务标准、服务期限、服务费用等。签订协议后,事务所将根据客户的需求提供相应的服务。 二、日常会计服务...
AOP 的核心是 aspect,它封装了特定的关注点,比如日志记录、安全性检查或事务管理,并允许在运行时把这些关注点与业务逻辑相织入。 Spring 框架中的事务管理分为两种主要方式:编程式事务管理和声明式事务管理。 ...
在这个例子中,我们将聚焦于Spring的声明式事务管理,特别是通过`TransactionProxyFactoryBean`代理机制以及`@Transactional`注解与AOP(面向切面编程)的结合使用。 首先,`TransactionProxyFactoryBean`是Spring...
本文将深入探讨如何使用代理来实现Hibernate Dao层的自动事务管理,以提高代码的可维护性和事务处理的效率。 首先,理解Dao(Data Access Object)层的作用至关重要。Dao层是应用与数据库之间的一层抽象,它封装了...
### Spring事务与数据库操作 #### 一、Spring的声明式事务管理 在现代软件开发中,事务处理是非常关键的一部分,特别是在涉及多个数据操作时。Spring框架提供了强大的事务管理能力,可以方便地集成到应用程序中。...
《律师事务所代理合同》是法律服务领域中常见的一份合同,用于明确委托人(通常是需要法律援助的个人或企业)与律师事务所之间的权利和义务。这份合同规定了律师提供的服务范围、委托权限、承办律师的选择、律师服务...
《劳动和社会保障事务代理协议书(人事代理)》是企业与人力资源公司之间就劳动保障事务进行委托代理的一种法律文件,其主要涉及了以下几个关键知识点: 1. **劳动法依据**:该协议的签订遵循《劳动法》及相关法律...
税务事务所代理合同是企业在寻求专业税务咨询服务时与税务事务所之间签订的法律文件,用于规定双方的权利、义务以及服务内容。以下是对该文档主要内容的详细解读: 1. **委托事项**:合同明确了委托的内容,包括...
3. **委托代理关系**:合同明确了甲方(委托人)与乙方(律师事务所)之间的委托代理关系,甲方委托乙方指派律师处理特定阶段的诉讼事务。 4. **授权权限**:甲方通过《授权委托书》确定对乙方律师的授权范围,这是...
该文档是山东某律师事务所为一家公司提出的关于代理滨州某政府项目的方案。在这个方案中,事务所详细阐述了他们的服务内容、费用结构以及法律责任的分析。 首先,事务所在收到公司的代理邀请后,进行了详细的调查和...
在会计和税务领域,代理记账公司在处理企业的财务事务时,常常会遇到一系列的问题,特别是在面试潜在员工时,这些问题可能是考察的重点。以下是基于题目提供的内容,解析的一些关键知识点: 1. **非正常损失与进项...
律师事务所代理合同.doc
律师事务所代理方案.pdf
《个人住房贷款法律事务委托代理协议范本》是个人在申请住房贷款时,与律师事务所签订的一种合同,旨在规范双方在住房贷款法律事务中的权利和义务。以下是对该协议涉及的关键知识点的详细解释: 1. **委托关系**:...