AOP不存在或不是可读linux 目录 可读可写怎么解决

> 博客详情
使用jersey+spring构建RESTful服务,并将应用部署在不能连接外网的服务器上。部署时,报错信息如下,
WARNING: Ignored XML validation warning
org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'http://www.springframework.org/schema/aop/spring-aop-3.0.xsd', because 1) could n 2) the docume 3) the root element of the document is not &xsd:schema&.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.warning(ErrorHandlerWrapper.java:96)
SEVERE: Context initialization failed
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 16 in XML document from class path resource [cn/edu/seu/herald/ws/applicationContext.xml] nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'aop:aspectj-autoproxy'.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
也就是,找不到如下的元素的声明
&aop:aspectj-autoproxy /&
通过去除spring配置文件中schemaLocation的版本号(如2.0,3.0),让spring自己匹配版本。通常情况下,都是因为所依赖的spring版本号低于配置文件中指定的版本号。修改后如下
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd"&
如果希望保留spring配置文件中的schema版本号,而所依赖spring版本号不小于配置文件对应版本号,那么问题很有可能出在依赖其他库时没有去除这些库对于spring的依赖(通常它们会依赖于低版本的spring,从而导致整个项目的spring版本出问题)。可以通过在pom.xml中,对于这些库,剔除spring依赖。例如我使用的jersey-spring,则修改pom.xml后如下,
&dependency&
&groupId&com.sun.jersey.contribs&/groupId&
&artifactId&jersey-spring&/artifactId&
&version&1.17.1&/version&
&exclusions&
&exclusion&
&groupId&org.springframework&/groupId&
&artifactId&spring&/artifactId&
&/exclusion&
&exclusion&
&groupId&org.springframework&/groupId&
&artifactId&spring-core&/artifactId&
&/exclusion&
&exclusion&
&groupId&org.springframework&/groupId&
&artifactId&spring-web&/artifactId&
&/exclusion&
&exclusion&
&groupId&org.springframework&/groupId&
&artifactId&spring-beans&/artifactId&
&/exclusion&
&exclusion&
&groupId&org.springframework&/groupId&
&artifactId&spring-context&/artifactId&
&/exclusion&
&exclusion&
&groupId&org.springframework&/groupId&
&artifactId&spring-aop&/artifactId&
&/exclusion&
&/exclusions&
&/dependency&
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥linux下文件闪烁不可读写怎么解决_百度知道
linux下文件闪烁不可读写怎么解决
我有更好的答案
如果文件闪烁的话,可能是这个文件的挂载源不存在了,或者是你link的源文件不存在了。首先先ls -l filename看下这个文件是不是一个link过来的文件,然后再df -h . 看下挂载点是否正常,通过2步来判断是什么文件找不到导致的闪烁。
采纳率:61%
来自团队:
linux下文件闪烁不可读写说明这个文件不存在
为您推荐:
其他类似问题
linux的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。超等AOP技术_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
超等AOP技术
本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
超等AOP技术是专门运用于超高浓度工业废水(废液/污水)处理的水处理技术。超声波与等离子结合而成的AOP技术,此工艺灵活运用超声波技术,针对于不同污水可以有效处理的频率段,以及等离子的高级氧化特性进行优化的组合,达到彻底处理各种超高浓度工业废液的方案。
超等AOP技术名词解释
超等:超声波等离子。
AOP技术:(Advanced Oxidation Processes)高级氧化法技术。
超等AOP技术技术内容
(1)超等AOP吸附:Oз + 活性炭 + 超声波
在废水处理中,吸附法处理的主要对象是废水中用生化法难于降解的有机或用一般氧化法难于氧化的溶解性有机物,包括卤素,木质素或硝基取代的芳烃化合物,杂环化合物,洗涤剂,合成燃料,DDT等。臭氧联合活性炭在超声波的作用下,应用于此类废水中,不但能够吸附去除这些难于氧化分解的有机物质,降低COD,使废水脱色,去臭,将废水处理达到可回用的程度,还能提高吸附效率,降低损耗,有效利用了资源,提高经济效益。
(2)超等AOP Fenton试剂法:Oз + 超声 + Fenton试剂
Fenton试剂中的Fe2+作为同质催化剂,而H2O2具有强烈的氧化能力,Fenton试剂之所以具有非常高的氧化能力,是因为H2O2在Fe2+的催化作用下,产生羟基自由基羟基自由基HO · 与其他氧化剂相比具有更强的氧化电极电位,具有很强的氧化性能。超声波强烈的震荡可以把大分子有机物分解为一系列的小分子物质,后经氧化催化达到进一步的转化,最终降解为CO2和水,或无机物。此法特别适用于处理高浓度,难降解,毒性
大的有机废水。
实例:处理垃圾填埋渗滤液
由于渗滤液的成分十分复杂,而且水质水量变化大,一般的生化法的厌氧或好氧处理工艺难以奏效。利用Fenton试剂法对其进行处理, 能够将有毒有害的有机污染物转变成无害的无机物,且COD能有较高的去除率。
(3)超等AOP:Oз + UV或Oз + H2O2
UV/ Oз 和Oз / H2O2系统可显著的提高废水处理的可生化性,采用活性污泥法工艺进行后续处理可明显地提高废水中的COD和TOC的去除率。
实例: (1)UV/ Oз 工艺可有效的去除垃圾渗滤液中的难降解污染物,有机物和苯酚去除率接近100%,联苯类物质的去除率为23%—96%,二恶英的去除率高于74%。
(2)多环芳烃(PAH)的焦化废水进行了UV/Oз 工艺处理,在最佳条件下,出水COD(100 mg/L),PAH全部去除。
(4)超等AOP:Oз + UV + TiO2
Oз /UV/TiO2工艺在处理2,4—二氯苯氧基乙酸废水中,比单独Oз 氧化和UV照射具有更高的去除效率 , 能有效地降低处理费用, 处理苯胺溶液的Oз /UV工艺中引入TiO2,也同样具有很的去除效率。
清除历史记录关闭您需要通过验证再能继续浏览 3秒后开始验证
丨 粤ICP备号-10 丨 新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!
(C) Joyslink Inc. All rights reserved 保留所有权利您所在的位置: &
开发者突击:精通AOP整合应用开发 目录
开发者突击:精通AOP整合应用开发 目录
电子工业出版社
《开发者突击:精通AOP整合应用开发:AspectWerkz+AspectJ+Spring》本书以AOP基础理论为主线,首先讲解AOP的产生与发展、为什么要应用AOP、AOP的核心概念,然后详细讲解AspectWerkz、AspectJ、Spring框架的AOP应用开发技术。本节为目录部分。
第1部分& AOP基础篇在目前的Java应用中,大多数的软件项目都选择了OOP的编程方式。的确,OOP已经表明了它处理一般行为的能力,但是,OOP不能很好地处理横越多个(经常是不相关的)模块的行为,相比之下,AOP填补了这个空白,它是编程方法学发展的又一个里程碑。第1章& AOP的产生&3软件开发经过了结构化(SA)、面向对象(OO)与设计模式(Design Pattern)、组件化(Component)、面向方面(AOP)直至面向服务(SOA)这条技术发展之路,AOP是为了解决业务核心代码与日志、权限、事务等通用功能代码混杂的问题而产生的。1.1& 软件开发方法的演进&31.1.1& 结构化方法SP(Structured Programming)&31.1.2& 面向数据结构的软件开发方法DOP(Data-Oriented Programming)&41.1.3& 面向问题的分析法PAM(Problem Analysis Method)&51.1.4& 面向对象编程OOP(Object-Oriented Programming)&51.1.5& 面向界面的可视化开发方法&71.1.6& 组件化编程CP(Component Programming)&81.1.7& 面向方面编程AOP(Aspect-Oriented Programming)&81.1.8& 面向服务架构SOA(Service-Oriented Architecture)&91.2& AOP产生的前奏--把系统看做一批关注点&111.2.1& 拆分关注点&111.2.2& 拆分需求&121.3& AOP产生的理由--传统方法存在的问题&131.3.1& 多维需求一维实现&131.3.2& 用传统方式实现&131.3.3& 传统方式带来的问题&141.3.4& 传统方式导致的结果&141.3.5& 现有的3种解决办法&141.3.6& AOP能更好地解决问题&151.4& 下一个主题:AOP基础理论&15第2章& AOP基础理论&17通过实例直观地讲解AOP的入门知识、应用开发与核心技术,为应用篇讲解AspectWerkz、AspectJ、Spring AOP做好理论准备。2.1& AOP入门知识&172.1.1& AOP简介&172.1.2& AOP是设计模式的延续&182.1.3& 第一个AOP程序HelloWorld&182.1.4& 使用AOP的优点&192.1.5& 使用AOP需要考虑的问题&202.2& AOP应用开发&212.2.1& AOP的开发过程&212.2.2& AOP的实现语言&222.2.3& AOP的应用范围&222.2.4& AOP最佳实践--为HelloWorld添加日志功能&232.2.5& AOP最佳实践--为HelloWorld添加权限控制功能&242.3& AOP核心技术&242.3.1& AOP名词解释&252.3.2& AOP通知类型&262.3.3& AOP织入过程&262.3.4& AOP织入策略&272.3.5& AOP织入时机&282.4& AOP开源框架&302.4.1& AspectWerkz&312.4.2& AspectJ&312.4.3& Spring&322.4.4& 其他AOP框架&332.5& 下一个主题:AspectWerkz应用篇&33第2部分& AspectWerkz应用篇AspectWerkz是一个基于Java的简单易用、功能强大、免费开源的AOP框架,既强大又简单,有助于用户更容易地使AOP集成到新的或已存在的项目中。AspectWerkz在Eclipse下也有辅助的开发插件。第3章& AspectWerkz入门基础&37从本章开始,我们将逐步揭开AspectWerkz的神秘面纱,了解AspectWerkz概要、主要特性和版本发展,安装AspectWerkz的开发环境,包括JDK、AspectWerkz、Eclipse与MyEclipse。3.1& 认识AspectWerkz&373.1.1& AspectWerkz简介&383.1.2& AspectWerkz主要特性&393.1.3& AspectWerkz版本发展&403.2& 安装AspectWerkz的开发环境&453.2.1& 安装与配置JDK&463.2.2& 安装与配置AspectWerkz&473.2.3& 安装与配置Eclipse&483.2.4& 安装MyEclipse&503.3& 下一个主题:AspectWerkz应用开发详解&52第4章& AspectWerkz应用开发详解&53AspectWerkz有3种开发方式:使用命令行进行开发、使用Eclipse+Ant进行开发、使用Eclipse+ApsectWerkz插件进行开发,这3种方式从简单到复杂,从原始到自动化,越来越容易开发AOP。4.1& 第1种:使用命令行进行开发--实例演示AWHelloWorld1&544.1.1& 新建目标类com.demo.HelloWorld.java&554.1.2& 新建方面类com.demo.MyAspect.java&564.1.3& 定义XML关联文件aop.xml&564.1.4& 织入与运行&574.1.5& 编写Annotation方面类com.demo.MyAspectWithAnnotations.java&584.1.6& 编写Annotation的XML关联文件aopWithAnnotations.xml&604.1.7& 织入与运行Annotation的类&604.2& 第2种:使用Eclipse+Ant进行开发--实例演示AWHelloWorld2&624.2.1& 编写Ant的构建文件build.xml&634.2.2& 编写属性文件aw.properties&674.2.3& 从AWHelloWorld1.zip中添加类代码&684.2.4& 运行构建任务&684.2.5& 程序的调试&704.3& 第3种:使用Eclipse+AspectWerkz插件进行开发--实例演示AWHelloWorld3&714.3.1& 安装AspectWerkz插件&714.3.2& 从AWHelloWorld1.zip中添加类代码&724.3.3& 运行AOP程序&734.3.4& Aspect查看器&744.3.5& 编写带Java 5注释符的方面类&754.4& 织入方面类前后的对比&774.4.1& 下载并安装反编译工具&774.4.2& 织入前的HelloWorld.class反编译结果&774.4.3& 织入后的HelloWorld.class反编译结果&784.5& 实际应用案例AWHelloWorld&804.5.1& 新建目标类com.demo.HelloWorld.java&804.5.2& 新建方面类com.demo.HelloWorldHijacker.java&814.5.3& 新建XML文件META-INF/aop.xml&814.6& 下一个主题:开发Aspect核心类&82第5章& AspectWerkz核心技术--开发Aspect核心类&83AspectWerkz应用开发中的重要元素--Aspect方面类,它是AspectWerkz应用开发的核心元素。Aspect方面类的开发,包括编写Aspect方面类、编写Advice通知函数、JointPoint输入参数。5.1& 编写Aspect方面类&835.1.1& Aspect类的修饰类型&845.1.2& Aspect类的构造函数&845.1.3& Aspect类的继承&855.2& 编写Advice通知函数&865.2.1& Advice函数的修饰类型&865.2.2& 通知的类型和Advice函数形式&875.3& JoinPoint输入参数&885.3.1& JoinPoint类型的输入参数&885.3.2& StaticJoinPoint类型的输入参数&895.4& 下一个主题:关联Aspect核心类&90第6章& AspectWerkz核心技术--关联Aspect核心类&91开发了Aspect核心类,要让这些Aspect类发挥作用,就需要通过一定的方法来将Aspect类与目标类关联起来,那么如何将Aspect类与众多的Java目标类进行关联呢?AspectWerkz为我们提供了标准的匹配表达式规范,用来将Aspect类与Java目标类进行匹配,可以将不同的Aspect类与不同的Java目标类进行关联。6.1& 匹配模式语言&926.1.1& 通配符&926.1.2& 类的匹配&926.1.3& 方法的匹配&936.1.4& 构造函数的匹配&946.1.5& 变量的匹配&956.1.6& 子类的匹配&956.1.7& 数组的匹配&966.2& 匹配表达式&966.2.1& 匹配函数&966.2.2& 匹配运算符&986.2.3& 如何引用匹配表达式&986.3& 第1种关联方式:使用Annotation定义关联&996.3.1& 使用@Aspect设置Aspect部署模式&1006.3.2& 使用@Expression自定义一个表达式&1006.3.3& 设置Advice通知函数&1026.3.4& 在XML中申明Aspect类&1056.4& 第2种关联方式:使用XML文件定义关联&1056.4.1& 使用定义Aspect类&1066.4.2& 使用定义匹配表达式&1066.4.3& 使用定义Advice通知函数&1076.4.4& 使用传递参数到Aspect类中&1096.4.5& 使用定义包&1096.4.6& 使用和设置包的范围&1106.4.7& 定义&1106.4.8& 添加DTD&1116.4.9& 完整的XML样例&1116.4.10& XML命名方式&1126.5& 下一个主题:AspectWerkz在Java EE项目中的应用&112第7章& AspectWerkz在Java EE项目中的应用&113在Java EE实例项目中开发基于AspectWerkz的AOP功能,包括日志记录器、性能分析器、权限检查拦截器,最后形成AOP应用案例包demo_ssh_oa_aw.zip。7.1& 安装Java EE项目的开发环境&1147.1.1& 安装并运行数据库MySQL&1147.1.2& 安装Tomcat&1167.1.3& 配置Tomcat与Eclipse的集成&1197.2& 运行Java EE项目&1207.2.1& 将项目导入到Eclipse中&1217.2.2& 发布项目到Tomcat中并启动Tomcat&1247.2.3& 登录该项目的系统界面&1267.3& 开发前的准备工作&1277.3.1& 分析项目包结构&1277.3.2& 添加AspectWerkz库&1297.4& 应用一:开发AOP日志记录器&1297.4.1& 创建日志记录器类Logger.java&1307.4.2& 在aop.xml中配置该日志记录器&1337.4.3& 织入日志记录器到Action类中&1337.4.4& 发布并运行项目查看运行结果&1367.5& 应用二:开发AOP性能分析器&1377.5.1& 创建性能分析器类Timer.java&1387.5.2& 在aop.xml中配置该性能分析器&1397.5.3& 织入性能分析器到Action类中&1407.5.4& 发布并运行项目查看运行结果&1427.6& 应用三:开发AOP权限检查拦截器&1437.6.1& 创建权限检查拦截器类AuthorizationInterceptor.java&1437.6.2& 在aop.xml中配置该权限检查拦截器&1457.6.3& 织入权限检查拦截器到Action类中&1467.6.4& 发布并运行项目查看运行结果&1477.7& 程序结构图&1487.8& 下一个主题:AspectJ应用篇&149第3部分& AspectJ应用篇AspectJ是AOP的Java语言的实现,它为Java语言增添了新的语法规则。初次接触AspectJ的读者看到这些资料(或者语法手册),会感到AspectJ有些神秘。AspectJ是对Java程序的无缝的、面向方面的扩展,与原有的Java程序完全兼容,并且较容易学习和使用。
第8章& AspectJ入门基础&153目前最成熟、功能最丰富的AOP框架当数AspectJ,AspectJ已成为大多数框架跟从的标准。首先我们需要了解AspectJ为何物,以及AspectJ的安装与配置过程。8.1& AspectJ概述&1538.1.1& AspectJ简介&1548.1.2& AspectJ的产生&1548.1.3& AspectJ的版本发展&1558.2& AspectJ安装与配置&1558.2.1& 下载AspectJ安装程序&1568.2.2& 安装AspectJ&1578.2.3& 认识AspectJ安装后的目录&1618.2.4& 配置AspectJ&1618.2.5& 测试AspectJ环境&1628.3& 下一个主题:AspectJ应用开发详解&162第9章& AspectJ应用开发详解&163AspectJ提供了两种开发与编译的方式,第一种方式是使用AspectJ自带的脚本命令,第二种方式是使用AspectJ安装包中提供的Ant构建任务。9.1& 使用AspectJ命令行开发&1649.1.1& 类路径的属性变量&1649.1.2& ajc--编译时和编译后织入类&1659.1.3& aj--加载时织入类&1719.1.4& ajdoc--生成Javadoc文档&1729.1.5& ajbrowser--AspectJ浏览器&1749.2& 使用Ant任务进行开发&1799.2.1& AjcTask(iajc) --执行类的编译与运行&1799.2.2& Ajc11CompilerAdapter(javac) --切换javac的编译器执行编译&1869.2.3& Ajc10(ajc) --执行类的编译与运行&1899.3& 下一个主题:在Eclipse中使用AJDT开发 AspectJ应用&191第10章& 在Eclipse中使用AJDT开发AspectJ应用&193前面讲解的使用命令行和使用Ant工具进行开发的两种方式,都是手工操作的方式。为了进行更高效的可视化开发,AspectJ同时提供了与各种IDE软件的集成插件,包括与Eclipse、JBuilder、NetBeans、Emacs和JDeveloper的集成,AspectJ与Eclipse的集成是比较流行的开发方式。10.1& AJDT下载与安装&19410.1.1& AJDT简介&19410.1.2& AJDT的发布版本&19510.1.3& AJDT的下载安装包&19510.1.4& AJDT的两种安装方式&19710.2& AJDT应用开发详解--开发实例AspectJHelloWorld&20010.2.1& 创建AspectJ项目的两种方式&20110.2.2& 配置AspectJ项目AspectJHelloWorld&20510.2.3& 新建一个目标类HelloWorld.java&20710.2.4& 新建一个方面类MyAspect.aj&20710.2.5& 在MyAspect.aj中添加通知函数&20910.2.6& 对比HelloWorld.class织入前后的不同&21010.2.7& 运行目标类HelloWorld.java查看结果&21210.3& AJDT的高级功能&21310.3.1& 目标类视图--查看HelloWorld.java&21310.3.2& 方面类视图--查看MyAspect.aj&21410.3.3& AspectJ图形化视图&21510.4& AspectJ与其他IDE的集成&21610.4.1& AspectJ与JBuilder的集成插件&21610.4.2& AspectJ与NetBeans的集成插件&21710.4.3& AspectJ与Emacs and JDEE的集成插件&21810.4.4& jdeveloperaop插件&21910.5& 下一个主题:AspectJ核心语法详解&220第11章& AspectJ核心语法详解&221根据前面的讲解,我们已经对AspectJ的开发过程有了直观了解,并了解到AspectJ应用开发中的重要元素--Aspect方面类,它是AspectJ应用开发的核心元素。本章就来讲解AspectJ核心类--Aspect方面类的开发。11.1& 编写Aspect方面类&22211.1.1& Aspect类的定义&22211.1.2& Aspect类的继承&22311.1.3& Aspect类的抽象&22311.2& 编写Aspect连接点函数&22411.2.1& 定义连接点函数&22411.2.2& 匹配表达式的函数类型&22511.2.3& 匹配表达式的通配符&22811.2.4& 匹配表达式的组合&22911.2.5& 在连接点中传递上下文参数&22911.3& 编写Aspect通知函数&23011.3.1& 通知函数的语法格式&23111.3.2& 通知函数的5种类型&23111.3.3& 通知函数的异常处理&23411.3.4& 使用JointPoint访问上下文信息&23511.4& 使用Annotation编写Aspect类&23611.4.1& 定义Aspect的注释符@Aspect&23611.4.2& 定义连接点的注释符@Pointcut&23711.4.3& 定义通知的5种注释符&23811.4.4& 定义声明的3种注释符&24111.5& Annotation开发实例--AnnotationHelloWorld&24211.5.1& 创建项目AnnotationHelloWorld&24211.5.2& 使用@Aspect修饰方面类MyAspect.aj&24311.5.3& 使用@Pointcut修饰连接点函数methods()&24511.5.4& 使用@Before修饰通知函数before()&24511.5.5& 使用@Around修饰通知函数around()&24611.5.6& 使用@After修饰通知函数after()&24711.5.7& 运行目标类HelloWorld.java查看结果&24811.6& 下一个主题:AspectJ对Java 5新特性的支持&249第12章& AspectJ对Java 5新特性的支持&251AspectJ为了支持Java5的新特性,进行了许多改进,包括注释、泛型、自动装箱与拆箱、类型覆盖、可变变量和枚举。12.1& 使用Java 5注释符(Annotation)&25112.1.1& Java 5中的注释符&25112.1.2& 在Aspect中使用Java 5注释符&25312.1.3& 在匹配表达式中匹配Java 5注释符&25512.1.4& 为目标代码注入Java 5注释符&25712.1.5& 为目标函数注入错误信息&25812.1.6& 为目标类设置继承类和接口&25812.1.7& 设置Aspect类的执行顺序&25812.2& 使用Java 5泛型(Generics)&25912.2.1& Java 5中的泛型知识&25912.2.2& 在Aspect中应用泛型&26112.2.3& 为目标类设置参数化的继承类和接口&26412.2.4& 定义参数化的Aspect类&26412.3& 使用Java 5自动装箱(AutoBoxing)与 拆箱(Unboxing)&26512.3.1& Java 5中的自动装箱&26512.3.2& Java 5中的自动拆箱&26612.3.3& 在Aspect中使用装箱与拆箱&26612.4& Java 5中的类型覆盖(Covariance)&26712.4.1& Java 5中的类型覆盖是什么&26712.4.2& 在Aspect中进行匹配&26812.5& 使用Java 5可变变量类型(Varargs)&26812.5.1& Java 5中的可变变量类型&26812.5.2& 在Aspect中匹配可变变量类型&26912.6& 使用Java 5枚举类型(Enum)&27012.6.1& Java 5中的枚举类型&27012.6.2& 在Aspect中使用枚举类型&27312.7& 下一个主题:AspectJ在Java EE项目中的应用&273第13章& AspectJ在Java EE项目中的应用&275在Java EE实例项目中开发基于AspectJ的AOP功能,包括日志记录器、性能分析器、权限检查拦截器、异常监视器、在线用户监视器,最后形成AOP应用案例包demo_ssh_oa_aspectj.zip。13.1& 开发前的准备工作&27613.1.1& 运行该Java EE项目&27613.1.2& 分析项目包结构&27613.1.3& 添加AspectJ库&27813.1.4& 将项目转换为AspectJ项目&27813.2& 应用一:AOP日志记录器&27913.2.1& 创建日志记录器类Logger.aj&28013.2.2& 记录用户登录信息&28113.2.3& 记录用户退出信息&28313.2.4& 记录用户操作信息&28513.2.5& 查看Logger.aj连接点导航图&28713.2.6& 发布并运行项目,查看运行结果&28913.3& 应用二:AOP性能分析器&29013.3.1& 创建性能分析器类Timer.aj&29013.3.2& 记录用户操作时间信息&29213.3.3& 查看Timer.aj连接点导航图&29413.3.4& 发布并运行项目,查看运行结果&29513.4& 应用三:AOP权限检查拦截器&29713.4.1& 创建权限检查拦截器类AuthorizationInterceptor.aj&29713.4.2& 验证用户的操作&29913.4.3& 查看AuthorizationInterceptor.aj连接点导航图&30213.4.4& 发布并运行项目,查看运行结果&30313.5& 应用四:AOP异常监视器&30513.5.1& 创建异常监视器类ExceptionMonitor.aj&30513.5.2& 捕捉用户操作的异常&30713.5.3& 查看ExceptionMonitor.aj连接点导航图&30913.5.4& 发布并运行项目,查看运行结果&31013.6& 应用五:AOP在线用户监视器&31113.6.1& 创建在线用户监视器类OnlineUser.aj&31113.6.2& 监视用户的操作&31313.6.3& 查看OnlineUser.aj连接点导航图&31513.6.4& 发布并运行项目,查看运行结果&31713.7& 程序结构图&31713.8& 下一个主题:Spring AOP应用篇&318第4部分& Spring AOP应用篇Spring框架中目前最吸引人的也是该应用框架最具特色的地方就是名为控制反转(IoC,Inverse of Control)或者依赖注入(DI,Dependence Injection)的设计思想,这是一种相当优秀的设计思想,即"好莱坞"原则:不用你主动来找我,我会通知你。但是,仅仅凭借着这样一个单纯的设计模式并不能使得Spring如此成功,Spring最成功的地方,还是目前使用最为广泛的AOP应用,也就是Spring中基于AOP实现的业务管理机制,也正是由于这一点,使得Spring AOP成为应用框架中极其闪光的一个亮点。第14章& Spring与IoC入门基础&321Spring是一个轻量的控制反转和面向切面的容器框架。Spring框架所提供的众多功能之所以能成为一个整体,正是建立在IoC的基础之上,当然本书要讲解的AOP也是构建在IoC基础之上的,因此对这一内涵简单、外延丰富的技术我们有必要进行详细介绍。14.1& 了解Spring框架&32114.1.1& Spring的产生与发展&32114.1.2& Spring框架结构图&32214.1.3& Spring组件包详解&32314.2& 了解IoC控制反转&32614.2.1& IoC与DI的基本概念&32714.2.2& IoC模式的实例讲解&32714.2.3& 利用Java反射机制实现IoC容器&33214.2.4& Spring中IoC容器的实现方式&33814.2.5& IoC模式的优缺点&33814.3& 依赖注入的3种类型&34014.3.1& Type1接口注入&34014.3.2& Type2构造注入&34114.3.3& Type3设值注入&34114.3.4& 3种类型对比总结&34214.4& Spring的IoC容器装载机制&34314.4.1& BeanFactory的使用步骤&34414.4.2& 配置的属性&34614.4.3& 配置的子元素&35014.4.4& ApplicationContext&35414.5& 下一个主题:Spring的安装与配置&357第15章& Spring的安装与配置&359要进行基于Spring的功能开发,就需要添加Spring的开发支持环境。所谓的Spring支持环境,就是在Java Web应用中所添加的Spring所需要的jar、tld、xml文件,有了这些文件我们就可以开发Spring相关的功能代码。15.1& 使用MyEclipse自动添加Spring&36015.1.1& 使用MyEclipse添加Spring开发环境&36015.1.2& 结果预览:Spring支持包列表&36215.1.3& 结果预览:Spring配置文件列表&36215.2& 手动添加Spring&36315.2.1& 第一步:添加Spring的jar支持包&36315.2.2& 第二步:添加Spring的tld标签库文件&36315.2.3& 第三步:添加Spring的核心配置文件applicationContext.xml&36315.2.4& 第四步:添加日志配置文件&36415.3& Spring入门样例--SpringTest&36415.3.1& 在applicationContext.xml中添加Bean配置&36415.3.2& 新建Bean类--HelloWorld.java&36415.3.3& 运行测试类Test.java&36515.4& 下一个主题:基于@Aspect注释符的AOP开发&366第16章& 基于@Aspect注释符的AOP开发&367Spring的AOP组件实现了AOP联盟约定的接口,它是由纯Java开发完成的。Spring实现AOP的方法与其他的框架不同,它侧重于提供一种AOP实现和Spring IoC容器的整合,使用@Aspect注解的方式就是第一种AOP实现方式。16.1& 定义方面类(Aspect)&36816.1.1& 在applicationContext.xml中启用@Aspect注释&36816.1.2& 在applicationContext.xml中声明一个切面类MyAspect.java&36916.2& 定义切入点函数(Pointcut)&37016.2.1& Spring中切入点语法知识&37016.2.2& 定义切入点函数Pointcut()&37316.2.3& 新建目标类HelloWorld.java&37316.3& 定义通知函数(Advice)&37416.3.1& 前置通知(Before advice)&37516.3.2& 返回后通知(After Returning Advice)&37516.3.3& 抛出后通知(After Throwing Advice)&37616.3.4& 后通知(After (Finally) Advice)&37716.3.5& 环绕通知(Around Advice)&37816.3.6& 多个通知函数的执行顺序&37916.4& 通知函数的参数&38016.4.1& 访问目标对象的连接点&38016.4.2& 传递参数给通知函数(Advice)&38116.4.3& 自定义参数名&38216.5& 完整的实例--SpringAnnotation&38316.5.1& applicationContext.xml文件&38316.5.2& MyAspect.java&38316.5.3& 编写测试类Test.java&38416.5.4& 运行测试类Test.java&38516.5.5& 打包SpringAnnotation.zip&38616.6& 下一个主题:基于Schema的AOP开发&386第17章& 基于Schema的AOP开发&387上一章中我们讲解了使用@Aspect来开发AOP的功能,@Aspect是Java 5中的注释符,因此它是基于Java5的新特性来进行开发的。有时也许你不想使用Java 5的注释符,或者你比较喜欢使用XML格式,那么Spring 2.0也提供了使用新的AOP命名空间来定义一个切面。17.1& 配置applicationContext.xml&38717.1.1& 切换到Schema模式&38817.1.2& 引入spring-aop命名空间&38817.2& 开始配置元素&38917.2.1& 的元素构成&38917.2.2& 申明一个切面&38917.2.3& 声明一个切入点&39017.3& 声明通知&39117.3.1& 前置通知(Before Advice)&39117.3.2& 返回后通知(After Returning Advice)&39217.3.3& 抛出异常后通知(After Throwing Advice)&39317.3.4& 后通知(After (Finally) Advice)&39417.3.5& 环绕通知(Around Advice)&39517.3.6& 通知参数&39517.3.7& 通知顺序&39617.4& 完整的实例--SpringSchema&39617.4.1& applicationContext.xml文件&39617.4.2& MyAspect.java&39717.4.3& 编写测试类Test.java&39817.4.4& 运行测试类Test.java&39817.4.5& 打包SpringSchema.zip&39917.5& 下一个主题:基于SpringAPI的AOP开发&400第18章& 基于SpringAPI的AOP开发&401前面两章介绍了Spring中提供的由@AspectJ和基于Schema的两种切面定义的AOP。Spring提供了自己的API,来实现基于AOP的功能。在这一章,我们将讨论更底层的Spring AOP API,以及如何在Spring应用中使用这些API。18.1& 新建项目SpringAOPDemo&40118.1.1& 新建接口类IHelloWorld&40118.1.2& 新建实现类HelloWorld&40118.1.3& 配置applicationContext.xml&40218.2& Spring里的通知Advice类型&40218.2.1& 环绕通知&40218.2.2& 前置通知&40318.2.3& 异常通知&40318.2.4& 后置通知&40418.3& 配置Advisor和AOP代理&40518.3.1& Spring里的Advisor&40518.3.2& 使用ProxyFactoryBean创建AOP代理&40518.4& 运行结果&40618.4.1& 编写测试类Test.java&40618.4.2& 运行环绕通知&40718.4.3& 运行前置通知&40718.4.4& 运行异常通知&40818.4.5& 运行后置通知&41018.5& 打包SpringAOPDemo.zip&41118.6& 下一个主题:Spring AOP在Java EE项目中的应用&412第19章& Spring AOP在Java EE项目中的应用&413Spring AOP在Java EE项目中的应用:在Java EE实例项目中开发基于Spring的AOP功能,包括日志记录器、性能分析器、权限检查拦截器、异常监视器、在线用户监视器,最后形成AOP应用案例包demo_ssh_oa_spring.zip。19.1& 选择@Aspect还是Schema&41419.2& 开发前的准备工作&41519.2.1& 运行该Java EE项目&41519.2.2& 分析项目包结构&41519.2.3& 添加AspectJ库&41619.3& 应用一:AOP日志记录器&41719.3.1& 创建日志记录器类Logger.java&41719.3.2& 记录用户登录信息&41819.3.3& 记录用户退出信息&42019.3.4& 记录用户操作信息&42119.3.5& 在applicationContext.xml中配置Logger组件&42219.3.6& 发布并运行项目,查看运行结果&42219.4& 应用二:AOP性能分析器&42419.4.1& 创建性能分析器类Timer.java&42419.4.2& 记录用户操作时间信息&42519.4.3& 在applicationContext.xml中配置Timer组件&42619.4.4& 发布并运行项目,查看运行结果&42719.5& 应用三:AOP权限检查拦截器&42819.5.1& 创建权限检查拦截器类AuthorizationInterceptor.java&42919.5.2& 验证用户的操作&43019.5.3& 在applicationContext.xml中配置AuthorizationInterceptor组件&43119.5.4& 发布并运行项目,查看运行结果&43219.6& 应用四:AOP异常监视器&43319.6.1& 创建异常监视器类ExceptionMonitor.java&43319.6.2& 捕捉用户操作的异常&43519.6.3& 在applicationContext.xml中配置ExceptionMonitor组件&43619.6.4& 发布并运行项目,查看运行结果&43619.7& 应用五:AOP在线用户监视器&43619.7.1& 创建在线用户监视器类OnlineUser.java&43719.7.2& 监视用户的操作&43819.7.3& 在applicationContext.xml中配置OnlineUser组件&44019.7.4& 发布并运行项目,查看运行结果&44019.8& 程序结构图&44119.9& 下一个主题:Spring与AspectJ的集成&441第20章& Spring与AspectJ的集成&443对于AspectJ程序员来说,也许希望使用Spring来管理和配置Aspect的类,类的织入仍然交给AspectJ来处理,这样Spring只是利用了它的IoC来配置AspectJ,体现了插件配置的方便性。而Spring也为此提供了准备,spring-aspects.jar包用以提供Spring与AspectJ的集成。20.1& 配置Spring到AspectJ的集成&44320.1.1& 添加支持包spring-aspects.jar&44320.1.2& 配置Aop命名空间&44420.1.3& 切换到AspectJ&44420.2& 配置AspectJ并运行&44520.2.1& 配置aop.xml&44520.2.2& 发布并运行项目,查看运行结果&44520.2.3& 改变方面类组件,查看运行结果&44720.3& 程序结构图&448【责任编辑: TEL:(010)】 &&&&&&
关于&&&&&&&&&&的更多文章
Spring是java平台上的一个开源应用框架。它的第一个版本是由Rod
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
讲师: 7人学习过讲师: 31人学习过讲师: 19人学习过
论文写作是全国计算机技术与软件专业技术资格(水平)
本书由经验丰富的计算机专家精心编写,笔者用轻松的笔
PHP是比较普及的互联网开发语言之一。本书按新手从入
《游戏开发核心技术--剧本和角色创造》分“剧本”、“角色”和“游戏玩法”三部分,第一部分着重说明故事的历史、一般故事元素、
51CTO旗下网站}

我要回帖

更多关于 更新目录时目录不存在 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信