Ini adalah kali pertama saya membangunkan projek springboot secara bebas. Saya tidak menjangkakan akan begitu kecewa pada mulanya Tidak kira apa laluan yang saya akses, ia sentiasa mendapat 404. Saya menghabiskan hampir dua belas jam mencari ralat ini.
Laluan salah
Kelas aplikasi tidak berada dalam pakej yang sama dengan pakej pengawal
Selepas menunggu masalah, penyelesaian berikut mungkin membantu anda.
Konsol tidak melaporkan ralat apabila permintaan mengembalikan 404. Saya fikir ia adalah ralat Memulakan Spring DispatcherServlet 'dispatcherServlet'. Sebabnya ialah 404 dikembalikan apabila membuat permintaan, dan hanya tiga baris log muncul pada konsol:
Jadi saya telah mencari ralat yang berkaitan dengan Initializing Spring DispatcherServlet . Malangnya, saya telah mencari hampir semua blog dan masih tidak menyelesaikan masalah. Saya juga percaya bahawa saudara-saudara yang mencari log talian juga menghadapi masalah ini, tetapi apa yang saya ingin katakan di sini ialah baris log ini adalah perkara biasa. Saya mencipta semula projek springboot dan mendapati bahawa konsol juga akan mencetak tiga baris log ini apabila permintaan itu berjaya.
Salah Faham 2 adalah berdasarkan salah faham 1, kerana semua orang berpendapat bahawa Memulakan Spring DispatcherServlet adalah satu kesilapan, jadi mereka mencari kaedah yang berkaitan. Satu kaedah ialah membuat pengubahsuaian berikut dalam fail konfigurasi.
Tetapi mengikut pemerhatian saya, Initializing Spring DispatcherServlet hanya mencetak sekali sahaja semasa keseluruhan projek bermula, bermakna DispatcherServlet ini hanya dimulakan sekali. (Agak mengarut hahaha) Konfigurasi di atas adalah untuk memulakan DispatcherServlet apabila projek dimulakan Jika ia tidak ditetapkan atau ditetapkan kepada nombor negatif, maka DispatcherServlet dimulakan apabila permintaan pertama tiba. Anda boleh mencuba sendiri dan lihat jika anda menambah konfigurasi di atas dan kemudian memulakan projek, tiga baris log akan dicetak terus dan bukannya menunggu permintaan datang.
Masalahnya sebenarnya sangat mudah, kerana kami menggunakan anotasi @ComponentScan Dalam springboot biasa, tidak perlu menggunakan anotasi ini, jadi kelas aplikasi akan mengimbas secara automatik di mana ia berada. Tetapi jika anotasi ini digunakan, anotasi lalai akan menjadi tidak sah. Sebab untuk menggunakan anotasi @ComponentScan di sini boleh diubah. Saya memperkenalkan pergantungan pada penciptaan jadual automatik dan mengikuti tutorial untuk menambah ComponentScan ke kelas aplikasi Jadi penyelesaiannya adalah untuk menambah laluan pakej di mana kelas aplikasi berada.
Pada asasnya, saya masih tidak cukup sensitif terhadap anotasi ini dan menghabiskan banyak masa melakukan kerja yang sia-sia, tetapi mujurlah ia telah diselesaikan.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah akses springboot 404. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!