小编Juh*_*uh_的帖子

如何在SpringBootTest中添加bean

这个问题看起来非常简单,但奇怪的是我没有找到解决方案。

我的问题是关于在 a 中添加/声明一个 bean SpringBootTest,而不是覆盖一个 bean,也不使用mockito 来模拟一个 bean。

这是我在尝试最简单的实现我的实际需求时得到的结果(但它不起作用):

一些服务、bean 和配置:

@Value // lombok
public class MyService {
    private String name;
}
Run Code Online (Sandbox Code Playgroud)
@Value // lombok
public class MyClass {
    private MyService monitoring;
}
Run Code Online (Sandbox Code Playgroud)
@Configuration
public class SomeSpringConfig {

    @Bean
    public MyClass makeMyClass(MyService monitoring){
        return new MyClass(monitoring);
    }
}
Run Code Online (Sandbox Code Playgroud)

考试:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = { SomeSpringConfig.class })
public class SomeSpringConfigTest {

    private String testValue = "testServiceName";

    // this bean is not used
    @Bean
    public MyService monitoringService(){ return new MyService(testValue); } …
Run Code Online (Sandbox Code Playgroud)

java spring unit-testing spring-boot

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

如何使用intellij运行所有scalatest的多模块sbt?

我可以跑:

  1. 特定的scala测试
    • 通过右键单击测试并选择 run
    • 或者,如果我之前已经运行过一次,则选择运行菜单中的测试> run...
  2. 我可以运行通过使所有JUnit测试新run/debug configuration> +>的junit> test kind = all in package>search for tests = in whole project
  3. 我可以运行一个子项目的所有scalatest(或junit):右键单击[模块名称]中的项目> run> scalatest

但是,如果我使用scala测试(+> scala测试>测试种类......)执行相同的(2),第一次测试失败非常奇怪(似乎object没有实例化),而相同的测试通过,如果我使用它运行它(1)或(3)

配置:

