详解springboot设置默认参数Springboot.setDefaultProperties(map)不生效解决
我们都知道springboot由于内置tomcat(中间件)直接用启动类就可以启动了。
而且我们有时想代码给程序设置一些默认参数,所以使用方法Springboot.setDefaultProperties(map)
SpringApplicationapplication=newSpringApplication(startClass); // Mapparams=newHashMap<>(); params.put("lai.ws.test","test"); application.setDefaultProperties(params); ApplicationContextcontext=application.run(startClass,args);
于是启动后发现lai.ws.test居然是null,也就是参数设置不成功,百思不得其解。为此还断点进入SpringApplication的源码里。最后发现以下源码
/** *Statichelperthatcanbeusedtoruna{@linkSpringApplication}fromthe *specifiedsourcesusingdefaultsettingsandusersuppliedarguments. *@paramprimarySourcestheprimarysourcestoload *@paramargstheapplicationarguments(usuallypassedfromaJavamainmethod) *@returntherunning{@linkApplicationContext} */ publicstaticConfigurableApplicationContextrun(Class>[]primarySources, String[]args){ returnnewSpringApplication(primarySources).run(args); }
各位,发现了没,又new了一个SpringApplication。到此,问题答案找到了。
如果启动类要设置默认参数,不用使用以下方法去启动
ApplicationContextcontext=application.run(startClass,args);
应该使用以下
ApplicationContextcontext=application.run(args);
到此这篇关于详解springboot设置默认参数Springboot.setDefaultProperties(map)不生效解决的文章就介绍到这了,更多相关Springboot.setDefaultProperties不生效内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。