小编pat*_*oid的帖子

使用构造函数-arg字段填充spring bean

如何使用该字段注入包含Map的属性文件作为附加构造函数arg.

从属性文件加载Map

bean目前使用以下方式设置:

<bean id="graphDbService" class="org.neo4j.kernel.EmbeddedGraphDatabase"
     init-method="enableRemoteShell" destroy-method="shutdown">

     <constructor-arg index="0" value= "data/neo4j-db"/>
         <constructor-arg index="1" value=?  />
</bean>
Run Code Online (Sandbox Code Playgroud)

Java等价物:

Map<String,String> configuration =  EmbeddedGraphDatabase.loadConfigurations( "neo4j_config.props" );
GraphDatabaseService graphDb = new EmbeddedGraphDatabase( "data/neo4j-db", configuration );
Run Code Online (Sandbox Code Playgroud)

谢谢

java spring neo4j

20
推荐指数
2
解决办法
7万
查看次数

NoSQL或Ehcache缓存?

我正在使用Spring/Hibernate/Tomcat和mysql数据库构建Route Planner Webapp,我有一个包含只读数据的数据库,例如总线停止坐标,从不更新的总线时间.我正在尝试让应用程序运行得更快,每次运行应用程序时,它都会对数据库执行大约1000次读取以计算路径.

我已经设置了一个Ehcache,它大大提高了从数据库时间的读取.我现在正在设置terracotta + Ehcache分布式缓存以与多个Tomcat JVM共享缓存.这看起来有点复杂.我已经尝试过memcached,但它的表现并不像ehcache那么快.

我想知道MongoDb或Redis是否更适合.我没有使用nosql的经验,但如果有人有任何想法,我将不胜感激.我需要的是快速访问只读数据库.

mysql hibernate ehcache neo4j nosql

12
推荐指数
2
解决办法
4368
查看次数

接受 SQLx PgPool 或 MySqlPool 的通用函数

我想设置一个接受 SQLx PgPoolMySqlPool的通用函数。

use dotenv::dotenv;
use sqlx::postgres::PgPool;
use sqlx::{Pool, Database};
use std::env;

#[derive(Debug)]
struct Todo {
    id: i64,
    description: String,
    done: bool,
}

#[actix_web::main]
async fn main() -> anyhow::Result<()> {
    dotenv().ok();
    let pool = PgPool::connect(&env::var("DATABASE_URL")?).await?;
    list_todos(&pool).await?;
    Ok(())
}



async fn list_todos<D: Database>(pool: &Pool<D>) -> anyhow::Result<Vec<Todo>> {
    let todos = sqlx::query_as!(
        Todo,
        r#"
        SELECT id, description, done
        FROM todos
        ORDER BY id
        "#
    )
    .fetch_all(pool)
    .await?;

    Ok(todos)
}
Run Code Online (Sandbox Code Playgroud)

我看到的错误是:

32 |     .fetch_all(pool)
   |      ^^^^^^^^^ expected type parameter `D`, …
Run Code Online (Sandbox Code Playgroud)

rust rust-sqlx

11
推荐指数
1
解决办法
3160
查看次数

码头间歇性撞击的问题

我遇到了码头间歇性撞击的问题,我正在使用Jetty 6.1.24.

我正在运行一个neo4j Spring MVC webapp,Jetty将保持运行大约1小时,然后我必须重新启动Jetty.它运行在小型amazon ec2实例上,debian具有1.7GB的RAM.

我开始使用Jetty java -Xmx900m -server -jar start.jar

我使用putty连接到服务器,当Jetty崩溃putty会话断开连接时,我看不出是什么错误导致它崩溃.

我希望能够看到它是否是Spring生成的错误,我不知道如何使用Jetty从spring应用程序记录输出.或者如果它是Jetty或内存问题,那么监控Jetty的最佳方法是什么?我无法在运行Windows的本地计算机上重新创建此项.您认为最好的方法是什么?谢谢

java logging monitoring jetty

8
推荐指数
2
解决办法
5856
查看次数

使用 serde 从字符串毫秒时间戳反序列化 DateTime

我从外部 API 收到毫秒时间戳作为 JSON 字符串属性。

{"time":"1526522699918"}
Run Code Online (Sandbox Code Playgroud)

使用 Serde 将毫秒时间戳解析为字符串的最佳方法是什么?

ts_milliseconds选项使用整数毫秒时间戳,但在使用字符串时会引发错误。

示例 - Rust 游乐场

{"time":"1526522699918"}
Run Code Online (Sandbox Code Playgroud)

错误信息:

Error("invalid type: string \"1526522699918\", expected a unix timestamp in milliseconds", line: 1, column: 23)'
Run Code Online (Sandbox Code Playgroud)

rust rust-chrono serde

8
推荐指数
1
解决办法
6494
查看次数

将额外的html属性添加到R​​ails collection_select

我正在使用

f.collection_select :country_id, Country.all, :id, :name)
Run Code Online (Sandbox Code Playgroud)

产生

<select name="user[country_id]" id="user_country_id">       
 <option value="1">Canada</option>
 <option  value="2">United Kingdom</option>
 <option  value="3" >United States</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我想在select中包含prov-val和code-val属性,这样我就可以动态更新省标签:

<select name="user[country_id]" id="user_country_id">     
<option prov-val="Province / Territory" code-val="Postal Code" value="1">Canada</option>
<option prov-val="County" code-val="Postcode"  value="158">United Kingdom</option>
<option prov-val="State" code-val="ZIP Code"  value="2" >United States</option>
Run Code Online (Sandbox Code Playgroud)

这可以使用collection_select吗?

