我有一个类CustomerService,它是一个Spring bean。在调用getCustomer()之后调用getCustomer()和cleanUp()之前如何运行init()?
public void init(){
faultCode = "";
faultString ="";
}
public void cleanUp(){
faultCode = faultException.getFaultCode().toString();
faultString = faultException.getFaultStringOrReason().toString();
}
@Override
public Customer getCustomer(String customerCode) {
return null;
}
答案 0 :(得分:1)
我认为你要做的事对我来说似乎并不合理。无论如何,根据我的理解,你要做的是,当调用bean的方法时,你想要调用一些预调用和调用后例程。至少有两种选择,具体取决于您的设计:
如果该bean应该为一个实例提供一个请求,(即你不是同时为多个调用服务),那么让你的bean成为一个原型bean(或其他范围,如果你知道什么去做)。 Spring将创建一个新的bean来满足您的请求(即每当您尝试从Spring应用程序上下文中获取bean时,Spring应用程序上下文将为您创建一个新实例)。但是,将bean注入现在所做的并不是那么简单。您可能需要工厂方法或使用范围代理
如果该bean应该被实例化一次,并用于提供多个并发请求,那么AOP几乎是您唯一的其他选择。
答案 1 :(得分:0)
<bean id="CustomerService"
class="examples.CustomerService" init-method="init" destroy-method="cleanUp" />