java - 无法让 Spring 依赖注入(inject)工作

标签 java spring dependency-injection annotations

我几乎是 Spring 的初学者,所以不要仅仅因为我没有提到某些事情就认为我可能已经这样做了。

我正在尝试让依赖注入(inject)工作,我得到了一个包含以下内容的 spring.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.1.xsd">

<context:annotation-config/>
<bean id="connection" class="richo.project.ConnectionImpl"/>
</beans>

然后在我的代码中我有:

private IConnection conn;
@Resource(name="connection")
public void setConn(IConnection conn){
this.conn = conn;
}

当我尝试在代码中使用 conn-object 时,出现空指针异常

请记住,我实际上并不知道 spring 是否正在运行,我正在使用 IntelliJ,它在我的 lib 目录中放置了 13 个与 spring 相关的 jar 文件,但我无法真正判断 Spring 是否正在尝试注入(inject)任何东西

最佳答案

仅在类路径中包含 Spring 不足以实现此目的。

必须要求 Spring 生成您需要的对象,以便遵守任何注释。这要么发生在 Spring 容器中,但对于独立应用程序,您需要有一个 Spring 上下文(例如 AnnotationConfigApplicationContext)并通过其 getBean() 方法询问它。

关于java - 无法让 Spring 依赖注入(inject)工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8693347/

相关文章:

c# - 通过 Controller Factory 注入(inject)实例

java - Google Cloud Endpoints - API 未更新

java - 即使我将 boolean 值设置为自动为假,如果语句也不起作用

java - 如何禁用在 IntelliJ IDEA 中显示 Spring @Value 注释的值?

java - 如何在 Spring Batch : Updated 中循环运行步骤

java - Spring ApplicationContext getBean 仅在 AutoWired 之前有效

java - Java中实现观察者模式,同一个观察者跨多个类

spring - 在事务服务调用中执行 JSR 303 验证

java - Maven 多模块 Spring Boot 项目

mysql - 在 .NET AWS Lambda 中使用 MySql.Data 和 D.I