关于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:springbootprojectdemodemo argetclasses 才会有了com这个文件夹

  代码也能跑起来了

  同时我在代码中打印了下classpath  file:/F:/springbootproject/demo/demo/target/classes/ 而这个路径下的文件正式上面的截图

  为啥不加resources就没有在classpath下创建出来com文件夹呢?

  对此我还是没搞太明白,不过resources我是记住了很重要。

原文地址:https://www.cnblogs.com/juniorMa/p/14180905.html