大约一年后,我读了一篇文章,解释了如何创建一个基本上是其他注释容器的注释.这样,如果我总是在特定用例中使用相同的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配置和序列化器配置包装成一个注释.
我正在设计一个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,但我不愿意消除使用该知识的可能性(比如通过构建链接来访问配置文件图片)客户端没有先查找用户).
我没有使用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的消息)有一些问题,这些是我得到的唯一日志消息,我真的想知道它的原因.
我正在重建现有的构建管道作为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) 我能做什么,JPA(我使用Hibernate)创建无符号类型的列?目前我的所有ID列都已签名.
我需要在数据库中创建一个新表,我通过JPA EntityManager访问.JPA NativeQueries是否支持"选择"或"更新"以外的查询?或者是否有另一种在JPA上下文中执行复杂SQL查询的最先进方法?
目前我正在使用spring security和@PreAuthorize
annotations来保护方法调用.现在我想更改方法调用的身份验证令牌,例如spring-security 的run-as身份验证替换允许我这样做.
我可以在每个方法基础上配置替换吗?每个注释,SpEL表达式....如果没有,是否可以在runAsManager中弄清楚调用什么方法?我如何配置安全对象的安全配置属性呢?
我有一个用弹簧写在码头服务器上的Web应用程序.因为负载平衡,我必须通过Web服务器复制http会话和spring-security上下文.
有人能指出一个工作实例如何使这成为可能吗?
mvc控制器是spring-security-oauth2的一部分,因此我影响它们的能力有限,而码头是我们环境的先决条件.对于大多数数据和缓存,我们将使用infinispan.
我找不到任何关于tu簇与弹簧的当前信息,所以我很感激每一个帮助.
我的 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
hibernate ×2
java ×2
jpa ×2
spring ×2
annotations ×1
buildpack ×1
create-table ×1
hateoas ×1
jackson ×1
jboss6.x ×1
jenkins ×1
json ×1
mysql ×1
paketo ×1
rest ×1
spring-boot ×1
spring-mvc ×1
sql ×1
transactions ×1
warnings ×1