This is the first time I independently developed a springboot project. I didn't expect to be so frustrated at the beginning. No matter what path I accessed, it always got 404. I spent almost twelve hours looking for this error.
And exclude:
The path is written incorrectly
-
The application class is not in the same package as the controller package
After solving the problem, the following solutions may be helpful to you.
Misunderstanding 1:
The console does not report an error when the request returns 404. I thought it was an error of Initializing Spring DispatcherServlet 'dispatcherServlet'. The reason is that 404 is returned during the request, and only the console will have three more lines of logs:
So I have been searching for errors related to Initializing Spring DispatcherServlet. Unfortunately, I have searched almost all the blogs and still haven't solved the problem. I also believe that brothers searching for line logs have also encountered this problem, but what I want to say here is that this line of logs is normal. I recreated a springboot project and found that the console will also print these three lines of logs when the request is successful.
Misunderstanding 2:
Misunderstanding 2 is based on the above misunderstanding 1, because everyone thinks that Initializing Spring DispatcherServlet is a mistake, so they look for related methods. One method is to make the following modifications in the configuration file.
But based on my observation, Initializing Spring DispatcherServlet only prints once during the entire project startup, which means that this DispatcherServlet is only initialized once. (A bit nonsense hahaha) The above configuration is to initialize the DispatcherServlet when the project starts. If it is not set or set to a negative number, then the DispatcherServlet is initialized when waiting for the first request to arrive. You can try it yourself and see if you add the above configuration and then start the project, the three lines of logs will be printed directly instead of waiting for the request to come.
Problem Solution:
The problem is actually very simple, because we use the @ComponentScan annotation. In normal springboot, there is no need to use this annotation, so the application class will automatically scan where it is. All files of the package and sub-packages. But if this annotation is used, the default one will be invalid. The reasons for using the @ComponentScan annotation here can be varied. I introduced a dependency on automatic table creation and followed the tutorial to add a ComponentScan to the application class. So the solution is to add the package path where the application class is located.
Essentially, I am still not sensitive enough to these annotations and spent a lot of time doing useless work, but fortunately it was solved.
The above is the detailed content of How to solve springboot access 404 problem. For more information, please follow other related articles on the PHP Chinese website!

JavaachievesplatformindependencethroughtheJavaVirtualMachine(JVM),allowingcodetorunondifferentoperatingsystemswithoutmodification.TheJVMcompilesJavacodeintoplatform-independentbytecode,whichittheninterpretsandexecutesonthespecificOS,abstractingawayOS

Javaispowerfulduetoitsplatformindependence,object-orientednature,richstandardlibrary,performancecapabilities,andstrongsecurityfeatures.1)PlatformindependenceallowsapplicationstorunonanydevicesupportingJava.2)Object-orientedprogrammingpromotesmodulara

The top Java functions include: 1) object-oriented programming, supporting polymorphism, improving code flexibility and maintainability; 2) exception handling mechanism, improving code robustness through try-catch-finally blocks; 3) garbage collection, simplifying memory management; 4) generics, enhancing type safety; 5) ambda expressions and functional programming to make the code more concise and expressive; 6) rich standard libraries, providing optimized data structures and algorithms.

JavaisnotentirelyplatformindependentduetoJVMvariationsandnativecodeintegration,butitlargelyupholdsitsWORApromise.1)JavacompilestobytecoderunbytheJVM,allowingcross-platformexecution.2)However,eachplatformrequiresaspecificJVM,anddifferencesinJVMimpleme

TheJavaVirtualMachine(JVM)isanabstractcomputingmachinecrucialforJavaexecutionasitrunsJavabytecode,enablingthe"writeonce,runanywhere"capability.TheJVM'skeycomponentsinclude:1)ClassLoader,whichloads,links,andinitializesclasses;2)RuntimeDataAr

Javaremainsagoodlanguageduetoitscontinuousevolutionandrobustecosystem.1)Lambdaexpressionsenhancecodereadabilityandenablefunctionalprogramming.2)Streamsallowforefficientdataprocessing,particularlywithlargedatasets.3)ThemodularsystemintroducedinJava9im

Javaisgreatduetoitsplatformindependence,robustOOPsupport,extensivelibraries,andstrongcommunity.1)PlatformindependenceviaJVMallowscodetorunonvariousplatforms.2)OOPfeatureslikeencapsulation,inheritance,andpolymorphismenablemodularandscalablecode.3)Rich

The five major features of Java are polymorphism, Lambda expressions, StreamsAPI, generics and exception handling. 1. Polymorphism allows objects of different classes to be used as objects of common base classes. 2. Lambda expressions make the code more concise, especially suitable for handling collections and streams. 3.StreamsAPI efficiently processes large data sets and supports declarative operations. 4. Generics provide type safety and reusability, and type errors are caught during compilation. 5. Exception handling helps handle errors elegantly and write reliable software.


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

SublimeText3 English version
Recommended: Win version, supports code prompts!

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Dreamweaver CS6
Visual web development tools

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

SublimeText3 Mac version
God-level code editing software (SublimeText3)
