gpt4 book ai didi

java - Spring 3,在非托管类中注入(inject) bean 的可配置注释的风险?

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

我有一个充当 Rest API 的 Spring 3 项目,并且想要将我拥有的 spring bean 连接到一个非托管类中以用于日志记录。

在尝试了许多不同的方法之后,有效的方法是使用注释 @Configurable 标记我的非托管类。

喜欢:

@Configurable
public class ClassNotManagedBySpring {
@Autowired
@Qualifier("myBean")
private MyBean myBean;
}

@Service("myBean")
public class MyBean {
@Autowired
@Qualifier("someOtherBean")
private SomeOtherBean someOtherBean;
}

然后在我的 beans.xml 中:

<context:spring-configured/>

现在假设 ClassNotManagedBySpring.java 是 6 个类之一,它们都执行类似的操作,除了其中 3 个类由 spring 管理,因为它们具有 @Component 注释。

但是所有这 6 个类都需要 @Autowire MyBean.java,只有一些类需要 @Configurable 注解。

需要注意的是,我之前已经在此应用程序中将 AspectJ 用于多种其他目的。

我想知道我的 spring 应用程序突然以这种方式将 spring 托管依赖项连接到非托管类中存在什么风险?

是否存在性能问题?运行时出错的风险?

如果这不是将 Spring 托管 bean 连接到非托管类的最佳方式,那么什么才是?

最佳答案

我一直在使用@Configurable多年来没有出现任何问题,如果您需要由 Spring 配置的应用程序实例化 bean,这是一个非常简单的解决方案。我的用例都在 UI 层。我还用过@Configurable(preConstruction = true)每当我需要构造函数中已有的 Autowiring 值时。当然,如果你赚了几百万@Configurable反对这可能是一个性能问题,否则我不会太担心它。我遇到的唯一的美学小问题是 Eclipse 在扩展 @Configurable 的类定义处给了我一些红色下划线。类,提示类 SomeClass 的层次结构不一致,但它仍然编译了它们,问题 View 中或运行时没有任何错误。

关于java - Spring 3,在非托管类中注入(inject) bean 的可配置注释的风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36367318/

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