我正在试图弄清楚如何构建一个Spring Boot独立应用程序。当然,要让东西自动连线需要一些初始的上下文起点。如果我只是尝试自动生成一个类来运行一个作业,那么即使我将它设置为静态,它也是空的。
有没有办法在一个独立的非Web应用程序中使用Spring@Services?
@SpringBootApplication
public class MyApplication {
@Autowired
private static JobRunnerService job;
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
job.send(); //job is null !
}
}
因此,首先将静态JobRunnerService连接到运行MyApplication的主程序,JobRunner(Service)类将非静态SshSessionService连接到其中。SshSession(服务)最终只有一个无参数的构造函数。
@Service("jobRunnerService")
public final class JobRunner implements JobRunnerService{
@Autowired
private SshSessionService ssh;
@Autowired
public JobRunner(SshSessionService ssh){
this.ssh = ssh;
}
public void sendToAgent() { ....
}
@Service("sshSessionService")
public class SshSession implements SshSessionService {
public SshSession() {
}
}
它在JobRunnerService作业引用处开始为null。
想到了几种不同的解决方案:
如果查看SpringApplication.run()方法,您会注意到它返回ApplicationContext
。从中,您可以获取jobrunnerservice
,例如。
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(MyApplication.class, args);
JobRunnerService job = ctx.getBean(JobRunnerService.class);
job.send();
}
}
另一种解决方案是对send()
方法使用@PostConstruct注释:
@Service("jobRunnerService")
public class JobRunner implements JobRunnerService {
@PostConstruct
public void send() { ... }
}
@Component
public class SendRunner implements ApplicationRunner {
@Autowired
private JobRunnerService job;
@Override
public void run(ApplicationArguments args) {
job.send();
}
}
@Service("jobRunnerService")
public class JobRunner implements JobRunnerService, ApplicationRunner {
@Override
public void send() { ... }
@Override
public void run(ApplicationArguments args) {
send();
}
}
问题内容: 如何使用Maven创建桌面(独立/ Swing)应用程序? 我正在使用Eclipse 3.6。 问题答案: 创建一个Maven项目,如下所示: 将以下条目添加到您的pom文件中: 将项目作为Maven项目导入到Eclipse,然后作为Java应用程序运行。
请帮帮我,我用两个外部jar文件开发了一个简单的应用程序。在清理和构建的同时,它为应用程序和dist目录中的库文件夹创建了一个jar文件。当我尝试作为jar执行时,它执行得很完美
现在假设我们想要使用 Spark API 写一个独立的应用程序。我们将通过使用 Scala(用 SBT),Java(用 Maven) 和 Python 写一个简单的应用程序来学习。 我们用 Scala 创建一个非常简单的 Spark 应用程序。如此简单,事实上它的名字叫 SimpleApp.scala: /* SimpleApp.scala */ import org.apache.spark.S
在本章节中,我们将学习如何为 Docusaurus 创建独立页面(pages)。 这对于创建类似展示页面、练习页面或支持页面等 非经常修改的独立页面 非常有用。 独立页面的功能由 @docusaurus/plugin-content-pages 插件提供。 你可以使用 React 组件或 Markdown 来创建独立页面。 note 独立页面是没有侧边栏的,只有 文档(即 docs 目录下的文件)
问题内容: 我正在考虑开发由两部分组成的桌面应用程序: 用户界面(例如Java应用) 后端Node.js服务器 2个部分通过插座连接。不要问为什么我知道这很奇怪。 我将希望能够为客户提供带有安装程序的应用程序。我不希望用户必须自己安装Node.js。 有没有一种方法可以独立安装Node.js服务器,即无需在系统上全局安装Node.js。 对于任何(Windows,Linux,Mac OS X …)