gpt4 book ai didi

java - 用于静态类的 Spring Bean

转载 作者:行者123 更新时间:2023-11-29 08:37:29 24 4
gpt4 key购买 nike

我想了解我设计的缺点,下面是我的代码

class Utils {
public static SpringBean bean;
public static void setBean(SpringBean b){
bean = b;
}
public static SpringBean getBean(){
return bean;
}
public static Object getSomethingFromBean(){
return bean.getSomethingFromBean();
}
}

下面是我的 bean 上下文 xml

<bean id="utils" class="utils">
<property name="bean" ref="springBean"></property>
</bean>

<bean id="springBean" class="SpringBean">
</bean>

我这样做是为了可以直接调用 utils 类的方法,例如

Utils.getSomethingFromBean();

最佳答案

Spring 的要点是(在此简化)避免通过静态方法或单例访问服务。使用 Spring 的所有原因都适用于为什么不使用这种方法。

此外,必须实例化一个仅包含静态字段的类是一个很好的提示,表明您至少在做一些不寻常的事情。

最后,如前所述,将 Utils 的内容设为静态是没有意义的 - 您也可以执行 utils.getSomethingFromBean(); 如果 Utils 是一个没有静态字段的普通 bean。如果您的目的是能够调用 Utils.getSomethingFromBean();,您应该使 utils Spring bean 对调用者可用,而不是求助于静态方法。

关于java - 用于静态类的 Spring Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42803418/

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