我将我的Spring Boot应用程序部署为Tomcat中的WAR文件.我期待我的application-local.properties覆盖我的application.properties文件中也存在的值.但似乎只有在application.properties中不存在这些键时才会读取application-local.properties中的值.我的application.properties文件位于我项目的src/main/resources /中,application-local.properties位于$ {catalina.home}/property_files/com/demo/config文件夹中
的context.xml
<Parameter name="spring.profiles.active" value="local" override="false"/>
Run Code Online (Sandbox Code Playgroud)
catalina.properties
shared.loader=${catalina.home}/property_files
Run Code Online (Sandbox Code Playgroud)
AppConfig.java
@Configuration
@PropertySources({
@PropertySource("classpath:application.properties"),
@PropertySource("classpath:com/demo/config/application-${spring.profiles.active}.properties")
})
public class AppConfig extends WebMvcConfigurerAdapter {
}
Run Code Online (Sandbox Code Playgroud)
编辑1:实际上,正在加载我的依赖于环境的属性文件.但它不会覆盖内部属性文件中的任何值.
编辑2:感谢您的所有建议.但我发现我的问题是由目录优先级引起的.事实证明,根类路径上的属性文件优先于任何属性文件,无论它们的声明顺序如何.
我目前正在将Java和Spring用于我的Web服务应用程序。我正在使用@RestController注释,希望不再需要使用@ResponseBody和@RequestBody注释。不幸的是,删除了@RequestBody注释会使序列化失败。
这是我的代码,没有将请求正文映射到我的方法参数,而我没有:
@RestController
@RequestMapping(value = "/member", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class MemberController {
@Autowired
private MemberService memberService;
@RequestMapping("/create")
public void create(Member member) {
memberService.create(member);
}
@RequestMapping("/read")
public Member read(Member member) {
return memberService.read(member);
}
@RequestMapping("/update")
public void update(Member member) {
memberService.update(member);
}
@RequestMapping("/delete")
public void delete(Member member) {
memberService.delete(member);
}
@RequestMapping("/retrieveById")
public Member retrieveById(Member member) {
return memberService.retrieveById(member);
}
@RequestMapping("/retrieveAll")
public List<Member> retrieveAll(Member member) {
return …Run Code Online (Sandbox Code Playgroud)