使用 Maven 测试时 Spring Boot 应用程序不读取 application.properties 文件

2023-12-19

UPDATE:

我现在意识到了一些事情。我的application.properties文件正在正确加载,因为我通过验证/env正在加载我的数据库属性的路径(感谢戴夫)。问题似乎是当我使用 Spring Boot maven 插件运行它时,它无法初始化我的dataSource.

mvn spring-boot:run

这会导致我的应用程序因错误而崩溃,因为其他 bean 无法初始化。奇怪的是它在 Eclipse 中运行良好。

我有一堂课叫DataService延伸JdbcTemplate. In my DataService构造函数,我注入DataSource.

@Component
public class DataService extends JdbcTemplate  {

  @Autowired
  public DataService(DataSource dataSource){
    super(dataSource);
  }
    ...more custom methods
}

我用这个DataService其他 bean 中的类来执行数据库操作。我的DataSource定义在我的application.properties file

spring.datasource.url: jdbc:h2:tcp://localhost/~/testdb2
spring.datasource.driverClassName: org.h2.Driver

这是我的Application.java class

@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableWebMvcSecurity
@EnableAsync
@EnableScheduling
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

当我尝试跑步时我第一次意识到这一点jUnit使用 Maven 进行测试

mavent test

我认为这只是与它的执行方式有关jUnit测试用例,但是当我只是尝试使用 Maven 运行应用程序时也会发生这种情况。

My JUnit4测试类定义如下:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes={Application.class})
@WebAppConfiguration
public class QuestionRepositoryIntegrationTests {
    ...methods
}

我使用了 Spring Boot 操作文档中的示例(https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html)

当我运行这个时JUnit来自 Eclipse 的类,它工作得很好。当它从 Maven 执行时,它开始按照我上面描述的方式运行。


尝试定义<resources>在 pom 的构建部分中标记,设置资源目录的路径,其中是application.properties:

<build>
        <resources>
            <resource>
                <directory>resources</directory>
                <targetPath>${project.build.outputDirectory}</targetPath>
                <includes>
                    <include>application.properties</include>
                </includes>
            </resource>
        </resources>
</build>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Maven 测试时 Spring Boot 应用程序不读取 application.properties 文件 的相关文章

