第
1,
2,
3,
4 页
业务逻辑的实现与配置
我们从解释业务逻辑类的实现与配置入手,因为它们是最简单的部分。 请从可下载的示例代码部分查看 AccountMgr
接口和 AccountMgrImpl
类的源代码。 从源代码中可以看出,实际上实现没有做任何事,因为我们要保证事务的简单性,毕竟本文的目的不在于如何编写资金转移的代码。
以下是一个 Spring 配置文件的片段(从“资源”部分可获取完整的配置文件),它展示了我们是如何为业务逻辑配置 Spring Bean 以使用 Spring 的 AOP 功能。 第一个 Bean 条目只是单纯地为 AccountMgrImpl
类设置了一个 Bean。 第二个 Bean 条目展示了我们前面讨论的如何利用 AOP 代理。 我们将 Bean ID 设置为 accountMgr
,将从 ProxyFactoryBean
获取该 ID。 当 FundsTransferServiceSoapBindingImpl
以该 Bean ID 向 Spring 提出请求时,ProxyFactoryBean
将返回一个 AOP 代理对象实例。 我们对它进行配置以实现 AccountMgr
接口,这样一来,客户端程序就会认为正在与一个业务逻辑对象通信。 对于第二个名为 interceptorNames
的属性,设置它是为了使一个称为 securityInterceptor
的 Bean 可以拦截对方法的调用以执行安全性检查。 如此,我们就在对业务逻辑代码不产生任何依赖性的情况下插入了安全性机制。 最后,我们将 target 属性设置为 accountMgrTarget
Bean,这样,方法调用会最终传播到实际的业务逻辑类 AccountMgrImpl
上。
<beans> <bean id="accountMgrTarget" class="com.mybank.bizlogic.AccountMgrImpl"/> . . . <bean id="accountMgr" class="org.springframework.aop.framework. ProxyFactoryBean"> <property name="proxyInterfaces"> <list> <value> com.mybank.bizlogic.AccountMgr </value> </list> </property> <property name="interceptorNames"> <list> <value> securityInterceptor </value> </list> </property> <property name="target"> <ref bean="accountMgrTarget"/> </property> </bean> . . .</beans>
Web 服务的实现和配置
FundsTransferServiceSoapBindingImpl
类就是 Web 服务的实现。 请从“可下载的示例代码”部分查看其源代码。 该类的骨架是由 Axis 生成的,只需填充用于实现的方法。 请注意,该类扩展自 ServletEndpointSupport
。 这是 Spring 提供的一个方便的类,它可以用于 JAX-RPC Web服务实现以获取对 Spring 应用程序上下文的引用。 通过扩展该类,FundsTransferServiceSoapBindingImpl
可以访问 Spring 上下文来获取一个对 accountMgr
Bean 的引用(上文中已经进行了讨论)。 由于 FundsTransferServiceSoapBindingImpl
由 Axis 管理,我们不能使用 Spring 的依赖性注入功能为该 Bean 自动获取引用。 因此,不得不在 onInit()
方法中明确地获取引用。 不尽人意的是,这在特定于 Spring 的类中添加了一些依赖性。 算了吧,这也是为了可以利用 Spring 和 Acegi 所付出的小小代价。 请注意在实际的 transferFunds()
方法中,该代码只传播给 accountMgr
Bean。
在 Axis 配置文件(deploy.wsdd 和 server-config.wsdd) 中,我们需要保证用于实现服务的类是 FundsTransferServiceSoapBindingImpl
类,而不是 Axis 生成的类骨架(FundsTransferServiceSoapBindingSkeleton
)。 要使 Spring 在 Axis 等 Web 应用程序中正常工作,我们需要在 web.xml 文件中添加下面的条目。 context-param
指出 Spring 配置文件的位置。 listener
条目的配置,以便 Spring 配置文件及其上下文可以正确地装载和启用。
<web-app> <context-param> <param-name> contextConfigLocation </param-name> <param-value> /WEB-INF/spring-config.xml </param-value> </context-param> <listener> <listener-class> org.springframework.web.context. ContextLoaderListener </listener-class> </listener>. . .</web-app>
分享到:
相关推荐
阿里支付demo
文件已上传到百度网盘,附件中是下载地址。... Java.Web.Services-Up.and.Running_2nd.Edition—Java.Web服务-构建与运行(第2版).pdf 〔美〕martin kalin(马丁·卡林)(著) 电子工业出版社 9787121245015 2014-11-01
org.springframework.web-3.0.5.RELEASE.jar
只需要导入aspose-words-14.9.0-jdk16.jar 无需license.xml,直接去水印,文件内含示例代码(6行代码,doc转无码pdf就是这么简单)。亲测可用,有问题留言
javax.servlet.jsp.jstl-api-1.2.1.jar
毕业设计-基于java+HBase实现的手机数据备份系统(短信、联系人、重要文件).zip 基于HBase实现的手机数据备份系统,实现了手机关键信息的备份,如短信、联系人等。 包括服务器端(Server)和客户端(Client) Server...
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="...-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web... <display-name>网站名称</display-name> <description>网站描述</description> ...
javax.annotation-3.1.2.2-sources.jar,javax.annotation-3.1.2.2.jar无分共享
spring-data-commons-1.7.2.RELEASEspring-data-jpa-1.5.2.RELEASE-java datajpa
socket.io,socket.io-client 用于java或android连接nodejs websocket
javax.servlet-api-3.1.0.jar,处理找不到servlet JAR的问题
Copy RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext Copy rxtxSerial.dll ---> <JAVA_HOME>\jre\bin Copy rxtxParallel.dll ---> <JAVA_HOME>\jre\bin Linux Choose your binary build - x86_64 or i386 (based on ...
org.springframework.web.servlet-3.0.0.M4.jar
课程设计---Java Web图书管理系统.pdf课程设计---Java Web图书管理系统.pdf课程设计---Java Web图书管理系统.pdf课程设计---Java Web图书管理系统.pdf课程设计---Java Web图书管理系统.pdf课程设计---Java Web图书...
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <description>cas client test</description> <!--CAS Authentication FILTER --> <filter> ...
Copy RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext Copy rxtxSerial.dll ---> <JAVA_HOME>\jre\bin Copy rxtxParallel.dll ---> <JAVA_HOME>\jre\bin 2. Copy rxtxSerial.dll ---> C:\Windows\System32 Copy ...
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error ...
org.springframework.context-3.1.1.RELEASE.jar java 开发专用
04 JAVA SE 环境搭建 --> 基础程序 --> 面向对象 --> 应用开发 --> 高级应用 --> Java新特性 --> JDBC 05 JAVA EE WEB HTML --> JavaScript --> JSP --> JavaBean --> DAO --> Smartupload --> Servlet --> MVC 06 ...