小编Aar*_*lla的帖子

补丁的Maven工件版本

我目前正在为Project Dash开发Maven工具.其中一个悬而未决的问题是如何处理错误.

Maven Central说:没有任何出版物发生变化.这是因为Maven从未试图弄清楚版本是否发生了变化(与SNAPSHOTs不同).

但我可能不得不创建一个新的"发布版",例如Eclipse 3.6.2的一部分.我应该使用哪个版本号?3.6.2.1,3.6.2-1,3.6.2_1,3.6.2pl1?为什么?

versioning release-management maven

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

文本编辑器小部件,支持语法高亮,链接和在线拼写检查

我正在寻找一个可嵌入的文本编辑器小部件/组件,它支持语法高亮,链接和在线拼写检查(如现代Web浏览器和文字处理器,即无需单击"拼写检查"按钮).

我的应用程序使用Java和SWT,因此我可以使用任何基于Java的文本编辑器或HTML JavaScript(通过使用Browser支持WebKit 的小部件).也可以嵌入基于Swing的编辑器.

该解决方案应至少在三个主要平台(Win,Mac,Linux)上运行.

java text-editor widget

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

找到sql join失败的值

说我有一个查询,例如:

SELECT *
FROM Table_1
JOIN Table_2
ON Table_1.Col_1 = Table_2.Col_1
Run Code Online (Sandbox Code Playgroud)

所以我有100条记录,其中98条是相同的,所以查询将打印出98条中的98条.如何让SQL打印出未能满足连接的2?

mysql sql database

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

如何包装构造函数?

我有这个JavaScript:

var Type = function(name) {
    this.name = name;
};

var t = new Type();
Run Code Online (Sandbox Code Playgroud)

现在我想添加这个:

var wrap = function(cls) {
    // ... wrap constructor of Type ...
    this.extraField = 1;
};
Run Code Online (Sandbox Code Playgroud)

所以我可以这样做:

wrap(Type);
var t = new Type();

assertEquals(1, t.extraField);
Run Code Online (Sandbox Code Playgroud)

[编辑]我想要一个实例属性,而不是类(静态/共享)属性.

在包装函数中执行的代码应该像我将它粘贴到真正的构造函数中一样工作.

类型不Type应该改变.

javascript oop constructor

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

寻找有状态的单身豆

今天,我们在代码中发现了这种模式:

class Foo {
    private List<String> errors;

    public void addError(String error) { ... }
    public List<String> getErrors();
}
Run Code Online (Sandbox Code Playgroud)

虽然代码似乎有效,但这是一个单独的Spring bean,并且它被注入了几个独立的地方,并且bean的使用者认为它们每个都有自己的错误列表.所以这引入了微妙的错误.

显而易见的解决方案是教育开发人员避免这种错误,但我想知道是否有静态或运行时代码分析工具可以找到这种错误.

例如,bean后处理器可以在返回之前分析bean,并查找不是的私有字段@Autowired.

java singleton spring state

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

使用TypeScript时如何在单个文件组件中导入Vue?

我有一个单一文件组件,我需要导入Vue:

<script lang="ts">
import Vue from 'vue'
import Component from 'vue-class-component'
...
@Component({...})
export class Comp extends Vue {...}
Run Code Online (Sandbox Code Playgroud)

我正在将vue.js导入为浏览器中的模块:

<script type="module" src="module/vue/vue.js"></script>
Run Code Online (Sandbox Code Playgroud)

但我得到了错误

Uncaught TypeError: Class extends value undefined is not a constructor or null
Run Code Online (Sandbox Code Playgroud)

eval()其中vue-cli-service --target lib生成的某处。我也将SFC作为模块加载:

<script type="module" src="module/comp/comp.js"></script>
Run Code Online (Sandbox Code Playgroud)

解决方法是,我尝试将导入内容添加到以下内容的顶部comp.js

