我有1个Spring
Boot应用程序。在此应用程序中,我已将1个电子商务系统配置为弹性路径(在application.properties文件中配置弹性路径的终点网址)。现在,我必须将我的spring
boot应用程序交给其他一些人。它将部署在tomcat服务器上。我不想提供源代码。因此,我可以制作战争文件,但现在的问题是,他们拥有自己的弹性路径电子商务,并且他们想配置自己的电子商务。
我想外部化一些将覆盖现有属性的属性。
我的springboot应用程序有2个模块:1)具有elasticpath-
application.properties的elasticpath模块2)salesforce-salesforce-
application.properties
现在,我必须外部化“ C:\ apache-tomcat-8.5.29 \ conf \ ep-
external.properties”文件,该文件将覆盖现有属性。现在的问题是@PropertySource正在加载到最后一个位置。因此,我的外部文件无法覆盖该属性。
@SpringBootApplication
@PropertySource(value = {"classpath:application.properties", "classpath:elasticpath-application.properties", "classpath:salesforce-application.properties")
public class SpringBootDemo extends SpringBootServletInitializer implements CommandLineRunner {
private static final Logger LOG = LoggerFactory.getLogger(SpringBootDemo.class);
private ServletContext servletContext;
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
//application = application.properties("file:C:\\apache-tomcat-8.5.29\\conf\\ep-external.properties");
return application.sources(SpringBootDemo.class);
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
this.servletContext = servletContext;
super.onStartup(servletContext);
}
public static void main(String[] args) {
SpringApplication.run(SpringBootDemo.class, args);
}
@Override
public void run(String... args) throws Exception {
}
}
是的,绝对有可能。基本上,您需要按需更改属性值而无需更改jar / war
为jar传递命令行args
将spring boot应用程序打包为jar并将外部application.properties文件放在任何位置,并与命令行参数传递相同的位置如下 :
java -jar app.jar --spring.config.location=file:<property_file_location>
这将获取外部属性。
为战争传递命令行/动态参数
1.如下扩展SpringBootServletInitializer
@SpringBootApplication
class DemoApp extends SpringBootServletInitializer {
private ServletContext servletContext;
public static void main(String[] args){SpringApplication.run(DemoApp.class,args);}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
builder = builder.properties("test.property:${test_property:defaultValue}");
return builder.sources(DemoApp.class)
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
this.servletContext = servletContext;
super.onStartup(servletContext);
}
}
@Value(“ $ {test.property}”)
另外:
如果您想提供完整的文件作为外部文件,也可以传递如下所示的属性。
.properties("spring.config.location:${config:null}")
有关外部化配置的进一步阅读:https :
//docs.spring.io/spring-boot/docs/current/reference/html/boot-features-
external-config.html
问题内容: 我的应用程序将PDF打印到一个临时文件。如何使用Python中的默认应用程序打开该文件? 我需要一个解决方案 window Linux(如果没有更通用的功能,则使用带有Xfce的Ubuntu)。 问题答案: os.startfile暂时仅适用于Windows,但是xdg- open 将在运行X的任何UNIX客户端上可用。
问题内容: 我在业余时间正在编写django应用程序,以参加我们正在开展的艰巨竞赛。我认为我会明智地使用这段时间,并加快使用virtualenv,pip,打包,django 1.3以及如何编写易于重新分发的应用程序的速度。到现在为止还挺好。 我要负责包装部分。例如,GitHub上的许多django应用程序大多数都(大致)以相同的方式捆绑在一起。我将以django-uni-forms为例。 我所做的
Fof简单方便,这里引用我的代码。 第一个类,学生(存储在db中的实体): 接口,StudentDAO(用于DAO逻辑): 最后一个类,MainApp(运行应用程序): 最后,配置数据库连接的Beans文件: 该教程非常清楚,如果我尝试它,将会有一个完美的执行,没有错误,MySQL Db被正确地更新。 spring.datasource.driver-class-name=com.mysql.jd
我正在尝试在我的Spring Boot(1.2.0.m1)应用程序中设置HikariCP,这样我就可以使用它来代替Tomcat DBCP进行测试。我想在application.properties文件中配置连接池,就像使用Tomcat一样,但我不知道应该怎么做。我找到的所有示例都显示JavaConfig样式,或者使用单独的HikariCP属性文件。有人能帮我找出属性名称来在application.
为了在bash和fish中创建更简单的别名,我编写了两个初学者函数。我尝试了两种捕获文件参数的方法,如上图所示。他们两个都不工作。相反,我收到了以下消息。 说我正在打开文件。在nteractstarted.ipynb。 这将显示在我的控制台中,并打开带有空笔记本的默认Interact实例。记事本和其他文件也是如此。 在这里插入一条抱怨,与Linux shell相比,让此功能正常工作是多么令人困惑。
问题内容: 因此,我正在考虑在使用OpenCV的应用程序的开发中使用哪种语言。作为我决定的一部分,我想知道在最终应用程序中包含opencv库有多么容易/困难。我真的很想用python写这个,因为opencv绑定很棒,python很容易等等。 但是我还没有找到明确的答案,例如“当py2app看到导入cv行时会自动捆绑opencv”(我认为不是),如果没有,那么有一种已知的方法吗? 总的来说,我想知道
问题内容: 我正在尝试在我的Spring Boot(1.2.0.M1)应用程序中设置HikariCP,以便可以测试使用它来代替Tomcat DBCP。我想像在使用Tomcat一样在我的application.properties文件中配置连接池,但是我不知道该怎么做。我发现的所有示例都显示JavaConfig样式,或使用单独的HikariCP属性文件。有人可以帮我找出属性名称以在applicati