小编Roh*_*wad的帖子

Spring Boot - 加密JSON数据

在我们的应用程序中,我们必须为每个请求和响应加密/解密Json属性值(而不是属性名称).例,
{"userName":"encrypted value", "email":"encrypted value"}

我们使用Sprint boot 1.3,我们使用@RequestBody@ResponseBody注释将请求json与对象绑定,并将响应对象序列化为JSON.

我们不想在每个控制器方法中调用encrypt/decrypt方法.有没有什么办法可以指示sprint在绑定请求对象之前解密json值?同样,在将响应对象字段值转换为json之前对其进行加密?或者定制杰克逊可以帮助我们?

谢谢!

spring json jackson spring-boot

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

无法使用带有参数的构造函数NO_CONSTRUCTOR在MongoDB中实例化com.fasterxml.jackson.databind.node.ObjectNode

在此输入图像描述我正在使用JsonNode从任何类型的jason格式获取数据并将其存储到mongoDb但是当从mongoDB获取数据时,它会抛出错误,如下所示.

Failed to instantiate com.fasterxml.jackson.databind.node.ObjectNode using constructor NO_CONSTRUCTOR with arguments

下面是我的域类

public class Profiler {

 @Id
 private String id;

@Field("email")
private String email;

@Field("profiler")
private Map<String,JsonNode> profiler;

public String getEmail() {
    return email;
}
public void setEmail(String email) {
    this.email = email;
}
public Map<String, JsonNode> getProfiler() {
    return profiler;
}
public void setProfiler(Map<String, JsonNode> profiler) {
    this.profiler = profiler;
}
public Profiler(String email,Map<String,JsonNode> profiler){
    this.email=email;
    this.profiler = profiler;
}
@JsonCreator
public Profiler(@JsonProperty("_id")String id,@JsonProperty("email")String email,@JsonProperty("profiler")Map<String,JsonNode> profiler){
    this.id=id;
    this.email=email;
    this.profiler = …
Run Code Online (Sandbox Code Playgroud)

spring json mongodb

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

在java中创建一个动态类

我正在研究一个问题,其中不同的动物类型从 Animal 接口实现相同的 talk() 方法。
如果你看一下getAnimal()方法,你会发现,当一种新的动物被添加到程序中时,该方法的内部也必须改变。
我想通过对 Animal 进行子类化来添加新动物,而不更改现有类中的任何内容。
例如添加动物“Dog”,criteria="loyal";说话=“汪”。
你能告诉我,这怎么可能?下面是我的代码:

interface Animal {

    public void talk();
}

class Lion implements Animal {

    @Override
    public void talk() {
        System.out.println("ROARRRRR");
    }
}

class Mouse implements Animal {

    @Override
    public void talk() {
        System.out.println("SQUEEEEEAK");
    }
}

class Bison implements Animal {

    @Override
    public void talk() {
        System.out.println("BELLOWWWWW");
    }
}

class AnimalType {

    public static Animal getAnimal(String criteria) {

        // I refactor this method
        if (criteria.equals("small")) {
            return new Mouse();
        } …
Run Code Online (Sandbox Code Playgroud)

java reflection interface dynamic-class

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

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