java - Spring注入(inject)不适用于不同的服务类

标签 java spring-mvc annotations

我有课

@Service("registrationService")
@Transactional
public class RegistrationService {

@Resource(name="registrationDAO")
 public RegistrationDAO registrationDAO;

在 Controller 中我可以毫无问题地访问registrationService和registrationDAO。

我还有一个类

@Service("securityService")
public class SecurityService implements UserDetailsService {

 protected static Logger logger = Logger.getLogger("service");

 @Resource(name="registrationDAO")
 public RegistrationDAO registrationDAO;


  public String test(){
        logger.debug(registrationDAO.findUserByID(1) );
    return "Testing";
  }

现在,如果我在 Controller 中调用测试函数,那么它会在注册DAO 上给出空指针异常

最佳答案

你所有的@Service , @Repository , @Controller , @Component (等)带注释的类必须由 spring 管理才能 Autowiring 工作。确保它们被 spring 类路径扫描找到:

<context:component-scan base-package="com.company" />

在某些情况下@Autowire ,它按类型进行 Autowiring ,有助于避免 name您提供的参数 @Resource

关于java - Spring注入(inject)不适用于不同的服务类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5437331/

相关文章:

java - 将属性 'source' 设置为“org.eclipse.jst.jee.server”(404 错误)

java - Spring Security如何允许匿名访问大多数站点限制某些操作

java - 我们应该@Override 接口(interface)的方法实现吗?

java - 如何使用itext中签名的pdf上的注释添加用户定义的外观图标?或者这可能吗?

java - 没有这样的定义异常 : Spring Famework 4 , Apache tiles 3 和 Tomcat 8

java - 如何在不使用注释的情况下创建 Spring Controller ?

java - PdfPTable元素: Japanese characters are not being displayed

java.security.SignatureException : Invalid encoding for signature. 签名已由 Azure 验证

java - mvn 测试 java.lang.OutOfMemoryError : unable to create new native thread

java - 如何使用 iText 库创建底部包含文本的条形码图像