小编Lau*_*res的帖子

如何创建一组杰克逊注释的注释?

大约一年后,我读了一篇文章,解释了如何创建一个基本上是其他注释容器的注释.这样,如果我总是在特定用例中使用相同的5个注释,我会创建一个包含它们的注释并使用它.

不幸的是,我再也找不到这篇文章,而且我现在真的想为我的杰克逊配置做这件事.

由于我自己找不到任何相关信息,我开始质疑我的记忆.这可能还是我错了?

编辑

我想要的是:

@Target(ElementType.METHOD)
@com.fasterxml.jackson.databind.annotation.JsonSerialize(using=MySerializerThatIsUsedEverywhere.class
@javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter(MyCustomXmlAdapter.class)
@SomeOtherEvaluatedByTheSerializer
public @interface SerializerUseCase01 {
    public String a();
    public int b();
)
Run Code Online (Sandbox Code Playgroud)

我的情况是我有一堆序列化用例,可以由具有不同配置的相同序列化程序处理.为了使一切更容易使用和更透明,我想将jackson配置和序列化器配置包装成一个注释.

java annotations jackson

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

我该如何处理JSON中的HATEOAS链接和引用?

我正在设计一个REST api并且像它一样成为RESTful.我想将HATEOAS合并到json响应中.

将URL添加到相关资源很容易,但是对于用于这些链接的结构进行了一些讨论.

我发现很多文章使用从ATOM提要借来的结构:

"links": [ 
    {"rel": "self", "href":"http://example.org/entity/1"},
    {"rel": "friends", "href":"http://example.org/entity/1/friends"}, ... 
]
Run Code Online (Sandbox Code Playgroud)

这提出了一些问题:

  • 为什么使用数组作为容器?根据我所知道的javascript开发人员,使用链接作为对象的属性,访问链接会更容易.例如:

    "self":    { "href":"http://example.org/entity/1" }, /* (facebook uses this) */  
    "friends": { "href":"http://example.org/entity/1/friends", "type": "..."}
    
    Run Code Online (Sandbox Code Playgroud)
  • 是否有一个共同的json结构(在再次调整原子旁边)来描述资源属性中的引用?(例如消息的发件人).

    该引用可能应该再次作为URL解析,但是包含简单ID也不好吗?有一些像:

    "sender": { 
        "id": 12345,
        "href": "resource-uri"
    }
    
    Run Code Online (Sandbox Code Playgroud)

我的想法是,虽然HATEOAS使得客户端不需要很多知识来使用API​​,但我不愿意消除使用该知识的可能性(比如通过构建链接来访问配置文件图片)客户端没有先查找用户).

rest json hateoas

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

导致Arjuna 1603的原因(无法找到用于恢复非可序列化XAResource的新XAResource)

我没有使用Arjuna的经验,但是我的日志文件充满了:

