我在Intellij中运行SpringBoot应用程序时遇到一些问题。 @SpringBootApplication位于子模块中
└── conf
└── xml
└──beans.xml
└── source
└── core
└── common
└── MainApplication.java --> @SpringBootApplication
└── config
└── pom.xml --> parent
MainApplication.java具有注释 @ImportResource(“ classpath:/beans.xml”)
@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan(basePackages = {"com.xxx.yyy"})
@EnableCaching
@ImportResource("classpath:/beans.xml")
public class ServiceApplication extends SpringBootServletInitializer implements WebApplicationInitializer // extends SpringBootServletInitializer implements WebApplicationInitializer
{
“ config”模块具有pom.xml,没有Java文件。它只会产生资源
<artifactId>config</artifactId>
<properties>
<environment>DEV</environment>
<country>ID</country>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<build>
<filters>
<filter>../../build/server.properties</filter>
</filters>
<resources>
<resource>
<directory>../../conf</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/**/log4j2.xml</exclude>
</excludes>
<targetPath>../../../../deploy/conf</targetPath>
</resource>
...
我试图在Intellij上运行配置,但是它为文件bean.xml生成错误FileNotFoundException。此配置已在其他队友的Eclipse上运行过。我想在Intellij上运行它。我已经在项目结构中导入了配置模块,并且conf文件夹已经被标记为Resource Root。为什么它仍然不起作用?或者,如果我必须将更改附加到现有的Java文件或pom,则可以。只要应用程序可以找到通往资源文件夹的路径。我不需要构建战争并运行它,但是我只想作为SpringBoot应用程序运行
谢谢。任何帮助将不胜感激。
答案 0 :(得分:0)
答案 1 :(得分:0)
首先:从/
中删除开头的@ImportResource("classpath:/beans.xml")
。
这应该是:
@ImportResource("classpath:beans.xml")
第二:处理资源后,检查beans.xml
是否已复制到项目构建目录。
beans.xml
的默认位置为target/classes/beans.xml
。
答案 2 :(得分:0)
从@ImportResource(“ classpath:/beans.xml”)删除前导/。
应为:@ImportResource("classpath:beans.xml")
检查源文件beans.xml是否已复制到构建目录:Path:/target/classess/beans.xml
如果尚未将beans.xml放置在源文件夹中,请提供实际路径或将其放置在资源文件夹中