小编ita*_*ind的帖子

为什么"显示历史"和"显示选择历史"选项是灰色的使用Git与Intellij Idea 13?

转到Idea 13中的某些代码文件.右键单击它.为什么"Git->显示历史"和"Git->显示选择历史"选项是灰色的,使用Git和Intellij Idea 13?

git history intellij-idea show

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

带有 Spring 的 ModelMapper,将显式映射放在哪里?

我在 Spring 中使用 ModelMapper。在我的控制器类中,我正在自动装配 ModelMapper bean:

@Autowired
private ModelMapper mapper;
Run Code Online (Sandbox Code Playgroud)

我想在我的控制器方法中在模型类和 DTO 之间进行显式映射,例如:

modelMapper.addMappings(mapper -> {
  mapper.map(src -> src.getBillingAddress().getStreet(),
      Destination::setBillingStreet);
  mapper.map(src -> src.getBillingAddress().getCity(),
      Destination::setBillingCity);
});
Run Code Online (Sandbox Code Playgroud)

然后使用映射器来映射类。

我的问题是,在每个控制器方法调用中添加显式映射是否正确?对象模型映射器会开始增加内存大小吗?

另一种解决方案是在创建 ModelMapper bean 时只添加一次映射,但我认为将映射逻辑放在 bean 配置中不是一个好的决定。

spring modelmapper spring-boot

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

CompletableFuture.allOf 使用哪个执行器?

假设我们有两个执行者,1 和 2。

我们可以配置执行时使用哪个执行器

CompletableFuture<Integer> cf1 = CompletableFuture.supplyAsync(()-> {return 1;}, executor1) //executor1
CompletableFuture<Integer> cf2 = CompletableFuture.supplyAsync(()-> {return 2;}, executor1) //executor1
CompletableFuture<Integer> cf3 = CompletableFuture.supplyAsync(()-> {return 3;}, executor2) //executor2
Run Code Online (Sandbox Code Playgroud)

但是哪个线程执行器使用 CompletableFuture 静态方法 allOf?

CompletableFuture.allOf(cf1, cf2, cf3)
Run Code Online (Sandbox Code Playgroud)

谢谢!

java parallel-processing java-8 completable-future

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

主节点在 Spark 独立集群中的角色

在 Spark 独立集群中,master(以 start_master.sh 脚本开始的节点)的角色究竟是什么?

我知道这是从 submit-job.sh 脚本接收作业的节点,但它在处理作业时的作用是什么?

我在 Web UI 中看到,它总是将作业交付给从站(以 start_slave.sh 开头的节点)并且不参与处理,对吗?在这种情况下,我是否还应该在与 master 相同的机器上运行脚本 start_slave.sh 以利用其资源(cpu 和内存)?

提前致谢。

cluster-computing apache-spark

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

通用“为空”谓词

我写了这个通用谓词:

private static <T> Predicate<T> isNull(){
    return Objects::isNull;
}
Run Code Online (Sandbox Code Playgroud)

但是我不能将它与其他这样的谓词结合使用:

private static Predicate<String> isEmpty(){
    return string -> string.isEmpty();
}
Run Code Online (Sandbox Code Playgroud)

因为这个片段不会编译(期望 Predicate<String> in or operation):

isNull().or(isEmpty())
Run Code Online (Sandbox Code Playgroud)

有什么想法可以解决吗?谢谢!

java generics predicate java-8

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

Java - 执行 I/O 操作时的线程状态

假设一个 Java 线程执行一些 I/O 操作,比如使用传统的阻塞 Java I/O 读取文件。

问题是:等待时线程的状态是什么?

我不知道它是 RUNNING(进行一些主动等待)还是 WAITING(也许有某种监视器在文件数据准备好时唤醒线程)。

我怎样才能找到它?

谢谢。

java thread-synchronization java-threads

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

Scala - 函数应用vs匹配子句

这个Scala代码a)效果很好:

val f : Function[String, String] = { case "a" => "b"}
f.apply("a") //returns "b"
Run Code Online (Sandbox Code Playgroud)

和b)相同

"a" match { case "a" => "b" } //returns "b"
Run Code Online (Sandbox Code Playgroud)

1)b)中的匹配子句是a)的句法糖吗?

2)为什么这不起作用......?

{ case "a" => "b"}.apply("b") //Does not compile
Run Code Online (Sandbox Code Playgroud)

谢谢!

scala

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

Spring-Rabbit模板-批量操作

任何人都知道是否可以使用 Rabbit 模板将一组消息发送到队列?

显然我可以一次发送一个,但我想在单个批量操作中完成(以获得性能)。

谢谢!

rabbitmq spring-rabbit

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

返回List <T>的方法,其中参数List <S1>,List <S2>,其中S1和S2扩展为T.

我有这个方法:

