问题标签 [autowired]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6136 浏览

spring - 将 Proguard 与库一起使用有一个 @Service bean,它应该自动装配

我有一个库 Common.License,我用 Proguard 混淆了它:

这个库有一个用 @Service 注释的 Spring bean:

我在网络服务 Company.License 中使用这个库,我希望 LicenseService 自动装配:

所以 Company.License 依赖于 Common.License。如果我混淆 Common.License 则licenseService不会自动装配BackgroundTasks. 我可以解决这个问题的唯一方法是将 licenseService 明确定义为 bean:

我不需要将其显式声明为这样的 bean,因为我已经注释了@Service应该足以使 Spring 中的自动装配licenseService神奇BackgroundTasks地工作的类。但事实并非如此!

Proguard 专门做什么来使它不起作用?我可以在 Proguard 的配置中做些什么来使它对 Spring 更友好吗?

授予

0 投票
2 回答
17495 浏览

spring - 如何@autowire 进入 jsf 托管 bean

为了使用@Autowire注解,使用注解的对象必须来自spring上下文。

JSF 托管 bean 是由 JSF 的 IOC 而不是 Springs 创建的,因此我不能在其中使用 @Autowire 必须使用 faces-config.xml 和托管属性。

我已经设置了一个 EL 解析器,它可以让 spring bean 作为托管属性,我想更进一步,并摆脱每次需要自动装配某些东西时进入 faces-config.xml 的需要。这可能吗?

0 投票
4 回答
1016 浏览

java - 自动装配不会限制 IoC 的目标吗?

IoC 很好,但是与自动装配一起使用(@EJB、@Autowired、@Inject、@SpringBean...),你不认为它限制了 IoC 的目标吗?

实际上我对不同框架中的自动装配系统了解不多,但似乎它主要基于类型。

当您在 IService 上使用 @EJB 时,您只需要一个实现 ServiceImpl 即可使其工作。

如果我们想要很多实现怎么办?

似乎一些自动装配注释可以有参数。例如在 Stripes 中你可以这样做: @SpringBean("xxxService") 其中 xxxService 是一个 spring 初始化的 bean。

在这种情况下,好吧,你不要执行“new XxxServiceImpl()”,但你仍然对你想在你的 bean 中使用的服务实现进行硬编码引用。它根本不是类引用,而是对实现的 spring bean 引用......

你怎么看?我喜欢自动装配,但只是想知道自己....

0 投票
1 回答
1268 浏览

java - Spring 后处理器,订单,@Required

在工作中,我们有一个带有注释的自定义 ServiceProvider 模式,用于将服务与 Spring 后处理器绑定。

我想知道是否可以使用@Required 检查我的绑定是否正确完成。

绑定不是由 Spring 完成的(既不是 xml 也不是自动装配)。

我想如果可能的话,后处理器顺序有一些重要性(需要的弹簧检查应该在我们的自定义绑定处理器之后处理)。

有人可以告诉我这是否可能以及如何?

0 投票
1 回答
2432 浏览

spring - 没有自动接线

我正在尝试使用http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_soap_rest/WEB-INF/beans中定义的 jaxrs:client 构建一个安静的客户端.xml

在我的测试类中,我得到 org.springframework.beans.factory.BeanCreationException: Error created bean with name 'com.abc.service.ExportServiceTest': 自动装配依赖注入失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 com.bankbazaar.service.ExportService com.abc.service.ExportServiceTest.exportClient;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为 [com.abc.service.ExportService] 的匹配 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=exportClient)}

这是我的春季配置

然而

这行得通。

谢谢喜芒树

0 投票
4 回答
7303 浏览

java - 如何在不是已配置 bean 的类中自动装配 bean?

如果我没有正确理解术语,请原谅我。

我的情况是这样的:

我有一个班级,我们称之为 TheClass。在这个类里面是一个 TheData 对象。

我有 XML 来设置 TheData bean,如下所示:

和 TheClass 里面的一个二传手,像这样:

我的问题是,如果我不在 XML 中创建 TheClass bean(因此不能让它自动装配),它将不知道自动装配 theData 字段(对吗?)。并且由于某些限制,我无法在 XML 中配置 TheClass(因此后来自动装配)。所以,我的问题是,我怎样才能做到这一点?我是一个新手,所以如果我遗漏了什么,请随时指出。

