关于ClassPath的思考
写本文的由来,最近在细致的看Spring Boot的源码,在跟源码的时候遇到了这个 ConfigFileApplicationListener 类,他的作用是解析配置文件的,
但是我发现竟然没有load到配置文件。卧槽,什么情况。我最近搭个环境说实话一直在debug跟代码,确实一次都没跑起来,难道不行了?结果一跑果然不行,提示数据源没配。
但是我的配置文件里明明就配了。
我观察了下target下的路径
这个截图是我改好了之后的,红色框框是改之前没有的。
然后我改了下pom文件增加了如下的配置
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.yml</include> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.yml</include> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build>
红色部分是我后加的,在增加了resources之后 F:\springbootproject\demo\demo\target\classes 才会有了com这个文件夹
代码也能跑起来了
同时我在代码中打印了下classpath file:/F:/springbootproject/demo/demo/target/classes/ 而这个路径下的文件正式上面的截图
为啥不加resources就没有在classpath下创建出来com文件夹呢?
对此我还是没搞太明白,不过resources我是记住了很重要。