gpt4 book ai didi

java - Spring中如何每次运行init和destroy方法

转载 作者:行者123 更新时间:2023-12-01 11:39:52 26 4
gpt4 key购买 nike

我有一个类,CustomerService,它是 Spring bean 。如何在调用 getCustomer() 之前运行 init() 以及在完成调用 getCustomer() 后运行 cleanUp()?

public void init(){
faultCode = "";
faultString ="";
}

public void cleanUp(){
faultCode = faultException.getFaultCode().toString();
faultString = faultException.getFaultStringOrReason().toString();
}

@Override
public Customer getCustomer(String customerCode) {
return null;
}

最佳答案

我认为你想做的事情对我来说似乎并不合理。无论如何,根据我的理解,您想要做的是,当调用 bean 的方法时,您想要调用一些调用前和调用后例程。至少有两个选择,具体取决于您的设计:

  1. 如果该 Bean 应该为一个实例的一个请求提供服务(即,您没有同时为多个调用提供服务),那么将您的 Bean 设为原型(prototype) Bean(或其他范围,如果您知道什么)去做)。 Spring将创建一个新的bean来服务您的请求(即每当您尝试从Spring应用程序上下文获取bean时,Spring应用程序上下文将为您创建一个新实例)。然而,注入(inject) Bean 并不像您现在所做的那么简单。您可能需要工厂方法或使用作用域代理

  2. 如果该 bean 应该实例化一次,并用于服务多个并发请求,AOP 几乎是您唯一的其他选择。

关于java - Spring中如何每次运行init和destroy方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29618447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com