import Vue from '/module/vue/vue.js'
import Component from '/module/vue-class-component/vue-class-component.js'
(function webpackUniversalModuleDefinition(root, factory) {
...
Run Code Online (Sandbox Code Playgroud)

但这无济于事。

如何将导入重新连接到将在Web服务器上使用的路径?我检查了webpack的选项,但只发现resolve了似乎可以帮助webpack在打包时找到东西的方法。我需要一种“输出重写”类型的选项。

请注意,我使用的是ES模块,而不是CommonJS或RequireJS。 tsconfig.json

compilerOptions: {"target": "ES2016", module: "ES2015" } 
Run Code Online (Sandbox Code Playgroud)

更新我试图将最终路径放入.vue文件中,并使用configureWebpack.resolve.aliasvue.config.js …

ecmascript-6 vue-component vuejs2

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

有没有办法在Java中说"方法返回这个"?

有没有办法this用泛型来说"这个方法返回"?

当然,我想在子类中重写此方法,因此声明应该可以正常使用@Override.

这是一个例子:

class Base {
    public Base copyTo (Base dest) {
        ... copy all fields to dest ...
        return this;
    }
}
class X extends Base {
    @Override
    public X copyTo (X dest) {
        super.copyTo (dest);
        ... copy all fields to dest ...
        return this;
    }
}
Run Code Online (Sandbox Code Playgroud)

public <T extends Base> T copyTo (Base dest)根本不起作用:我得到"类型不匹配:无法从Base转换为T".如果我用强制转换强制它,则覆盖失败.

java generics

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

如何将时间戳添加到日志文件中

ello每个人,我都是使用apache记录器的新手.我已经下载了log4j-xx,我有以下文本配置文件将root logger level设置为DEBUG,它是mainFormat唯一的appender.

log4j.rootLogger = TRACE, mainFormat, FILE
Run Code Online (Sandbox Code Playgroud)

mainFormat设置为ConsoleAppender.

log4j.appender.mainFormat=org.apache.log4j.ConsoleAppender
Run Code Online (Sandbox Code Playgroud)

mainFormat使用PatternLayout.

log4j.appender.mainFormat.layout=org.apache.log4j.PatternLayout
log4j.appender.mainFormat.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Run Code Online (Sandbox Code Playgroud)

File生成输出文件.

log4j.appender.FILE=org.apache.log4j.FileAppender     
log4j.appender.FILE.File=log4j_HAPR001_OutputFile.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Run Code Online (Sandbox Code Playgroud)

我使用上面的配置文件来创建日志文件.现在我想将当前时间戳添加到日志文件中.有没有办法做到这一点.如果是,可以请一些人给我说明怎么做.提前致谢.

apache logging log4j

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

如何将 StaticListableBeanFactory 与 ClassPathXmlApplicationContext 连接?

在我的测试用例的设置中,我有以下代码:

    ApplicationContext context = new ClassPathXmlApplicationContext(
            "spring/common.xml"
    );
    StaticListableBeanFactory testBeanFactory = new StaticListableBeanFactory();
Run Code Online (Sandbox Code Playgroud)

我如何以这样一种方式连接这两者,即测试可以testBeanFactory在安装过程中注册 bean ,而应用程序的其余部分使用它们而不是在common.xml

注意:我需要混合静态(common.xml)和动态配置。我不能为后者使用 XML,因为这意味着要编写 > 1000 个 XML 文件。

java junit spring unit-testing

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

如何覆盖作用域的scoped bean?

我的Spring Java配置中有这个bean:

@Bean
@Scope( proxyMode=ScopedProxyMode.TARGET_CLASS, value=SpringScopes.DESKTOP )
public BirtSession birtSession() {
    return new BirtSession();
}
Run Code Online (Sandbox Code Playgroud)

对于测试,我需要一个没有范围的模拟(测试中没有"桌面"范围).但是,当我为我的测试创建配置时,它会导入上述配置并包含:

@Bean
public BirtSession birtSession() {
    return new MockSession();
}
Run Code Online (Sandbox Code Playgroud)

我得到一个"桌面"范围模拟豆:-(

如何让Spring"忘记" @Scope注释?

PS:当我不使用@Import并使用复制和粘贴时,它可以工作,但我不想这样做.

proxy spring scope javabeans

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