在 war 打包 spring 引导中将文本文件放在哪里

where to put text file in war packing spring boot

我有一个 spring 引导 web 项目,我在几个文本文件中有某种 DB(数据库)(我不想使用 MongoDB 或 MySQL),我的整个项目都可以运行,但是一旦我将其打包到 war 中,它就会显示错误 500,并且无法找到这些包含重要信息的文本文件。

我需要将这些文本文件放在哪里?

考虑到您正在使用 Spring 启动,添加此依赖项,然后将其加载到您的启动应用程序::

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>spring-boot-jar-resources</artifactId>
    <version>1.3</version>
</dependency>



public static void main(String[] args) {
        StandardEnvironment environment = new StandardEnvironment();
        new SpringApplicationBuilder()
            .sources(SpringBootJarResourcesDemoApplication.class)
            .environment(environment)
            .resourceLoader(new JarResourceLoader(environment, "resources.extract.dir"))
            .build()
            .run(args);
    }

这是承诺的程序:- 将文件保存在 src\main\resources\secretdbfile.txt

@SpringBootApplication
    public class DemoApplication implements CommandLineRunner
    {
        final Logger LOGGER = LoggerFactory.getLogger(getClass());
                 
        public static void main(String[] args) 
        {
            SpringApplication app = new SpringApplication(DemoApplication.class);
            app.run(args);
        }
     
        @Override
        public void run(String... args) throws Exception 
        {
        
            try (InputStream inputStream = getClass().getResourceAsStream("/secretdbfile.txt");
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
           String contents = reader.lines()
               .collect(Collectors.joining(System.lineSeparator()));
           System.out.println(contents);
       }
        }
    }