AOP是什么意思?
AOP为Aspect
Oriented
Programming的缩写,是面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。
AOP的出现弥补了OOP的这点不足,AOP
是一个概念,一个规范,本身并没有设定具体语言的实现,AOP是基于动态代理模式。AOP是方法级别的,要测试的方法不能为static修饰,因为接口中不能存在静态方法,编译就会报错。
AOP可以分离业务代码和关注点代码(重复代码),在执行业务代码时,动态的注入关注点代码。切面就是关注点代码形成的类。Spring
AOP中的动态代理主要有两种方式,JDK动态代理和CGLIB动态代理。JDK动态代理通过反射来接收被代理的类,并且要求被代理的类必须实现一个接口。
扩展资料
AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ。而动态代理则以Spring
AOP为代表,静态代理是编译期实现,动态代理是运行期实现,可想而知前者拥有更好的性能。
静态代理是编译阶段生成AOP代理类,也就是说生成的字节码就织入了增强后的AOP对象;动态代理则不会修改字节码,而是在内存中临时生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原对象的方法。
参考资料来源;搜狗百科--AOP
法国法律将法国葡萄酒分为4级:“原产地名称管制”(法定产区)葡萄酒AOC、优良地区餐酒VDQS、地区餐酒VDP、日常餐酒VDT。其中,法定产区葡萄酒占全部葡萄酒产量的35%,优良地区餐酒占2%,地区餐酒占15%,日常餐酒占38%。
“原产地名称管制”葡萄酒是法国葡萄酒的最高级别,即Appelation D’origineControlee,简称Aoc。这种葡萄酒的葡萄品种、种植数量、酿造过程、酒精含量等都要得到专家认证,只能用原产地种植的葡萄酿制,绝对不可和别地葡萄汁勾兑。酒瓶标签标示为“Appelation+产区名+Controlee”。
优良地区餐酒又称VDQS,是普通地区餐酒向AOC级别过渡所必须经历的级别。如果在VDQS时期酒质表现良好,则会升级为AOC。酒瓶标签标示为“Appelation+产区名+Qualite Superieure”。
地区餐酒又名Vin De Pays。这种酒的标签上可标明产区,可以标明产区内的葡萄汁勾兑,但仅限于该产区内的葡萄。酒瓶标签标示为“Vin De Pays+产区名”。法国绝大部分的地区餐酒产自南部地中海沿岸。
日常餐酒又称Vin De Table,是最低档的葡萄酒,可由不同地区的葡萄汁勾兑而成。酒瓶标签标示为“Vin De Table”。
2009年08月的时候,为了配合欧洲葡萄酒的级别标注形式,法国葡萄酒的级别发生了一个改革。以下是新的等级制度,在2011年1月1日起装瓶生产的产品使用新的等级标记: AOC葡萄酒(法定产区葡萄酒)变成AOP葡萄酒(Appellation d’Origine Protégée);VDQS级别取消; VDP葡萄酒(地区餐酒葡萄酒)变成IGP葡萄酒(Indication Géographique Protégée); VDT 葡萄酒(日餐餐酒葡萄酒)变成 VDF 葡萄酒( VIN DE FRANCE ),属于无 IG 的葡萄酒,意思是酒标上没产区提示的葡萄酒(vin sans Indication Géographique)。