0 投票
1 回答
3153 浏览

spring - Spring JUnit 测试:自动装配和事务问题

我们有一个现有的 Java EE 应用程序,它利用了 Spring,并且正在从 xml 配置过渡到自动装配。我们刚刚将大部分 EJB 转换为 Spring bean,但目前仍在使用 MDB 和 EJB 计时器。

  • 是 7.0
  • 爪哇 6
  • 春天 3.0.5
  • JUnit 4.8.1

我也在用 JUnit 编写集成测试。我的集成测试使用大多数上下文配置文件,就像在 WAS 中运行时一样,但不使用与 JNDI 相关的东西或使用 JTA 事务管理器。对于那些,我有设置 ActiveMQ 队列、Hibernate 事务管理器等的等价物。

我的测试如下所示:

我的测试出现问题至少有几个原因:

  1. 自动装配跳过了一些 bean
  2. 有时 bean 不代理事务

第 1 项似乎与循环引用有关。我复制了一些有自动装配问题的 bean。我在同一个包中制作了副本。副本被连接起来,但不是原件。然后,我开始将 xml 上下文文件中的引用从原始文件移动到副本,并且在某些时候,副本不再连接,但原始文件会连接。我在其中一个上下文文件中有以下内容(更改了名称以保护我:):

我认为第二个实体是多余的,但应该是无害的。

我在日志中看不到任何错误。我将日志记录转为调试,并看到大多数 bean 被自动装配,但这些 Spring 似乎没有任何错误跳过。

第 2 项可能与第 1 项相关。某些 bean 未正确代理以处理事务。在我的纯 JUnit 上下文中,我有以下内容:

由于没有事务,我在某些地方遇到了休眠错误,而在其他地方,bean 被代理并开始事务。代理和非代理 bean 都在com.mycompany.package1.

当然,当我们在 WAS 中运行应用程序时,所有这些都有效。它使用 ContextSingletonBeanFactoryLocator。我在 JUnit 中也尝试过,但似乎没有帮助。

谢谢你的帮助。

0 投票
2 回答
1877 浏览

java - 如何重构使用弹簧自动装配的代码库

我继承了两个相当重要的代码库,它们使用 spring 来配置应用程序。现在我需要重新配置应用程序。但是很多配置是通过自动装配提供的,因此几乎不可能找出实际配置是什么。

这些项目规模适中,每个项目大约有 20 个 maven 模块,包括集成测试模块等。大多数模块为各种目的定义了一些应用程序上下文,其中包含一两个本地 spring 配置文件以及它所依赖的核心模块中的一两个。结果是无数的配置,并且我无法更改类或变量名称(或 setter 方法)而不冒破坏某些上游或下游模块中的依赖关系的风险,即使在项目中的任何地方都看不到这样的依赖关系。

如何在 Spring 中有效地使用自动装配的依赖项?

任何人,也许是真正喜欢自动装配的人,都可以提供一些关于您如何有效地使用它们的见解吗?

(我还继承了一个小项目,它结合了 xml 文件、自动装配和注释驱动的配置,使依赖关系完全难以处理,但我将把这些注释保存起来,稍后再做一个单独的问题)

0 投票
1 回答
2302 浏览

grails - 通过自动装配的 Grails 依赖注入不起作用

我有一个名为 的服务Mailer和一个控制器,它应该使用这个服务:

但是当我打电话时,publish我得到:

为什么依赖注入在这里不起作用?

0 投票
6 回答
55345 浏览

java - @Autowired 对象获取空值

试图建立一个项目,但在通过 Spring 自动装配对象时失败。

当调用 cd.addContact 时,运行它会给我一个 NullPointerException。ContactDaoImpl:

我的小服务程序文件:

我的 hibernate.cfg.xml 文件:

我的 web.xml 文件:

我想错误是 SessionFactory 没有通过 @Autowired 正确初始化,但这是为什么呢?它可能是一个简单的目录结构/文件路径问题还是更复杂的问题?

提前致谢。

更新:ContactDAOImpl 类: