使用具有 Spring 引导和 Spring 安全性的 JavaFX 客户端



我将使用包含身份验证的 spring boot 创建一个 javafx 客户端和 http 服务器。

服务器计划使用 spring 安全性进行登录,并使用 appache httpClient 进行客户端登录。

是否可以从此结构创建登录服务?

还是我应该选择其他方法?

我了解 Spring 安全性使用 cookie 和会话进行身份验证。

您可以使用JavaFXSpring-Boot创建混合应用程序。当然,您也可以使用Spring Security。我建议您使用maven项目来打包您的混合应用程序。

是否可以从此结构创建登录服务?

是的,你可以!

还是我应该选择其他方法?

由于您可以将spring-security用于登录服务,因此您可能不需要其他方法,但可以使用很多authentication-authorization库。

为什么选择Apache-HttpClient?

您似乎打算使用Apache-HttpClient来绑定 JavaFX 和 Spring-Boot 服务。实际上,您可以在 JavaFX 应用程序中使用登录服务,而无需将该服务公开为 Restful 服务。您可以使用 Spring 的依赖注入来连接 JavaFX 控制器类中的服务。

@Autowired
private LoginService loginService;

如果您对弹簧应用程序感到满意,您还可以使用弹簧提供的功能,例如Spring Data JPA等。

SpringBoot + JavaFX Application

下面是混合应用程序的简单示例,

import javafx.stage.Stage;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class YourApp extends Application {
protected ConfigurableApplicationContext springContext;
public static void main(final String[] args) {
Application.launch(args);
}
@Override
public void init() throws Exception {
springContext = springBootApplicationContext();
}
@Override
public void start(Stage stage) throws Exception {
....
}
@Override
public void stop() throws Exception {
springContext.close();
}
private ConfigurableApplicationContext springBootApplicationContext() {
SpringApplicationBuilder builder = new SpringApplicationBuilder(YourApp.class);
String[] args = getParameters().getRaw().stream().toArray(String[]::new);
return builder.run(args);
}
}

在这里无法定义应用程序boilerplate,但上面的代码可以启动应用程序。

PS:你可以查看这个JavaFXSpringBootApp样板来审查所需的想法。

最新更新