当前位置: 首页 > 知识库问答 >
问题:

用Spring注入bean时的nullPointerException

许正平
2023-03-14

我是Spring3.2.5的新手,我正尝试将一个bean作为属性注入另一个bean中,但当我想使用该属性时,它总是为空。

我使用的配置如下:

ApplicationContext.xml:

<bean id="subscriptionService" class="fake.services.SubscriptionService">
</bean>

<bean id="restController" class="fake.RestController">
    <property name="subscriptionService" ref="subscriptionService"></property>
</bean>

restController.java:

@Path("/")
@Secured("ROLE_USER")
public class RestController {

protected ISubscriptionService subscriptionService;



/**
 * @return the subscriptionService
 */
public ISubscriptionService getSubscriptionService() {
    return subscriptionService;
}

/**
 * @param subscriptionService the subscriptionService to set
 */
public void setSubscriptionService(ISubscriptionService subscriptionService) {
    this.subscriptionService = subscriptionService;
}

}

ISubScriptionService.java:

public interface ISubscriptionService {

public UUID subscribe();

}
 public class SubscriptionService implements ISubscriptionService {

/**
 * 
 */
public SubscriptionService() {
}

/**
 * Subscribes a user and returns a uuid for the queue
 * @return  the uuid for the queue
 */
public UUID subscribe() {
    return UUID.randomUUID();
}

}

我得到的错误是:

共有1个答案

盖向荣
2023-03-14

是否实现了isubscriptionservice接口?applicationcontext.xml中的subscriptionservicebean应该引用该接口的实现。

 类似资料:
  • 问题内容: 我试图将在Spring上下文中定义的bean注入到CDI托管组件中,但没有成功。不会注入Bean,而是在每次执行注入时都会创建一个新实例。我的环境是带有JBoss Weld的Tomcat 7。 Spring ApplicationContext很简单: CDI托管bean如下所示: 这是我的 但是,当我从JSF页面访问属性时,每次访问时都会创建一个新实例。这是一个简单的示例: 我得到以

  • 问题内容: 是否可以将Spring bean注入RestEasy @Path类中?我设法通过Jersey并使用@InjectParam注释完成了此操作,但是由于某些其他原因,我需要切换到RestEasy,而且我似乎找不到解决方法(尝试了javax.inject.Inject,但没有)。 编辑 此解决方案有效:http : //www.mkyong.com/webservices/jax-rs/re

  • 主要内容:构造函数注入,setter 注入,短命名空间注入所谓 Bean 属性注入,简单点说就是将属性注入到 Bean 中的过程,而这属性既可以普通属性,也可以是一个对象(Bean)。 Spring 主要通过以下 2 种方式实现属性注入: 构造函数注入 setter 注入(又称设值注入) 构造函数注入 我们可以通过 Bean 的带参构造函数,以实现 Bean 的属性注入。 使用构造函数实现属性注入大致步骤如下: 在 Bean 中添加一个有参构造函数,构造

  • 问题内容: 我已经用spring和spring security开发了一个简化的Web应用程序…现在,我想添加ejb模块来进行数据库访问,我在Internet上查找,但是由于它是我第一次使用EJB,所以我没有找到明确的东西。我想在控制器中使用类似@EJB之类的东西” 以及在有教程或其他帮助的情况下如何在Spring上下文中对其进行配置。很好,谢谢 问题答案: 要将ejb 3 bean注入sprin

  • 我正在使用Spring Framework/Data/HATEOAS,并试图添加dozer。 和以下汇编程序: 所以,-我对豆子和注射很陌生-但我想工厂的豆子是?应该?来注入映射器。但是映射器肯定是空的。我知道我做得不对,但我做错了什么?

  • 我正在开发一个遗留的JSF应用程序,我们正在慢慢地将其移植到Spring MVC。我们正在使用Spring Security来控制登录信息。在用户登录之后,JSF页面全局地实例化一个在任何地方都使用的会话作用域bean。我想更改应用程序,这样我们就可以先进入用Spring MVC开发的页面。 我尝试的一种方法是将bean转换为spring bean,并将其注入JSF,但不幸的是,这需要对bean进