gpt4 book ai didi

java - Spring:新建和 Autowiring :新建的对象可以永远不使用 Autowiring 吗?

转载 作者:行者123 更新时间:2023-12-01 09:23:52 24 4
gpt4 key购买 nike

据我了解,如果您直接新建一个对象,Spring 现在可以注入(inject)由 @Autowired 指定的依赖项。

但是,假设您有一个可以在其中创建新 Customer 对象的 UI。我相信,在坚持之前先更新客户是唯一的出路。如果是这样,如果我希望客户有一些复杂的行为,需要访问某些通常会自动连接的服务,该怎么办?

一旦保存并检索了 Customer 对象,Spring 是否有可能能够注入(inject) Autowiring 的依赖项?那么错误是“太早”尝试使用 Customer 对象吗?

我的主要问题是,想要在新对象中使用 Autowired 是否反射(reflect)了设计缺陷?

编辑:我已经看到了新对象实际上可以使用 Autowire 的方法,但我的问题是,对于像 Customer、User、Person 等常见类,他们甚至需要使用 @Autowired 是不寻常的吗?它们本质上应该是纯数据对象吗?我似乎需要创建新对象并让这些对象表现出行为,但也许我在设计方面做了一些错误的事情。

最佳答案

您可以使用org.springframework.beans.factory.ObjectFactory<T>动态创建对象的多个实例。在 Spring ,就像 javax.enterprise.inject.Instance<T> Java EE CDI 接口(interface)。请参阅:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/ObjectFactory.html

@Autowired
ObjectFactory<Customer> customerFactory;

...
Customer newCustomer = customerFactory.get();
...

如果“Customer”是您的实体类,您应该避免 Autowiring 服务。

您的实现情况如何?您能否提供更多详细信息?

关于java - Spring:新建和 Autowiring :新建的对象可以永远不使用 Autowiring 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39997499/

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