小编gav*_*koa的帖子

"junit.framework中的断言已被弃用" - 接下来有什么用?

我将版本junit升级到4.11并得到:

[WARNING] [deprecation] Assert in junit.framework has been deprecated
[WARNING] [deprecation] Assert in junit.framework has been deprecated
....
Run Code Online (Sandbox Code Playgroud)

如何迁移?

junit junit4

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

Java Logging框架中的标记是什么以及使用它们的原因是什么?

我第一次听到标记时读到:

http://slf4j.org/faq.html

我检查Logger对象的可用方法:

并找到接口:

我得到的更深入的信息:

但仍然困惑...请注意,我问为什么,而不是如何使用它们,所以这不是重复:

更新似乎在使用标记时,您还需要编写自定义Java代码,而不是在XML.property文件中进行配置...

更新2来自http://logback.qos.ch/manual/appenders.html#OnMarkerEvaluator

Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN");
logger.error(notifyAdmin,
  "This is a serious an error requiring the admin's attention",
   new Exception("Just testing"));
Run Code Online (Sandbox Code Playgroud)

java logging log4j logback slf4j

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

什么是一些bash脚本中使用的'function'关键字?

例如: Bash-Prog-Intro-HOWTO

function foo() {}

我进行搜索查询info bash并查看POSIX的相关章节中的函数关键字,但没有找到.

什么是function一些bash脚本中使用的关键字?这是一些不赞成的语法吗?

bash

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

Java世界中的类vs包与模块与组件与容器与服务与平台的对比

我是Java世界的新手(7年的低级平原C).

当我开始阅读Java相关网站时:

我对现有的术语感到困惑:

  • 零件
  • 容器
  • 服务
  • 骨架
  • 平台

我找到了许多关于术语定义的资源(还有更多):

但是这些资源中的每一个都根据自己的目的来定义它们,在一般情况下我仍然无法区分模块和组件.

请在大图中解释这些术语的含义(可以是单一类平台,制作容器需要多少模块等).

更新2019年来自https://www.artima.com/lejava/articles/reuse3.html(我的重点介绍)

Bill Venners:框架,平台和工具包之间的区别是什么,以及不同的灵活性需求是什么?

Erich Gamma:通过平台,我将长期稳定性联系在一起.在平台上构建是安全的.平台提供兼容性保证.框架通常没有这种质量,我已经看到许多框架稳定性方面的失败.如果你看一下Eclipse,是的,它包括框架,工具包,并提供平台API.所有这些都捆绑为插件.框架抽象并提供更高级别的默认功能.为此,框架需要得到控制.这种失控可导致有时被称为框架炎.

Bill Venners:工具包没有因为......

Erich Gamma:使用工具包,您可以创建并调用工具包对象并注册侦听器以对事件做出反应.你在掌控之中.框架试图控制并告诉您何时做什么.一个工具包为您提供了基石 …

java architecture enterprise terminology java-ee

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

Java同步:通过帐户对以原子方式移动资金?

如何将资金从一个账户转移到另一个账户?对于:

public class Account {
    public Account(BigDecimal initialAmount) {...}
    public BigDecimal getAmount() {...}
    public void setAmount(BigDecimal amount) {...}
}
Run Code Online (Sandbox Code Playgroud)

我希望伪代码:

public boolean transfer(Account from, Account to, BigDecimal amount) {
    BigDecimal fromValue = from.getAmount();
    if (amount.compareTo(fromValue) < 0)
         return false;
    BigDecimal toValue = to.getAmount();
    from.setAmount(fromValue.add(amount.negate()));
    to.setAmount(toValue.add(amount));
    return true;
}
Run Code Online (Sandbox Code Playgroud)

在多线程环境中安全地更新帐户,我看到危险情况如下:

acc1 --> acc2  ||  acc2 --> acc1
acc1 --> acc2  ||  acc2 --> acc3  ||  acc3 --> acc1
...
Run Code Online (Sandbox Code Playgroud)

最简单的解决方案是对共享对象进行阻止,但对于以下情况来说效率低下:

acc1 --> acc2  ||  acc3 --> acc4  and  acc1 != acc3 …
Run Code Online (Sandbox Code Playgroud)

java multithreading

43
推荐指数
7
解决办法
6303
查看次数

对于Java接口中的常量,"public static final"是多余的吗?

这段代码:

interface Config {
    int MAX_CONN = 20;
}
Run Code Online (Sandbox Code Playgroud)

编译和按我的预期工作.它看起来像是:

interface Config {
    public static final int MAX_CONN = 20;
}
Run Code Online (Sandbox Code Playgroud)

对于Java接口中的常量,"public static final"是多余的吗?这对于Java 1.1,1.2,1.3,1.4,...,1.8是否适用,或者是否在Java版本中进行了更改?

