springboot 目錄結構
問題的發現&解決
之前一直沒有覺得目錄結構有多麼重要,一直到 後面的程式碼與預期不符時 ,經過長時間的分析以及 Spring包掃描機制的存在 發現可能是目錄結構 哪塊不對,或者是 在配置處 哪裡出了問題(註解 以及 application.properties的配置上)
在最開始的時候,主要 配置類 處(Application.java),我並沒有用@SpringBootApplication而是 使用 @EnableAutoConfiguration,然而通過 @RequestMapping註解 只能訪問到 主要配置類 裡面有@RequestMapping註解 的方法,其他包下的其他類中的其他方法 都不能通過 @RequestMapping註解 訪問。
這個 問題困擾了我很久,一直沒找出來 有什麼毛病,最後嘗試 將@EnableAutoConfiguration註解 替換為@SpringBootApplication註解後,問題 開始浮現
啟動springboot時,出現如下報錯資訊
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class:
URL[jar:file:/home/chanllen/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/1.2.5.RELEASE/spring-boot-autoconfigure-1.2.5.RELEASE.jar!/org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration$JdbcTemplateConfiguration.class];
This can happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake)
經過搜尋找到了答案:不應將Appication.java 檔案放在src/main/java下,要將它放在src/main/java下的根包裡(例如src/main/java/me/hugh 下),接著把其他包以及下面的類都移到 src/main/java/me/hugh 下,再次啟動就沒問題了
目錄結構
me
+- hugh
+- Application.java
|
+- domain
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- web
| +- CustomerController.java
|
- root package結構:me.hugh
- 應用主類Application.java置於root package下,通常我們會在應用主類中做一些框架配置掃描等配置,我們放在root package下可以幫助程式減少手工配置來載入到我們希望被Spring載入的內容
- 實體(Entity)與資料訪問層(Repository)置於me.hugh.domain包下
- 邏輯層(Service)置於com.hugh.service包下
- Web層(web)置於com.hugh.web包下
相關文章
- SpringBoot中的目錄結構Spring Boot
- fabric 目錄結構
- Tomcat目錄結構Tomcat
- PostgreSQL 目錄結構SQL
- Android 目錄結構分析Android
- 分析Angular目錄結構Angular
- Tomcat目錄結構解析Tomcat
- 系統目錄結構
- django的目錄結構Django
- linux的目錄結構Linux
- 程式碼目錄結構記錄
- 初識Linux目錄結構Linux
- Linux 目錄結構:/lib 分析Linux
- PostgreSQL:原始碼目錄結構SQL原始碼
- 2.3 sqlmap目錄及結構SQL
- postgre目錄結構簡介
- linux文件和目錄結構Linux
- Ubuntu系統目錄結構Ubuntu
- (一)Linux之目錄結構Linux
- ThinkPHP5.0目錄結構PHP
- Helm目錄結構講解
- SpringBoot 目錄帖Spring Boot
- (2)caffe總結之目錄結構
- DedeCMS模板目錄的檔案目錄結構
- Electron系列文章-程式目錄結構
- Linux學習——2 目錄結構Linux
- Android Studio目錄結構及工程專案結構解析Android
- Linux之旅第一篇-目錄結構及操作目錄Linux
- Kubernetes原始碼系列:Kubernetes目錄結構原始碼
- EOS原始碼分析(7)目錄結構原始碼
- 11_Linux目錄結構講解Linux
- 8.6 規劃合理的目錄結構
- DB2目錄結構簡介DB2
- Linux檔案系統目錄結構Linux
- yolov5-v7.0 目錄結構YOLO
- Linux 目錄結構及詳細操作Linux
- Linux具體目錄結構介紹!Linux
- CSS 實現樹狀結構目錄CSS
- Maven精選系列--標準目錄結構Maven