小编Mic*_*hal的帖子

如何使用ObjectMapper在没有默认构造函数的情况下对不可变对象进行de/serialize?

我想使用com.fasterxml.jackson.databind.ObjectMapper序列化和反序列化不可变对象.

不可变类看起来像这样(只有3个内部属性,getter和构造函数):

public final class ImportResultItemImpl implements ImportResultItem {

    private final ImportResultItemType resultType;

    private final String message;

    private final String name;

    public ImportResultItemImpl(String name, ImportResultItemType resultType, String message) {
        super();
        this.resultType = resultType;
        this.message = message;
        this.name = name;
    }

    public ImportResultItemImpl(String name, ImportResultItemType resultType) {
        super();
        this.resultType = resultType;
        this.name = name;
        this.message = null;
    }

    @Override
    public ImportResultItemType getResultType() {
        return this.resultType;
    }

    @Override
    public String getMessage() {
        return this.message;
    }

    @Override
    public String getName() {
        return this.name; …
Run Code Online (Sandbox Code Playgroud)

java json

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

如何防止SVN恢复已删除的文件

我在一个开发团队工作,我们没有完全分开的代码.因此,当我处理一段时间的事情大约一周时,我需要在提交更改之前进行更新.但是当我这样做时,所有已删除的文件都将被恢复.我知道有SVN删除操作,但是对每个删除的文件或目录都很烦人.

有什么诀窍,如何防止这个功能?

svn tortoisesvn

13
推荐指数
2
解决办法
3294
查看次数

使用substr修剪Oracle上的字符串

我想将一个字符串修剪为指定的长度.如果字符串较短,我不想做任何事情.我发现了一个函数substr()来完成这项工作.但是,Oracle文档中没有任何内容,如果字符串比最大长度更短,会发生什么.

例如:

select substr('abc',1,5) from dual;
Run Code Online (Sandbox Code Playgroud)

返回'abc',这就是我需要的.

我想问一下这是否安全,因为函数似乎没有为此用法定义.有没有更好的方法来截断?

sql oracle plsql substr

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

Eclipse中定义的$ {body_statement}在哪里

在Eclipse Luna中,我想更改自动生成方法的内容,所以我去了Window-> Preferences-> Java-> Code Style-> Code Templates-> Code-> Method body,我看到了这个声明:

// ${todo} Auto-generated method stub
${body_statement}
Run Code Online (Sandbox Code Playgroud)

是否可以更改$ {body_statement}内容?

编辑:@Duncan - 我不希望我生成的方法返回null但我希望它们抛出一个异常,该方法未实现.我想要更改$ {body_statement}的原因是因为我想通过一次编辑更改所有出现的内容,而且我不想遍历所有模板并逐个检查它们.

java eclipse

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

为什么从int到Long的隐式转换不可能?

我可以隐式地将int转换为long和long to Long.为什么不能将int隐式转换为Long?为什么Java不能在示例的最后一行进行隐式转换?

int i = 10; //OK
long primitiveLong = i;  //OK
Long boxedLong = primitiveLong;  //OK
boxedLong = i; //Type mismatch: cannot convert from int to Long
Run Code Online (Sandbox Code Playgroud)

java

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

如何通过start-stop-daemon优雅地关闭Spring Boot应用程序

我们有一个多线程Spring Boot应用程序,它在Linux机器上作为守护进程运行.当我尝试通过这样的start-stop-daemon停止应用程序时

start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
Run Code Online (Sandbox Code Playgroud)

发送SIGTERM信号,应用程序即将结束.但是我希望应用程序等待,直到每个线程完成它的工作.

有没有办法,如何管理收到SIGTERM信号时会发生什么?

java multithreading start-stop-daemon spring-boot

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

如何在 Intellij Idea 中自动移动单元测试类?

有什么办法,当我移动测试类时,如何让 Intellij Idea 自动将我的单元测试类移动到相应的包?

例如我有这两个类:

src/main/java/com/MyClass.java
src/test/java/com/MyClassTest.java
Run Code Online (Sandbox Code Playgroud)

当我移动

src/main/java/com/MyClass.java
Run Code Online (Sandbox Code Playgroud)

src/main/java/com/subpackage/MyClass.java
Run Code Online (Sandbox Code Playgroud)

我需要像这样自动移动测试类:

src/test/java/com/subpackage/MyClassTest.java
Run Code Online (Sandbox Code Playgroud)

这是与 MoreUnit Eclipse 插件相同的功能。

java unit-testing intellij-idea

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

Spring Boot Actuator - 如何向/ shutdown端点添加自定义逻辑

在我的项目中,我开始使用Spring Boot Actuator.我使用/shutdown端点来优雅地停止嵌入式Tomcat(这很好用),但我还需要在关机期间做一些自定义逻辑.有什么办法,该怎么办?

java spring spring-boot spring-boot-actuator

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

getOrCreate函数是好的还是坏的做法?

在我的代码(假设的)中,我想使用getOrCreate函数。我传递参数,然后从数据库中获取一个新实体或一个现有实体(如果存在)。

从一个角度看,这是一种错误的方法,因为函数不应做超过一件事。但是从另一个角度来看,这是一个单一的操作,只是没有一个合适的英文单词,我可以减少代码中的重复项。

那么,使用这种方法是好事还是坏事?又为什么呢?

java architecture

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

在类路径上添加属性文件

我正在构建一个基于Spring Boot的Spring独立应用程序.我希望这个应用程序从一个独立目录中的jar文件之外的属性文件中读取它的属性.构建的应用程序的结构如下所示

testApplication
??? test-1.0-SNAPSHOT.jar
??? lib
?   ??? <dependencies are here>
??? conf
    ??? application.properties
Run Code Online (Sandbox Code Playgroud)

我想在classpath上加载application.properties文件,所以我能够在我的应用程序中读取.可能吗?因为当我像这样运行我的jar文件时(在Windows上):

java -cp "./*;lib/*;conf/*" com.myapp.Test
Run Code Online (Sandbox Code Playgroud)

我得到以下的例外:

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.myapp.Test]; nested exception is java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist
    at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:180)
...
Caused by: java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist       
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
Run Code Online (Sandbox Code Playgroud)

我尝试通过此类注释从应用程序中读取文件:

@PropertySource("classpath:application.properties")
Run Code Online (Sandbox Code Playgroud)

Java文档没有提到,可以在类路径上加载非jar文件,但如果这个application.properties在jar文件test-1.0-SNAPSHOT.jar中,则可以通过这种方式访问​​它.

是否可以将外部非jar文件放在类路径上?我知道我不一定在classpath上有文件,我可以通过不同的方式访问它,但我仍然很好奇,如果可能的话.

java spring classpath

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