  • sbt有多个子项目
  • intellij CE 15.0.2
  • scala插件2.1.0
  • 斯卡拉2.10

奖金问题:如何运行所有测试(junit和scalatest)?

scala intellij-idea scalatest

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

酸洗时保留numpy视图

默认情况下,即使阵列基础被腌制,对numpy视图数组进行pickle也会丢失视图关系.我的情况是我有一些复杂的容器对象被腌制.在某些情况下,某些包含的数据是其他一些数据.保存每个视图的独立数组不仅会丢失空间,而且重新加载的数据也会丢失视图关系.

一个简单的例子是(但在我的例子中,容器比字典更复杂):

import numpy as np
import cPickle

tmp = np.zeros(2)
d1 = dict(a=tmp,b=tmp[:])    # d1 to be saved: b is a view on a

pickled = cPickle.dumps(d1)
d2 = cPickle.loads(pickled)  # d2 reloaded copy of d1 container

print 'd1 before:', d1
d1['b'][:] = 1
print 'd1 after: ', d1

print 'd2 before:', d2
d2['b'][:] = 1
print 'd2 after: ', d2
Run Code Online (Sandbox Code Playgroud)

哪个会打印:

d1 before: {'a': array([ 0.,  0.]), 'b': array([ 0.,  0.])}
d1 after:  {'a': array([ 1.,  1.]), 'b': …
Run Code Online (Sandbox Code Playgroud)

python numpy view pickle

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

从java中删除hdfs文件夹

在边缘节点上运行的Java应用程序中,我需要删除hdfs文件夹(如果存在).我需要在运行在文件夹中输出的mapreduce作业(带有spark)之前执行此操作.

我发现我可以使用这种方法

org.apache.hadoop.fs.FileUtil.fullyDelete(new File(url))
Run Code Online (Sandbox Code Playgroud)

但是,我只能使用本地文件夹(即正在运行的计算机上的文件URL).我尝试使用类似的东西:

url = "hdfs://hdfshost:port/the/folder/to/delete";
Run Code Online (Sandbox Code Playgroud)

hdfs://hdfshost:porthdfs namenode IPC.我用它来mapreduce,所以它是正确的.但它没有做任何事情.

那么,我应该使用什么网址,还是有其他方法?

注意:是一个简单的项目.

java hadoop hdfs

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

动态地向方法添加关键参数

我想动态设置实例方法的默认键参数。例如,与

class Module(object):
    def __init__(self, **kargs):
        set-default-key-args-of-method(self.run, kargs)  # change run arguments
    def run(self, **kargs):
        print kargs
Run Code Online (Sandbox Code Playgroud)

我们会有:

m = Module(ans=42)

m.run.im_func.func_code.co_argcount  # => 2
m.run.im_func.func_code.co_varnames  # => ('self','ans','kargs')
m.run.im_func.func_defaults          # => (42,)
m.run()                              # print {'ans':42}
Run Code Online (Sandbox Code Playgroud)

我尝试了一些带有 types.CodeType(我不太了解)的函数(不是方法)并让它工作(很好不会失败),但是添加的键参数没有显示在 kargs 中函数字典(它只打印 {})

必须仅对当前实例进行更改。实际上,我现在正在使用一个类(我认为我是 OO)所以我想用一个类方法来做它,但一个函数可能更好。就像是:

def wrapped_run(**kargs):
    def run(**key_args):
        print key_args

    return wrap-the-run-function(run, kargs) 

run = wrapped_run(ans=42)

run.func_code.co_argcount  # => 1
run.func_code.co_varnames  # => ('ans','key_args')  ## keep the 'key_args' or not
run.func_defaults          # => (42,)
run()                      # print {'ans':42} …
Run Code Online (Sandbox Code Playgroud)

python methods dynamic named-parameters

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

如何合并迭代器解析器

我有Iterator[(A1,B1)]两个功能

  • fA: (Iterator[A1]) => Iterator[A2]
  • fB: (Iterator[B1]) => Iterator[B2].

是否有可能在fAB: (Iterator[(A1,B1)]) => Iterator[(A2,B2)]没有将迭代器转换为Seq 的情况下进行转换?

编辑

以下两个答案都很好.我选择了@ Aivean的答案,因为代码更简单,它使用专门的scala数据结构(Stream).

唯一的缺点是stackoverfow限制,但对于大多数用例来说它应该不是问题.如果你的迭代器非常(非常)长,那么@ Alexey的解决方案应该是首选的.

iterator scala

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

spring-boot 应用程序的 keep-alive 配置(带有嵌入式 tomcat)

我正在尝试修复/调试使用嵌入式 tomcat 的 spring-boot web 应用程序中关闭连接过多的问题。问题出现是因为它关闭了应该保持活动的连接。

现在,我发现,Tomcat有配置限制保持活动连接数(见maxKeepAliveRequestshttps://tomcat.apache.org/tomcat-8.5-doc/config/http.html),并有可能是其它的配置,可以与问题有关。但我的问题是我没有看到这些参数在哪里给出,或者如果使用默认值我可以如何更改它们。

我的问题:我在哪里可以找到解释如何配置 spring-boot/embedded-tomcat keep-alive 参数的文档,这些参数是哪些?

keep-alive spring-boot embedded-tomcat

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

如何不自动暂存重命名的文件

当我重命名一个重命名文件的类时,在 intellij 中它会自动在 git 中暂存重命名的文件。

我希望 Intellij 停止这样做。有谁知道是否以及如何改变这种自动行为?

笔记:

我有 intellij 配置,这样当我创建一个新文件时,它会询问它是否应该将它添加到 git。如此处所述:Intellij Idea 能否自动阶段性更改

但是在重命名类/文件时,它不会询问任何内容

intellij-idea file-rename git-stage

6
推荐指数
0
解决办法
175
查看次数

如何将部署依赖参数传递给 webapp

在我工作的项目中,部署参数——例如存储路径或数据库登录——通常通过参数文件给出,该文件存储在 war 文件中。

我发现这不合适,因为每次为不同的部署(开发与生产,更改执行计算机)打包 webapp 时都需要更改这些值。源代码被版本化,这让它更加麻烦。

有没有更好的选择来传递上面列出的参数?

更好,我的意思是:

  • 实用:易于设置、更改和向他人解释
  • 与战争分离
  • 尽可能独立于 web 容器(如果依赖,我在 prod 中使用 tomcat)

编辑

我选择了@aksappy答案来奖励答案中所做的工作,因为它提供了几种使用标准工具的方法。但是,根据上下文,我可以采用任何其他解决方案:

java tomcat servlets parameter-passing servlet-container

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

如何在交互模式下运行 sbt multiple 命令

我想在 sbt 交互模式下运行几个 sbt 命令,即不离开 sbt “shell”?

(注意: 有些问题回答了如何在标准 shell 中使用 sbt 将参数传递给 sbt-commands。不是我在这里想要的)

示例:我在 sbt 交互式 shell 中,我想运行“test:compile”,然后运行“test”

我知道 test 会调用 required 编译,但在这个例子中,我想在任何测试开始之前运行所有子项目的编译。

sbt

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