小编Eti*_*ret的帖子

Git:如何在不同的分支中区分两个不同的文件?

我在不同的分支中有两个不同的文件.如何在一个命令中区分它们?

就像是

# git diff branch1/foo.txt branch2/foo-another.txt
Run Code Online (Sandbox Code Playgroud)

我可以看看另一个文件,差异并恢复,但这是非常脏的解决方案.

git git-diff

162
推荐指数
3
解决办法
4万
查看次数

Spring bean定义的优先级是什么?

当使用相同的名称定义多个Spring bean时,哪一个会隐藏其他的?

假设我@Component("bean")在包org.example中有几个带注释的类,另外还有一个applicationContext.xml,它包含:

<context:component-scan base-package="org.example"/>
<alias name="aliasedBean" alias="bean"/>
<bean id="aliasedBean" class="org.example.AliasedBean"/>
<bean id="bean" class="org.example.XmlBean"/>
<import resource="otherApplicationContext.xml"/>
Run Code Online (Sandbox Code Playgroud)

我做的时候会取回applicationContext.getBean("bean")哪个豆子?

根据Spring文档:

每个bean都有一个或多个标识符.这些标识符在托管bean的容器中必须是唯一的.

但是,我知道(因为我测试过),Spring完成后不会抱怨.一个定义将隐藏其他定义.但我无法找出规则是什么.

我想这样做是为了测试目的.我使用基于注释的配置来定义真实(生产)bean.然后我想使用特定于测试的XML配置文件来覆盖这些定义并注入模拟bean.

编辑:由于你有几个要求日志,我花了一些时间创建一些.他们是:

  0 INFO  org.springframework.context.support.ClassPathXmlApplicationContext - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@3934f69a: startup date [Wed Mar 06 23:04:35 CET 2013]; root of context hierarchy
 45 INFO  org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [applicationContext.xml]
223 INFO  org.springframework.beans.factory.support.DefaultListableBeanFactory - Overriding bean definition for bean 'bean': replacing [Generic bean: class [org.example.AnnotatedBean]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; …
Run Code Online (Sandbox Code Playgroud)

java spring

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

为什么Java可选性能随着链式呼叫的数量而增加?

我最近被问及java 8 Optional的性能.经过一番搜索,我发现了这个问题和几篇博文,但答案相互矛盾.所以我用JMH对它进行了基准测试,我不明白我的发现.

以下是我的基准代码的要点(完整代码可在GitHub上获得):

@State(Scope.Benchmark)
public class OptionalBenchmark {

  private Room room;

  @Param({ "empty", "small", "large", "full" })
  private String filling;

  @Setup
  public void setUp () {
    switch (filling) {
      case "empty":
        room = null;
        break;
      case "small":
        room = new Room(new Flat(new Floor(null)));
        break;
      case "large":
        room = new Room(new Flat(new Floor(new Building(new Block(new District(null))))));
        break;
      case "full":
        room = new Room(new Flat(new Floor(new Building(new Block(new District(new City(new Country("France"))))))));
        break;
      default:
        throw new …
Run Code Online (Sandbox Code Playgroud)

java performance optional

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

尽管安装了 Java 8,但无法找到支持 javaws 的 Java 运行时

在我的 Mac 上,我无法打开 JNLP 文件。双击它们会打开一个弹出窗口,其中包含以下消息:

\n
\n

无法完成操作\xe2\x80\x99。无法找到支持 javaws 的 Java 运行时。\n请访问http://www.java.com以获取有关安装 Java 的信息。

\n
\n

从终端:

\n
$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home/\n$ /usr/bin/java -version\njava version "1.8.0_333"\nJava(TM) SE Runtime Environment (build 1.8.0_333-b02)\nJava HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)\n$ /usr/bin/javaws \nThe operation couldn\xe2\x80\x99t be completed. Unable to locate a Java Runtime that supports javaws.\nPlease visit http://www.java.com for information on installing Java.\n
Run Code Online (Sandbox Code Playgroud)\n

我知道 Java Web Start 在 Java 9 中已被弃用,并在 Java 11 中被删除。但这是一个 Oracle JDK 8。我相信它应该提供 Java Web Start。那么发生了什么? …

java macos java-web-start

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

在发生异常时关闭由 flatMap 打开的 Java 8 流?

Javadoc 指出Stream.flatMap (Function <T, Stream<U>> mapper)

每个映射的流在其内容放入该流后都会关闭。

好的。但是异常处理呢?

考虑以下:

public List<Path> search (List<Path> paths) {
  return paths.stream ()
    .flatMap (dir -> {
      try {
        return Files.list (dir);
      } catch (IOException e) {
        throw new UncheckedIOException (e);
      }
    })
    .filter (this::mightThrowException)
    .collect (toList ());
}
Run Code Online (Sandbox Code Playgroud)

如果Files.list (Path)在第一次调用时抛出异常,则它的流永远不会首先打开,因此不需要关闭。如果它在以后的调用中抛出异常,则先前调用生成的流都已按照.flapMap ()其规范完全处理并关闭。

但是如果过滤器抛出异常会发生什么?我们正在处理文件列表流,所以我想我需要在某处关闭某些内容,但我不知道到底是什么。最初的paths.stream ()也许?然后哪个会调用派生流上的 close 方法?

注意:对于任何不熟悉Files.list (Path)静态方法的人来说,它返回一个Stream<Path>需要关闭的值(与大多数流不同)。

java exception java-stream

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