一个 Rust 新手,尝试通过结合来编写一个 Web 服务
https://github.com/seanmonstar/warp/blob/master/examples/todos.rs和https://github.com/launchbadge/sqlx/blob/master/examples/postgres/todos/src/main.rs
以下代码处于运行状态。我的问题是,我是否需要为每个处理程序克隆 dbpool?Rust 中的惯用方式是什么(我来自 Java/Kotlin->Go 背景,FWIW)
#![deny(warnings)]
use sqlx::postgres::{PgPoolOptions};
use std::env;
use warp::Filter;
#[tokio::main]
async fn main() -> Result<(), sqlx::Error> {
let pool = PgPoolOptions::new()
.max_connections(5)
.connect("postgres://:@localhost/todo_db").await?;
if env::var_os("RUST_LOG").is_none() {
env::set_var("RUST_LOG", "todos=info");
}
pretty_env_logger::init();
let api = filters::todos(pool);
let routes = api.with(warp::log("todos"));
// Start up the server...
warp::serve(routes).run(([127, 0, 0, 1], 3030)).await;
Ok(())
}
mod filters {
use sqlx::{Pool, Postgres};
use super::handlers;
use super::models::{ListOptions, Todo};
use warp::Filter;
pub fn todos(
db: Pool<Postgres>,
) …Run Code Online (Sandbox Code Playgroud) 我知道我可以将其写入已安装的主机文件系统,该文件系统将在多个构建容器之间共享。但是我如何在像 docker-plugin 这样的无人机插件容器中使用该文件呢?
或者,是否有其他方法可以在构建步骤之间传递任意数据?也许通过环境变量?
这是无人机0.5
Java 中的CosmosClient和DocumentClient之间有什么区别?我应该选择其中一种而不是另一种,为什么?
在我的理论中,spring boot 能够独立运行 java web 应用程序。它说它有一个自己的嵌入式 servlet 容器并且可以使用 JNDI 本身。
我之前构建了一个 war 文件(spring-mvc、security、gradle 构建),但是 Spring boot 组装了 jar 文件,它可以在任何具有 JVM 的机器上运行。
所以我的问题是,如果我制作了一个基于 Spring Boot 的 Web 应用程序(包含用于查找数据源的 JSP 文件和 JNDI),尽管它有自己的嵌入式 servlet 容器和用于独立运行的打包 jar 文件,我是否仍然需要将其打包为 WAR文件并将其部署在 WAS(Websphere 应用程序服务器)或 servlet 容器中,出于性能、稳定性、扩展等任何原因?
drone.io ×1
rust ×1
rust-sqlx ×1
rust-warp ×1
spring ×1
spring-boot ×1
spring-mvc ×1
tomcat ×1
websphere ×1