What 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
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!

Start Spring using IntelliJIDEAUltimate version...

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...

Java...

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...

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...

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

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 SpringBoot project default run configuration list in Idea using IntelliJ...


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

Dreamweaver Mac version
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

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