java static final interface jls

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

在Web应用程序中处理上下文的任何聪明方法?

在Java中,Web应用程序捆绑在WAR中.默认情况下,许多servlet容器将使用WAR名称作为应用程序的上下文名称.

因此myapp.war被部署到http://example.com/myapp.

问题是webapp认为它的"root"是"root",或者只是"/",而HTML会认为应用程序的根目录是"/ myapp".

Servlet API和JSP具有帮助管理它的工具.例如,如果在servlet中执行:response.sendRedirect("/ mypage.jsp"),则容器将在上下文之前创建url:http://example.com/myapp/mypage.jsp ".

但是,您不能使用HTML中的IMG标记来执行此操作.如果你做<img src ="/ myimage.gif"/>你可能会得到404,因为你真正想要的是"/myapp/myimage.gif".

许多框架都具有可识别上下文的JSP标记,并且在JSP中有不同的方法来制作正确的URL(没有特别优雅的方法).

对于编码人员来说,跳出何时使用"App Relative"网址与绝对网址是一个很小的问题.

最后,还存在需要动态创建URL的Javascript代码以及CSS中的嵌入式URL(用于背景图像等)的问题.

我很好奇其他人使用什么技术来缓解和解决这个问题.许多人只是简单地将其编写并硬编码,无论是服务器根目录还是他们碰巧使用的任何上下文.我已经知道答案了,那不是我想要的.

你是做什么?

java jsp servlets contextpath

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

MapStruct和Lombok无法收集

正在使用的技术堆栈:

Java 8 MapStruct:1.2.0.Final Lombok:1.16.18 IDE:IntelliJ - 已经安装了Lombok插件

  • 最初,当我删除getter和setter以及添加@Getter@Setter注释时,我遇到了问题,mapstruct无法找到属性并说:Unknown property "id" in result type com.vg.once.dto.OneDto. Did you mean "null"?
  • 我开始知道Lombok 1.16.14或更新版本与MapStruct 1.2.0.Beta1或更新版本是兼容的并且可以一起工作,但我的版本更新,然后仍然需要问题.
  • 我已经尝试过的另一个解决方案是运行Lombok的Delombok插件,但仍然会出现同样的问题.

以下是项目文件:

实体对象:One.java:

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class One {

    private int id;
    private Integer version;
    private int projectId;
    private String title;
    private String code;
    private int sortOrder;

}
Run Code Online (Sandbox Code Playgroud)

DTO对象:OneDTO.java:

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class OneDto {

    private int id;
    private …
Run Code Online (Sandbox Code Playgroud)

intellij-idea lombok java-8 mapstruct intellij-lombok-plugin

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

ES6:在Set/Map迭代过程中从Set/Map中删除元素是否危险?

安全代码new Set()可能如下所示:

let items = [];
for (let item of set)
  if (isBad(item))
    items.push(item);
for (let item of items)
  set.delete(item)
Run Code Online (Sandbox Code Playgroud)

我可以简化代码:

for (let item of set)
  if (isBad(item))
    set.delete(item);
Run Code Online (Sandbox Code Playgroud)

安全代码new Map()可能如下所示:

let keys = [];
for (let [key, val] of map)
  if (isBadKey(key) || isBadValue(val))
    keys.push(key);
for (let key of keys)
  map.delete(key)
Run Code Online (Sandbox Code Playgroud)

我可以简化代码:

for (let [key, val] of map)
  if (isBadJey(key) || isBadValue(val))
    map.delete(key)
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

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

推荐构建工件存储库管理器

目前,我们使用FTP来维护构建工件分发和第三方产品(仅供内部使用).

工件是docs(HTML/pdf/chm/...),libs(.dll/.so/.a/.jar/...),程序(.exe/.jar/...)等等.它们不限于Java/.NET,可以来自不同的文化(固件,驱动程序,移动/工作站,GUI,Win/Linux/Mac/Solaris/AIX等).

为了使hierarhy orginize我们使用这样的路径:

ftp://3pp/VENDOR/PRODUCT/VERSION/...
ftp://3pp/opensource/PACKAGE-x.x.x.tar.bz2
ftp://dist/PRODUCT/VERSION/...

为了维护工件的描述,我们使用READMECHANGES普通测试文件(reStructuredText).

这个架构中缺少什么?

  • 缺少权限(任何人都可能损坏存储空间).
  • 缺少依赖关系跟踪(因此如果版本依赖关系发生更改,则必须更新每个生成文件)
  • 缺少抓取活动(似乎不再需要某些文件,但我们不知道哪些文件).

我不是在寻找现有的解决方案.一些包管理器如rpm/dpkg,听说过Maven repo等......

请推荐Build Artifact Repository Managers.听到缺点和限制也很好.

UPDATE

artifacts repository

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