====工程結構圖
///////////////////////java屬性和加載器//////////////
/**
* 當測試類在 com.spt.example 下
* getResourceAsStream("test.txt") 會從com.spt.example包下開始找test.txt
* getResourceAsStream("/test.txt") 會從classpath根下開始找test.txt
*/
this.getClass().getClassLoader().getResourceAsStream("test.txt");
/**
* 不在乎是否/test.txt 或者test.txt 都會從classpath根下找
*/
ClassLoader.getSystemResourceAsStream("text.txt");
/**
* bootstrap classloader :負責加載JAVA核心類( jre 下lib和class目錄中的內容)
* extension classloader :負責加載JAVA擴展類(jre 下lib/ext 目錄中的內容)
* system classloader :負責加載應用指定的類 (環境變量classpath中配置的內容)
*/
/**
* bootstrap classloader :負責加載JAVA核心類( jre 下lib和class目錄中的內容)
* extension classloader :負責加載JAVA擴展類(jre 下lib/ext 目錄中的內容)
* system classloader :負責加載應用指定的類 (環境變量classpath中配置的內容)
*/
/**
* src/main/resources/test.txt 只能在開發工具中使用 打包和部署路徑無效
*
* org.springframework.util.ResourceUtils linux下無法使用
*
* org.springframework.core.io.ClassPathResource jvm下所有環境均可以使用
*
* org.springframework.core.io.ResourceLoader; jvm下所有環境均可以使用
*/