簡體   English   中英

@Autowire注解問題

[英]Problems with @Autowire annotation

在我的A類中,我正在自動裝配具有@Service批注的B類。 在我的B類中,我正在自動裝配C類,並在B類中的@Transactional方法內使用對該類的引用。

而且似乎自動接線沒有任何作用,因為我得到了java.lang.NullPointerException

A類示例:

@Controller
public Class controller{
   @Autowired
   private MyService myservice;
}

B級

@Service
public Class serviceImpl{
   @Autowired
   private DAOInterface dao;
   //nullpointer

   @Transactional
   public String getItem(){
    return dao.getItem(2);
   }

}

有幫助嗎?

如果要使用@Autowired注釋為您進行Spring接線,則需要注冊適當的BeanPostProcessor來提供幫助。 您可以讓Spring通過在Spring配置中包含以下元素來為您完成此操作:

<context:annotation-config/>

有關更多信息,請參閱Spring 3.0文檔中的3.9節

另外,由於似乎您使用的是@Component型注釋( @Component@Service @Controller@Service @Controller ),因此您可能正在嘗試放棄Spring XML接線(或減少接線)。 您將需要確保在Spring XML中包括component-scan元素。

注意:如果要包含component-scan ,則無需使用annotation-config元素。

<context:component-scan base-package="your.package.name"/>

有關更多信息,請參閱Spring 3.0文檔中的3.10節

確保以某種方式配置了DAO ...無論是使用xml配置中的注解(@ Service,@ Component,@ Repository),還是通過其他方式進行配置。

如果這樣做沒有幫助,我們將需要更多信息。

服務等級

@Service
public Class serviceImpl implements MyService {
   @Autowired
   private DAOInterface dao;
   //nullpointer

   @Transactional
   public String getItem(){
    return dao.getItem(2);
   }

}

spring-servlet.xml

<context:annotation-config/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM