我不确定这是否是一个有效的问题,但我想知道这是否可行.
Spring启动项目有一个application.properties和几个配置文件特定的属性.特定于配置文件的属性会覆盖已定义的application.properties以及application-profile.properties中已定义的任何属性,并且还会添加属于特定于配置文件的属性的属性.下图:
application.properties
key1=value1
key2=value2
Run Code Online (Sandbox Code Playgroud)
application-profile.properties
key1=valueProfile1
key3=valueProfile3
Run Code Online (Sandbox Code Playgroud)
当应用程序以此配置文件启动时,它看到的最终属性如下:
key1=valueProfile1
key2=value2
key3=valueProfile3
Run Code Online (Sandbox Code Playgroud)
简而言之,您具有公共属性和配置文件属性的并集,其中配置文件属性值附加并覆盖公共属性.
但是,如果在上帝知道什么情况下,我需要在公共application.properties中定义属性,但是当应用程序在一个特定的配置文件中启动时,我需要它"未定义".下图:
application.properties
keySpecial=specialValue
key1=value1
key2=value2
Run Code Online (Sandbox Code Playgroud)
application-special.properties
key1=valueSpecial1
//unset or undefine keySpecial
keyAlternateSpecial=specialAlternateValue
key3=valueSpecial3
Run Code Online (Sandbox Code Playgroud)
现在,当应用程序以这个"特殊"配置文件启动时,我希望它能够看到最终属性,如下所示:
keyAlternateSpecial=specialAlternateValue
key1=valueSpecial1
key2=value2
key3=valueSpecial3
Run Code Online (Sandbox Code Playgroud)
请注意,当应用程序在此特殊配置文件中运行时,未定义keySpecial,甚至不存在.
这可能吗?
注意:我知道我可以避免在公共application.properties中定义"keySpecial",并在所有其他特定于配置文件的属性中定义它们.并仅在"特殊"配置文件属性中指定"keyAlternateSpecial".
更多信息:
令我对此感到疑惑的场景是spring boot datasource jndi属性.来自文档
spring.datasource.jndi-name= # JNDI location of the datasource. Class, url, username & password are ignored when set.
Run Code Online (Sandbox Code Playgroud)
仅仅存在此属性会使应用程序忽略其他数据源属性(类,URL,用户名,密码),即使它们已设置.
我不允许从"application.properties"中删除jndi属性.但我想取消设置/取消定义它并在"特殊"配置文件属性中添加其他数据源属性(类,URL,用户名,密码).
我试图说服"更高层次"使用querydsl sql来保持持久性.但是他们更喜欢spring jdbctemplate,原因是它提供了最好的原始性能.
表现是我们对课程的首要要求.这就是为什么JPA根本不是一个选择.QueryDSL SQL开销是否过多,无法从我们的选项中解脱出来?
我想知道是否有任何"最近的"性能测试来显示querydsl sql如何使用jdbctemplate和jpa.
我遇到过这个.我想知道querydsl sql与jdbctemplate和jpa实现进行比较时的相对性能.