我有一个使用jhipster生成的Spring Boot应用程序,它运行正常.但是,我还需要为某些后台批处理作业创建第二个应用程序,并且此应用程序使用第一个应用程序的大多数spring服务.我所做的是创建第二个主类,它启动一个Spring启动应用程序.问题是这也启动了嵌入式Web服务器以及仅对Web应用程序有用的所有服务.我只需要服务,持久性和其他与GUI无关的类.
这是我的两个主要类(简化)
正常的spring-boot应用程序:
@ComponentScan
@AutoConfigure
class Application {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class)
app.run(args)
}
}
Run Code Online (Sandbox Code Playgroud)
后台应用程序:
@ComponentScan
@AutoConfigure
class BackOfficeApplication {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(BackOfficeApplication.class)
app.run(args)
}
}
Run Code Online (Sandbox Code Playgroud)
什么有效:我的后台应用程序可以访问我需要的一切.Spring服务,bean等问题:后台应用程序启动GUI,阻止我同时启动它两次.
有没有办法停用嵌入式tomcat服务器的启动?否则,有没有办法以另一种不启动嵌入式服务器的方式加载spring应用程序上下文?
一些细节:*我没有使用mvn spring-boot:run启动应用程序.我直接用java(或使用eclipse)启动类
我有一个包含这种字符串的变量:
var='$FOO/bar/baz*'
Run Code Online (Sandbox Code Playgroud)
我想用它的内容替换变量$ FOO.但是,当我这样做的时候
var=$(eval "echo $var")
Run Code Online (Sandbox Code Playgroud)
该变量被替换,但是星号也被替换,因此var现在包含我的文件系统中的每个可能的匹配(就好像我按下了shell中的tab).例如,如果$ FOO包含/ home,var将包含"/home/bar/baz1.sh /home/bar/baz2.sh /home/bar/baz.conf"
如何在不扩展通配符的情况下替换变量?
假设我有一个包含以下列的表:
场1 | 场2 | field3 | 字段4
我想在此表中插入多行,但field1,field2和field3的值对于每一行都是相同的.只有field4的值会改变.
显然我可以单独插入每一行,但结果查询会有点难看,我想知道是否有更有效/更优雅的方法来做到这一点.
我想到了这样的事情:
insert into my_table (field1, field2, field3, field4) values (foo, bar, baz, ('value one','value two','value three','value four'))
Run Code Online (Sandbox Code Playgroud)
结果将是:
field1 | field2 | field3 | field4
foo | bar | baz | value one
foo | bar | baz | value two
foo | bar | baz | value four
foo | bar | baz | value five
Run Code Online (Sandbox Code Playgroud)
实际上,'field4'列是一种字符串类型,当我编写查询时,不同的值是已知的.没有必要从表或任何东西中获取它们(尽管如果可能的话,我对可以做到的解决方案感兴趣)这是可行的还是我必须单独编写每个插入?
编辑:我已经更改了问题,以更清楚地更改列的数据类型(一般文本数据)以及数据来自何处.对于那些已经回答没有这些信息的人抱歉.
谢谢.