java - Spring Injected Bean 属性为空

标签 java spring

我对注入(inject) bean 的整个想法还很陌生,所以慢慢说。 :)

我有一个注入(inject) bean 的类,但是当访问该属性时,该属性为 null,我得到一个空指针异常。

来自/project-TRUNK/war-module/src/main/webapp/WEB-INF/spring-config/spring-bean.xml

 <bean id="linkCheck"
  class="com.dogwatch.util.LinkCheck">
  <property name="linkDao" ref="jdbcLinkDao" />
 </bean>

来自/project-TRUNK/war-module/src/main/webapp/WEB-INF/spring-config/spring-dao.xml

 <bean id="jdbcLinkDao" class="com.dogwatch.util.jdbcLinkDao">
  <property name="dataSource" ref="dataSource" />
  <property name="linkJdbcDataTypesSupport" ref="linkJdbcDataTypesSupport"/>
 </bean>

众所周知,DAO bean 非常好并且可以在其他几个类中使用。

package com.dogwatch.util;
public class LinkCheck {

 private LinkDAO linkDao;


 public LinkDAO getLinkDao() {
  return linkDao;
 }

 public void setLinkDao(LinkDAO linkDao) {
  this. linkDao = linkDao;
 }
}

我一直在将它与使用相同 DAO bean 的其他类进行比较,但我找不到任何差异。

我确实看到 bean 被定义在:

INFO [2010-01-15 01:10:05,838] [main] [XmlBeanDefinitionReader] [XmlBeanDefinitionReader.java:323] - Loading XML bean definitions from URL [file:war-module/src/main/webapp/WEB-INF/spring-config/spring-dao.xml] INFO [2010-01-15 01:10:05,858] [main] [XmlBeanDefinitionReader] [XmlBeanDefinitionReader.java:323] - Loading XML bean definitions from URL [file:war-module/src/main/webapp/WEB-INF/spring-config/spring-bean.xml] INFO [2010-01-15 01:10:06,597] [main] [DefaultListableBeanFactory] [DefaultListableBeanFactory.java:414] - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@3c01d5a0: defining beans [(snip) jdbcLinkDao, linkCheck(snip)businessLoggingAspect,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#1]; root of factory hierarchy

有没有人对如何解决 bean 注入(inject)问题有任何建议?

最佳答案

我正在扩展我对 OP 问题的评论,因为它似乎有帮助......

我们仍然缺少一些信息,例如使用 linkCheck bean 的代码如何获取它?也是注入(inject)的吗?您是否从 Spring 上下文中检索它?我假设您没有执行 new LinkCheck(),但由于您是 Spring 的新手,所以这是一个明智的开始问题。

如果 Spring 控制 bean 的创建,它只能注入(inject) bean:如果你执行 new MyClass() 那么 Spring 容器不知道该对象并且不能进行注入(inject).

关于java - Spring Injected Bean 属性为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2070079/

相关文章:

java - 您可以在 Ubuntu 18.04.3 "bionic"上使用 GCP 上的 OpenJDK 将 rundeck 直接从 3.0.22 升级到 3.2.1 吗?

java - Spring Data JPA findById() 抛出 ClassCastException

java - 如果我有一个复杂的响应对象,如何使用 JsonIninclude 注释忽略空值

java - 如何启动 aicas license provider ?并使用 jamaicaVM 调用文件?

java - Jackson JSON 处理键名称 = ognl 名称

java - Spring Batch 如何以 Reader 身份读取多个表(查询)并将其写入平面文件写入

java - Spring Data JPA 何时实际调用数据库上的 INSERT?

java - @Autowired 在 Spring 和 Vaadin 集成中不起作用

java - 如何将HTTP GET请求参数绑定(bind)到JavaBean对象变量?

java - Android在循环中获取页面源