ruby forms ruby-on-rails

7
推荐指数
1
解决办法
2644
查看次数

公交车时刻表数据库设计

我正在尝试设计一个数据库来存储300条不同公交线路的时间表.每条路线有不同的停靠次数和周一至周五,周六和周日的不同时间.我已经表示了每条路线的公共汽车出发时间如下,我不确定表中是否应该有空值,这看起来不错吗?

route,Num,Day,    t1,   t2,   t3,    t4    t5      t6      t7      t8     t9    t10 

117, 1, Monday,   9:00, 9:30, 10:50, 12:00, 14:00  18:00   19:00   null   null   null
117, 2, Monday,   9:03, 9:33, 10:53, 12:03, 14:03  18:03   19:03   null   null   null
117, 3, Monday,   9:06, 9:36, 10:56, 12:06, 14:06  18:06   19:06   null   null   null
117, 4, Monday,   9:09, 9:39, 10:59, 12:09, 14:09  18:09   19:09   null   null   null
.
.
.
117, 20, Monday,   9:39, 10.09, 11:39, 12:39, 14:39  18:39   19:39   null   null   null …
Run Code Online (Sandbox Code Playgroud)

mysql sql database-design timetable

3
推荐指数
1
解决办法
7229
查看次数

查找大于SortedMap中的第一个值

我想知道有什么更好的方法可以在大型SortedMap中找到大于输入值的第一个值,而不是在下面的示例中循环遍历所有值.或者,如果SortedMap是用于此的最佳结构.

这可以通过谷歌收藏来实现吗?提前致谢

public class mapTest {
public static void main(String[] args) {

SortedMap<Double, Object> sortedMap = new TreeMap<Double, Object>();
    sortedMap.put(30d, "lala");     
    sortedMap.put(10d, "foo");
    sortedMap.put(25d, "bar");
    System.out.println("result: " + findFirstValueGreaterThan(sortedMap, 28d));
}

public static Object findFirstValueGreaterThan(SortedMap<Double, Object> sortedMap, Double value) {
    for (Entry<Double, Object> entry : sortedMap.entrySet()) {
        if (entry.getKey() > value) {
            // return first value with a key greater than the inputted value
            return entry.getValue();
        }
    }
    return null;
}
}
Run Code Online (Sandbox Code Playgroud)

java sortedmap guava

3
推荐指数
1
解决办法
2415
查看次数

Golang将float64转换为int错误

在将float转换为int时,如何避免浮点错误.例如,下面的代码打印出来:0.5499999999999972当我想要打印时0.55.

package main

import "fmt"

func main() {
    x := 100.55
    fmt.Println(x - float64(int(x)))    
}

Output:
0.5499999999999972
Run Code Online (Sandbox Code Playgroud)

floating-point precision go

3
推荐指数
1
解决办法
1546
查看次数

在 Go 算法中处理浮点数精度?

我对在 Go 中准确减去 2 个浮点数的方法感兴趣。

我尝试使用该 math/big库,但无法获得准确的结果。

我在 Javascript 中使用了big.js库来解决这个问题。是否有类似的 Go 算法库/方法?

    package main

    import (
        "fmt"
        "math/big"
    )

    func main() {
        const prec = 200
        a := new(big.Float).SetPrec(prec).SetFloat64(5000.0)
        b := new(big.Float).SetPrec(prec).SetFloat64(4000.30)
        result := new(big.Float).Sub(a, b)
        fmt.Println(result)
    }
    Result: 999.6999999999998181010596454143524169921875
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/vomAr87Xln

math floating-point go

3
推荐指数
1
解决办法
6644
查看次数

Kotlin 无法解析的日期 - ParseException 错误

我在尝试解析日期字符串时看到以下错误,有人能指出我解析这个日期字符串的正确方向吗?

"2019-01-22T12:43:01Z"
Run Code Online (Sandbox Code Playgroud)

错误:

java.text.ParseException: Unparseable date: "2019-01-22T12:43:01Z"
Run Code Online (Sandbox Code Playgroud)

代码:

package ch02.ex1_1_HelloWorld

import java.lang.Exception
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.Date
import java.util.concurrent.TimeUnit

const val SERVER_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss:SS'Z'" 
val sdf = SimpleDateFormat(SERVER_TIME_FORMAT, Locale.US)

fun main(args: Array<String>) {
    timeSince("2019-01-22T12:43:01Z")
}

fun timeSince(dateStr: String) {
    var diff : Long = 0
    try {
        diff = sdf.parse(dateStr).time - Date().time      
    } catch (e: Exception) {
        print(e)
    }
    "${TimeUnit.HOURS.convert(diff, TimeUnit.MILLISECONDS)} h ago"
} 
Run Code Online (Sandbox Code Playgroud)

java datetime date simpledateformat kotlin

2
推荐指数
2
解决办法
2154
查看次数

Golang:关闭一个频道

我基于以下示例创建了一个简单的通道来发出异步HTTP请求:

http://matt.aimonetti.net/posts/2012/11/27/real-life-concurrency-in-go/

所有请求完成后,关闭频道的最佳模式是什么?

type HttpRequest struct {
    url        string
}

type HttpResponse struct {
    request  HttpRequest
    response *http.Response
    err      error
}

func asyncHttpGets(requests []HttpRequest) {
    ch := make(chan *HttpResponse)
    for _, request := range requests {
        go func(url string) {
            resp, err := http.Get(url)
            ch <- &HttpResponse{request, resp, err}
        }(request.url)
    }

    for {
        select {
        case r := <-ch:
            processResponse(r)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

concurrency channel go

1
推荐指数
1
解决办法
2267
查看次数