2011-06-27 09:25:18,021 WARN  [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA-16037 Could not find new XAResource to use for recovering non-serializable XAResource  formatId=131076, gtrid_length=29, bqual_length=28, tx_uid=0:ffff0a2012b7:126a:4e006635:2ba0, node_name=1, branch_uid=0:ffff0a2012b7:126a:4e006635:2ba1, eis_name=unknown eis name

2011-06-27 09:25:18,021 WARN  [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA-16038 No XAResource to recover < formatId=131076, gtrid_length=29, bqual_length=28, tx_uid=0:ffff0a2012b7:126a:4e006635:2ba0, node_name=1, branch_uid=0:ffff0a2012b7:126a:4e006635:2ba1, eis_name=unknown eis name >
Run Code Online (Sandbox Code Playgroud)

这两条消息总是汇集在一起​​,并且它们是定期写的.这些消息的数量随着JBoss服务器实例的正常运行时间而增加.由于我的应用程序(它是一个MDB消费来自远程ActiveMQ的消息)有一些问题,这些是我得到的唯一日志消息,我真的想知道它的原因.

warnings transactions jboss6.x

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

如何在声明管道中等待用户输入而不阻塞重量级执行程序

我正在重建现有的构建管道作为jenkins声明管道(多分支管道)并且在处理构建传播时遇到问题.

在打包并存储所有相关文件之后,管道应该等待用户输入以触发部署.

如果我只是添加一个输入步骤,则阻止当前的构建节点.由于这个执行器很重,我想将这一步移到更轻量级的机器上.

最初我做了一个脚本管道工作,只创建了两个不同的node('label')块.有没有办法让我用声明性语法做类似的事情?

node('spine') { 
    stage('builder') {
        sh 'mvn clean compile'
        stash name: 'artifact', includes: 'target/*.war'
    }
}
node('lightweight') {
    stage('wait') {
        timeout(time:5, unit:'DAYS') {
            input message:'Approve deployment?'
        }
    }
    // add deployment stages
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几件事:

在顶层配置代理并将其他代理配置添加到传播步骤,但随后我有两个执行器阻塞,因为顶级定义的构建节点未停止.

agent none在顶级设置并按步骤配置代理.那么git checkout就不存在于第一个节点上.

编辑1

我根据你的建议重新配置了我的管道,它目前看起来像这样:

pipeline {
agent none
tools {
    maven 'M3'
}
stages {
    stage('Build') {
        agent { label 'spine' }
        steps {
            checkout scm // needed, otherwise the workspace on the first step is empty
            sh …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-pipeline

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

Java中弹簧安全的替代方案(spring)

我正在寻找一个良好的安全框架,允许为方法注释基于参数的访问规则.

基本上我想检查是否允许经过身份验证的用户使用特定对象作为参数调用某个方法.

Spring安全性可以满足我的需求,但正因为如此(春季论坛)我正在寻找替代品,如果我无法让它工作.

要求:

  • 基于配置或注释的方法安全性,我想避免把我的安全代码放在我的服务方法中
  • 规则是基于方法的参数,基于简单角色的安全性是不够的
  • 开箱即用的弹簧支架是一个加号

有什么建议?

java authentication spring authorization

13
推荐指数
1
解决办法
8821
查看次数

JPA和Hibernate中的Unsigned Int

我能做什么,JPA(我使用Hibernate)创建无符号类型的列?目前我的所有ID列都已签名.

hibernate jpa

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

通过JPA EntityManager执行Create Table Query

我需要在数据库中创建一个新表,我通过JPA EntityManager访问.JPA NativeQueries是否支持"选择"或"更新"以外的查询?或者是否有另一种在JPA上下文中执行复杂SQL查询的最先进方法?

mysql sql hibernate jpa create-table

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

使用spring-security更改方法调用的安全性上下文

目前我正在使用spring security和@PreAuthorizeannotations来保护方法调用.现在我想更改方法调用的身份验证令牌,例如spring-security 的run-as身份验证替换允许我这样做.

我可以在每个方法基础上配置替换吗?每个注释,SpEL表达式....如果没有,是否可以在runAsManager中弄清楚调用什么方法?我如何配置安全对象的安全配置属性呢?

spring spring-security

7
推荐指数
2
解决办法
2403
查看次数

我如何集群弹簧mvc应用程序?

我有一个用弹簧写在码头服务器上的Web应用程序.因为负载平衡,我必须通过Web服务器复制http会话和spring-security上下文.

有人能指出一个工作实例如何使这成为可能吗?

mvc控制器是spring-security-oauth2的一部分,因此我影响它们的能力有限,而码头是我们环境的先决条件.对于大多数数据和缓存,我们将使用infinispan.

我找不到任何关于tu簇与弹簧的当前信息,所以我很感激每一个帮助.

spring-mvc distributed-computing spring-security

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

使用 paketo 进行 Spring-Boot docker 构建在 Bitbucket 管道上失败

我的 spring-boot projekts 使用 spring-boot-maven-plugin 及其构建映像目标在 bitbucket.org 上构建其 docker 映像。在管道上,我们总是收到以下 Maven 错误:

Docker API call to 'localhost:2375/v1.24/containers/create' failed with status code 403 "Forbidden"
Run Code Online (Sandbox Code Playgroud)

在docker日志中我发现了以下内容

time="2021-03-25T11:30:59Z" level=info msg="Container create request." ArgsEscaped=false AttachStderr=false AttachStdin=false AttachStdout=false ExposedPorts="map[]" Healthcheck="<nil>" Labels="map[author:spring-boot]" MacAddress= NetworkDisabled=false OnBuild="[]" OpenStdin=false StdinOnce=false StopSignal= StopTimeout="<nil>" Tty=false plugin=pipelines

time="2021-03-25T11:30:59Z" level=info msg="Container create request." AutoRemove=false BlkioDeviceReadBps="[]" BlkioDeviceReadIOps="[]" BlkioDeviceWriteBps="[]" BlkioDeviceWriteIOps="[]" BlkioWeight=0 BlkioWeightDevice="[]" CPUCount=0 CPUPercent=0 CPUPeriod=0 CPUQuota=0 CPURealtimePeriod=0 CPURealtimeRuntime=0 CPUShares=0 CapAdd="[]" CapDrop="[]" Capabilities="[]" Cgroup= CgroupParent= ConsoleSize="[0 0]" ContainerIDFile= CpusetCpus= CpusetMems= DNS="[]" DNSOptions="[]" DNSSearch="[]" DeviceCgroupRules="[]" Devices="[]" ExtraHosts="[]" …
Run Code Online (Sandbox Code Playgroud)

buildpack spring-boot spring-boot-maven-plugin bitbucket-pipelines paketo

7
推荐指数
0
解决办法
590
查看次数