`
have_life
  • 浏览: 152336 次
社区版块
存档分类
最新评论

@Autowired 的成员变量,报空指针错误

    博客分类:
  • java
 
阅读更多
比如 你
class LoginService {
   @Autowired
   private UserDao userDao;

   public void execute(){
       ...
       userDao.insert(...);
       ...
   }
}


里面的userDao这里报空指针错误,其中的一个原因是你没有给userDao这个成员变量写set方法,这样spring就没有办法帮你自动的装载。

---
我刚发现不是上面说的这个原因。


而是我在另外一个地方使用了LoginService,比如 TestAction吧

class TestAction{
   
     public void fun1(){
          LoginService loginService = new LoginService(); //错就在这里
          loginService......
     }
}

正确的做法:

class TestAction{
     @Autowired
     private LoginService loginService;

     public void fun1(){
         
          loginService......
     }
}

意思就是说,你不能自己人工的去new一个LoginService,这样做的话,spring是不会帮你
把LoginService里的那个需要被Autowired的userDao给装载上的。

你通过写
@Autowired
private LoginService loginService;

这样就是spring帮你把这个loginService给你实例化出来,那么在那个过程中,它就会帮你把里面的那个userDao根据你当初定义的方式给你装载上。

分享到:
评论

相关推荐

    通过@Autowired注解注入bean的顺序,以及@bean注入.rar

    `@Autowired`和`@Bean`是两个关键注解,它们在实现DI时起着重要作用。让我们深入探讨这两个注解的工作原理,以及它们在注入bean时的顺序。 `@Autowired`注解由Spring提供,用于自动装配bean的依赖。当我们在字段、...

    SSH笔记-通过@Autowired配置注入关系

    在Spring框架中,`@Autowired`注解是一个关键特性,用于自动装配Bean的依赖。它极大地简化了传统XML配置中的bean依赖注入过程。本笔记将深入探讨如何在Spring 4中利用`@Autowired`注解配置注入关系,以及它与前一篇...

    (转)Spring中@Autowired注解和@Resource注解的区别

    在Spring框架中,`@Autowired`和`@Resource`注解是两个常见的依赖注入(DI, Dependency Injection)工具,它们都是用来解决组件之间的耦合问题,使得代码更加灵活和可测试。然而,这两个注解在具体使用时有一些关键性...

    Spring@Autowired注解与自动装配.rar

    - **字段注入**:直接在成员变量上使用`@Autowired`,Spring会在初始化时注入对应的bean。 ```java @Autowired private MyService myService; ``` - **方法注入**:可以在setter方法或带有参数的方法上使用`@...

    Spring使用@Autowired注解自动装配

    在Spring框架中,`@Autowired`注解是一个关键特性,用于简化依赖注入的过程。依赖注入是一种设计模式,它允许我们解耦代码,提高模块的可测试性和可维护性。在这个主题中,我们将深入探讨`@Autowired`的工作原理、...

    【Java面试】@Resource 和 @Autowired 的区别.doc

    在使用 @Autowired 注解时,如果在 Spring IOC 容器里面存在多个相同类型的 Bean 实例,那么 Spring 启动的时候,会提示一个错误,大概意思原本只能注入一个单实例 Bean,但是在 IOC 容器里面却发现有多个,导致注入...

    HibernateDaoSupport 与@Autowired

    在Java开发领域,尤其是Spring框架的应用中,`HibernateDaoSupport`和`@Autowired`是两个非常重要的概念。它们分别代表了Hibernate对DAO层的支持以及Spring框架的依赖注入机制。接下来,我们将深入探讨这两个知识点...

    Spring In Action 使用@Autowired 和@ Resource 自动装配Bean

    在Spring框架中,`@Autowired`和`@Resource`都是用于自动装配Bean的重要注解,它们简化了依赖注入的过程,使得代码更加简洁、易于维护。本文将深入探讨这两个注解的使用、区别以及如何在实际开发中应用它们。 首先...

    @Autowired 注解是如何实现的?(csdn)————程序.pdf

    【@Autowired注解详解及其实现原理】 在Spring框架中,`@Autowired`注解是核心的依赖注入(Dependency Injection,DI)工具,它允许开发者自动地将Bean实例注入到需要的地方,无需显式地通过setter方法或构造函数来...

    Spring注解@Resource和@Autowired.doc

    Spring 注解@Resource 和@Autowired Spring 框架中提供了两个重要的注解,分别是@Resource 和@Autowired,它们都是用于 bean 的自动装配的。了解这两个注解的区别和使用场景是非常重要的。 首先,@Autowired 是 ...

    Intellij IDEA如何去掉@Autowired 注入警告的方法

    这是因为Field注入会带来两个问题:当注入的对象依赖其他对象,而被依赖的对象没被创建的话就会出现空指针异常。这样的类没办法在容器之外被重用,也不能期望反射提供其所需的依赖。 构造器注入是一种非常好的方法...

    Spring @Autowired

    `@Autowired`注解可以用于字段、方法和构造函数,表明Spring容器会在运行时自动为这些成员提供合适的依赖。例如: ```java @Service public class UserService { private final UserRepository userRepository; ...

    12 @Autowired是如何工作的?-Spring注解源码深度揭秘-慕课专栏1

    当Spring容器启动时,它会扫描所有配置的Bean定义,查找带有`@Autowired`注解的成员。对于字段和setter方法,Spring会基于类型匹配原则找到合适的依赖进行注入;对于构造函数,如果有多个符合类型的构造函数,Spring...

    因Spring AOP导致@Autowired依赖注入失败的解决方法

    Spring AOP 导致@Autowired 依赖注入失败的解决方法 Spring AOP(Aspect-Oriented Programming,面向切面编程)是一种编程技术,它允许开发者在不修改源代码的情况下,增加新的功能。然而,在使用 Spring AOP 时,...

    Spring使用@Autowired为抽象父类注入依赖代码实例

    Spring使用@Autowired为抽象父类注入依赖代码实例 Spring框架中,使用@Autowired注解可以将依赖项注入到Bean中,但是当我们需要将依赖项注入到抽象父类时,会遇到一些问题。如果我们直接使用@Autowired注解在抽象...

    自定义标签中@Autowired的属性为null

    自定义标签中@Autowired的属性为null 解决办法:两步 1.新建一个类SpringContext,实现接口ApplicationContextAware; 2.spring.xml中添加 3.使用SpingContext.getBean("bean名");获取

    Spring Ioc源码分析系列--@Autowired注解的实现原理.doc

    Spring Ioc源码分析系列--@Autowired注解的实现原理 @ Автоwired注解是 Spring Framework 中的一个重要组件,它提供了自动装配的功能,能够将 Bean 之间的依赖关系自动解析和注入。今天,我们将深入探讨 @...

    详解Spring依赖注入:@Autowired,@Resource和@Inject区别与实现原理

    Spring 依赖注入:@Autowired,@Resource 和@Inject 区别与实现原理 Spring 依赖注入是指在应用程序中将对象之间的依赖关系自动装配的过程。Spring 框架提供了多种依赖注入方式,包括 @Autowired、@Resource 和@...

    详解SpringBoot 多线程处理任务 无法@Autowired注入bean问题解决

    但是在多线程处理任务中,当我们使用 @Autowired 注入 bean 时,会出现空指针异常。这是为什么呢? 原因分析: 在 SpringBoot 应用程序中,bean 的注入是通过 ApplicationContext 来实现的。在多线程处理任务中,每...

    Spring的Autowired自动装配(XML版本+Annotation版本+源码+解析)

    Spring框架的@Autowired自动装配是其依赖注入(Dependency Injection, DI)机制的核心部分,它极大地简化了Java应用的组件装配和管理。本篇文章将深入探讨@Autowired的XML版本、Annotation版本以及源码层面的理解,...

Global site tag (gtag.js) - Google Analytics