public static <T> List<T> flat(List<T>... lists){
    return Stream.of(lists)
        .filter(Objects::nonNull)
        .flatMap(List::stream)
        .collect(toList());
}
Run Code Online (Sandbox Code Playgroud)

我们的想法是平放列表列表并返回相同类型的列表.

假设AB扩展C.这不起作用:

List<A> listOfA;
List<B> listOfB;
List<C> listOfC = flat(listOfA, listOfB);
Run Code Online (Sandbox Code Playgroud)

因为List<A>不是List<C>!

任何人都知道如何使用泛型来编写平面方法签名,承认我正在尝试做什么?

谢谢!

java generics inheritance java-stream

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

Spring Cloud Stream:spring.cloud.stream.default.consumer.concurrency 属性的确切含义

我想知道使用 spring.cloud.stream.default.consumer.concurrency 属性时“并发”的确切含义。

文档(https://docs.spring.io/spring-cloud-stream/docs/Chelsea.RELEASE/reference/html/_configuration_options.html)说“入站消费者的并发性”,这可以有多种解释。

幕后创建了什么样的线程执行器?

谢谢!

spring-cloud-stream

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

Spring Integration DSL:使用标头的变压器

我想使用 Java DSL 进行 Spring Integration,但我不知道如何在转换过程中使用消息头。

我的旧实现有一个像这样的 Transformer:

@Transformer(inputChannel = "inputChannel", outputChannel = "outputChannel")
public EventB transform(
        EventA eventA,
        @Header("a_header") String aHeader,
        @Header("other_header") String otherHeader){
    return new EventB(eventA.getSomeField(), aHeader, otherHeader);
}
Run Code Online (Sandbox Code Playgroud)

现在我有以下 DSL:

@Bean
public IntegrationFlow aFlow(){
    return IntegrationFlows.from(EventASink.INPUT)
        .filter("headers['operation'] == 'OPERATION_A'")
        .transform() //<-- What should I do here?
        .handle(Http.outboundGateway(uri).httpMethod(HttpMethod.POST))
        .get();
}
Run Code Online (Sandbox Code Playgroud)

我查看了transform()方法的实现,发现它可以接收GenericTransformer作为参数,但它似乎只适用于消息有效负载,而且我还需要标头。

我还看到可以使用某种反射,但我不喜欢它,因为它不重构安全。

有什么建议吗?提前致谢。

spring-integration

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

空手道框架重试,直到无法按预期工作

我在 JUnit 中使用空手道框架。

使用此功能:

Given path 'save_token'
And request
"""
{
  "token": "test_token"
}
"""
And retry until response.tokens ==
"""
[
    "test_token"
]
"""
When method POST
Run Code Online (Sandbox Code Playgroud)

我有这个例外:

java.lang.ArrayIndexOutOfBoundsException: 1
    at com.intuit.karate.core.MethodMatch.convertArgs(MethodMatch.java:60)
    at com.intuit.karate.core.Engine.executeStep(Engine.java:141)
    at com.intuit.karate.core.ScenarioExecutionUnit.execute(ScenarioExecutionUnit.java:171)
Run Code Online (Sandbox Code Playgroud)

当 response.tokens 列表为空时:

{
    "tokens": []
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么 == 在这种情况下不起作用(它应该返回 false,并继续重试)。

提前致谢!

karate

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

气流:使用环境变量时未创建连接

我想在不使用 Airflow UI 的情况下创建 Mongo 连接(默认除外)。

我从气流文档中读到:

可以使用环境变量创建 Airflow 管道中的连接。环境变量需要有一个AIRFLOW_CONN_ 前缀,用于Airflow,其值为URI 格式才能正确使用连接。

在 Airflow 管道中引用连接时,conn_id 应该是不带前缀的变量名称。例如,如果 conn_id 命名为 postgres_master,则环境变量应命名为 AIRFLOW_CONN_POSTGRES_MASTER(注意环境变量必须全部大写)。

我尝试在使用Puckel docker image时应用它。

这是使用该图像的 docker compose:

version: '2.1'
 services:
    postgres:
        image: postgres:9.6
        environment:
            - POSTGRES_USER=airflow
            - POSTGRES_PASSWORD=airflow
            - POSTGRES_DB=airflow

    webserver:
        image: puckel/docker-airflow:1.10.6
        restart: always
        depends_on:
            - postgres
        environment:
            - LOAD_EX=n
            - EXECUTOR=Local
            - AIRFLOW_CONN_MY_MONGO=mongodb://mongo:27017
        volumes:
            - ./src/:/usr/local/airflow/dags
            - ./requirements.txt:/requirements.txt
        ports:
            - "8080:8080"
        command: webserver
        healthcheck:
            test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
            interval: 30s
            timeout: 30s
            retries: …
Run Code Online (Sandbox Code Playgroud)

airflow airflow-scheduler

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