随机推荐

  • 如果我不关闭 StardandInput,C# 重定向其他控制台应用程序 StandardOutput 会失败

    我的控制台应用程序遇到了一个棘手的问题 我试图从中重定向 StandardInput StandardOutput 和 StandardError 我已经为其他控制台应用程序找到了一个可行的解决方案 这对我来说并不是什么新鲜事 但这个应用程
  • 有序列表索引

    有什么方法可以获取a的编号 索引 li有序列表中的标签 我正在尝试获取侧面显示的数字 列表编号 我知道传统的方法是使用存储行号的 id 但这意味着如果在中间添加一行 则必须编辑大量 id 尽管我为此开发了一种算法 但它的效率并不高 我正在寻
  • Java中的2d ArrayList添加数据

    我在家庭作业上几乎不需要帮助 我必须创建一个 10 x 10ArrayList 不是数组 这就是我所拥有的 我只需要有关如何执行 for 循环将日期添加到 2D 的提示ArrayList 顺便说一下 这是为了放置成绩数据 从 100 到 8
  • 提取 Javascript 数字的指数和尾数

    有没有一种相当快速的方法可以从 JavaScript 中的数字中提取指数和尾数 AFAIK 没有办法获取 Javascript 中数字后面的位 这让我觉得我正在研究一个因式分解问题 找到m and n这样2 n m k对于给定的k 由于整数
  • || 到底是什么?意思是?

    return empty neededRole strcasecmp role admin 0 strcasecmp role neededRole 0 到底是什么 在这个声明中是什么意思 有人可以帮我把这个翻译成英文吗 我保证我已经用谷歌
  • 32 位应用程序未更新 64 位注册表项

    C 中提到的路径中的注册表项未更新 string path Software Microsoft Windows NT CurrentVersion Windows RegistryKey myKey Microsoft Win32 Reg
  • 绑定不适用于在 XAML 中创建的 DependencyObject

    我尝试使用自定义类在 XAML 中传递多个 CommandParameters 我创建了一个名为值命令参数继承自依赖对象并有两个依赖属性 我们称它们为Value1 and Value2对于这个例子 应该调用命令并传递该对象的按钮如下所示
  • 核心数据在后台保存对象问题

    简而言之 我想要做的是使用后台队列将从 Web 服务提取的 JSON 对象保存到 Core Data Sqlite3 数据库 保存发生在我通过 GCD 创建的序列化后台队列上 并保存到为该后台队列创建的 NSManagedObjectCon
  • Python:包中的“私有”模块

    我有一个包裹mypack带模块mod a and mod b在里面 我想要包裹本身mod a自由进口 import mypack import mypack mod a 不过 我想保留mod b专供mypack 那是因为它的存在只是为了组织
  • 如何在应用程序中使用 iPhone 铃声

    我想在我的应用程序中使用 iPhone 的铃声 这可能吗 请帮助我解决这一点 Thanks 您无法以编程方式使用或更改可用的铃声 很遗憾地说 苹果公司实在是太保守了
  • 添加 TabBarController 作为视图的子视图

    当我的应用程序启动时 我正在加载启动屏幕 然后我想加载一个TabBarController 它是ViewControllers 但是 我的 TabBarController 窗口无法缩放到屏幕尺寸 底部的 TabBar 的 3 4 可能被切
  • 用Windows Forms数据控件和DataTable实现图库式的显示?

    我有一个datatable看起来像下面这样 Room Cook Waiter BG Image 201 Joe Jim Green png 202 Jack Mary Red png 203 Jet Mark Yellow png 204
  • Google 登录 - “access_token”与“id_token”与“代码”

    在我们的网站中 我们过去在使用 Google Sign In 登录人员时使用 access token 首先 我们将用户重定向到 google 用户将 access token 带给我们 我们验证该令牌以确保该用户是实际的 Google 用
  • 无法让 ActiveMQ 重新发送我的消息

    我有一个用 Java 编写的单线程 ActiveMQ 使用者 我想做的就是从队列中接收 一条消息 尝试将其发送到网络服务 如果成功则确认 它 如果 Web 服务调用失败 我希望消息保留在队列中 并在超时后重新发送 除了重新发送部分之外 它或
  • 离开屏幕保护程序或锁定计算机后程序挂起

    我们的程序运行良好 直到有人锁定计算机或弹出屏幕保护程序 但不是 ctrl alt delete 一旦计算机解锁 屏幕保护程序关闭 应用程序就会停止绘制除标题栏之外的所有内容 并停止响应输入 它显示一个大部分为白色的窗口 无法移动或关闭 应
  • SignalR 来自客户端的多个并发调用

    我希望能够做这样的事情 IHubProxy myHubProxy var t1 Task Run gt myHubProxy Invoke
  • Python 字符串替换错误

    我有一个 python 脚本 它不断返回以下错误 类型错误 replace 至少需要 2 个参数 给定 1 个 我一生都无法弄清楚是什么原因造成的 这是我的代码的一部分 inHandler open inFile2 r outHandler
  • 如何在不关闭连接的情况下更改波特率?

    我想连接到一个连接到初始波特率300的串行端口 COM4 的设备 该设备可以使用命令将其波特率更改为9600 我的Java代码将此命令发送到设备并更改设备的波特率 但我不知道如何在不关闭连接的情况下更改程序中的波特率 当连接关闭时 设备恢复
  • log4net 日志文件名中没有进程 ID

    我试图在日志文件名中包含进程 ID 信息 以便每次重新启动应用程序时都会创建一个新的日志文件 我正在从两个项目登录到同一个文件中 这是我的配置
  • 使用 Maven 测试时 Spring Boot 应用程序不读取 application.properties 文件

    UPDATE 我现在意识到了一些事情 我的application properties文件正在正确加载 因为我通过验证 env正在加载我的数据库属性的路径 感谢戴夫 问题似乎是当我使用 Spring Boot maven 插件运行它时 它无