search
HomeJavajavaTutorialWhat are the reasons why SpringBoot @Autowired injection is empty?

    Interpretation of @Autowired injection being empty

    Due to the recent encounter in development when using @Autowired annotation to automatically assemble, a null pointer will be reported, and I found that The object was not assembled. Through query, several possible reasons for this situation were summarized.

    1. In the simplest case, check the assembled class, that is, whether the class under the @Autowired annotation has added annotations and handed them over to SpringBoot for hosting, @service and other annotations, or directly added @Component annotation.

    2. Check whether your xxxxxApplication is in the root directory, because springboot scans the directory under the startup class by default (I remember this is only limited to versions before Springboot2.0.5, because the new version can be annotated through @ComponenScan Specify the scan range).

    3. Spring annotations such as @Service, @Componet, @Configuration, and @Repository were not scanned. For example: springboot's main class scanning rules mean that you need to check your Springboot startup class, xxxxxApplication, and check the startup Whether the @ComponenScan annotation is added to the annotation on the class and whether the scan range is specified.

    Two annotation configuration methods for using springboot to start class configuration scanning:

    • 1, @Controller @EnableAutoConfiguration @ComponentScan.

    • 2, @SpringBootApplication

    4. Use the emergency method. If the cause is not found, we will use other methods to make the program work first. Run and debug normally, and then look for problems later.

    @Autowired
     private SchedulerFactoryBean schedulerFactoryBean;
        
     private static QuartzManager quartzManager;
        
     /**
      * 通过@PostConstruct实现初始化bean之前进行的操作
      * @desc 初始化操作,得到QuartzManager实例
      * @Date 2019年1月7日
      */
     @PostConstruct 
     public void init() {  
          quartzManager = this;  
          quartzManager.schedulerFactoryBean = this.schedulerFactoryBean;        
    }

    Use @PostConstruct to initialize.

    5. This reason is very important and is also a factor that is often ignored. The caller comes from new. If there is a member property B in class A, B is automatically injected through @Autowired, and the instance of class A is generated through new, then the automatic injection will be invalid. At this time, all Bean methods are obtained through the Spring context. Get B. At this time, take a look at the class you are reporting a null pointer to see if it was created by new. If so, you might as well use the SpringUtil.getBean() method to replace it, and then try again!

    @Autowired injected bean cannot find exception

    Exception description

    ********************** ********
    APPLICATION FAILED TO START
    ******************************

    Description:

    Field clientAuthService in com.yinhai.mzgh.eurekaclient.feign.interceptor.Oauth3RequestInterceptor
    required a bean of type 'com.yinhai.mzgh.eurekaclient.feign.service.ClientAuthService' that could not be found.

    The injection point has the following annotations:
    - @org.springframework.beans.factory.annotation.Autowired(required=true)


    Action:

    Consider defining a bean of type 'com.yinhai.mzgh.eurekaclient.feign.service.ClientAuthService' in your configuration.

    Cause of the problem

    This problem It's an environmental problem. It was the dev environment before in Profiles

    What are the reasons why SpringBoot @Autowired injection is empty?

    The above is the detailed content of What are the reasons why SpringBoot @Autowired injection is empty?. For more information, please follow other related articles on the PHP Chinese website!

    Statement
    This article is reproduced at:亿速云. If there is any infringement, please contact admin@php.cn delete
    How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log?How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log?Apr 19, 2025 pm 11:45 PM

    Start Spring using IntelliJIDEAUltimate version...

    How to elegantly obtain entity class variable names to build database query conditions?How to elegantly obtain entity class variable names to build database query conditions?Apr 19, 2025 pm 11:42 PM

    When using MyBatis-Plus or other ORM frameworks for database operations, it is often necessary to construct query conditions based on the attribute name of the entity class. If you manually every time...

    How to use the Redis cache solution to efficiently realize the requirements of product ranking list?How to use the Redis cache solution to efficiently realize the requirements of product ranking list?Apr 19, 2025 pm 11:36 PM

    How does the Redis caching solution realize the requirements of product ranking list? During the development process, we often need to deal with the requirements of rankings, such as displaying a...

    How to safely convert Java objects to arrays?How to safely convert Java objects to arrays?Apr 19, 2025 pm 11:33 PM

    Conversion of Java Objects and Arrays: In-depth discussion of the risks and correct methods of cast type conversion Many Java beginners will encounter the conversion of an object into an array...

    How do I convert names to numbers to implement sorting and maintain consistency in groups?How do I convert names to numbers to implement sorting and maintain consistency in groups?Apr 19, 2025 pm 11:30 PM

    Solutions to convert names to numbers to implement sorting In many application scenarios, users may need to sort in groups, especially in one...

    E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products?E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products?Apr 19, 2025 pm 11:27 PM

    Detailed explanation of the design of SKU and SPU tables on e-commerce platforms This article will discuss the database design issues of SKU and SPU in e-commerce platforms, especially how to deal with user-defined sales...

    How to set the default run configuration list of SpringBoot projects in Idea for team members to share?How to set the default run configuration list of SpringBoot projects in Idea for team members to share?Apr 19, 2025 pm 11:24 PM

    How to set the SpringBoot project default run configuration list in Idea using IntelliJ...

    See all articles

    Hot AI Tools

    Undresser.AI Undress

    Undresser.AI Undress

    AI-powered app for creating realistic nude photos

    AI Clothes Remover

    AI Clothes Remover

    Online AI tool for removing clothes from photos.

    Undress AI Tool

    Undress AI Tool

    Undress images for free

    Clothoff.io

    Clothoff.io

    AI clothes remover

    Video Face Swap

    Video Face Swap

    Swap faces in any video effortlessly with our completely free AI face swap tool!

    Hot Tools

    Notepad++7.3.1

    Notepad++7.3.1

    Easy-to-use and free code editor

    Dreamweaver Mac version

    Dreamweaver Mac version

    Visual web development tools

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    Powerful PHP integrated development environment

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

    Integrate Eclipse with SAP NetWeaver application server.

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software