我在这些论坛以及其他博客文章中阅读了很多答案,但我似乎无法将这些部分联系在一起。
因此,我们从一个包含 Map 属性的基本 POJO 开始。如何包装它已经很好地确定了,但这会返回一些值。我要做的是取然后名称(又名标签)并使其成为有效的 XML“属性”。所以我们会得到一些价值。
我找到了一个例子(如果我能再次找到它会链接)如下:
@XmlAnyElement
public List<JAXBElement<String>> getXmlProperties() {
List<JAXBElement<String>> elements = new ArrayList<JAXBElement<String>>();
for (Map.Entry<String, String> property: properties.entrySet())
elements.add(new JAXBElement<String>(new QName(property.getKey()),
String.class, property.getValue()));
return elements;
}
Run Code Online (Sandbox Code Playgroud)
这工作得很好,但我在我的 Bean/Pojo 类中有这个,它与 GWT 前端共享,因此不能包含对 JAXBElement 和 QName 的引用(需要源代码)。
那么,有没有办法使用 XmlAdapter 和 JAXBElement/QName/XmlAnyElement 梦之队之类的东西来获得类似的结果?顺便说一句,如果考虑到这些因素,我正在使用 RESTEasy。
这是带有@XmlAnyElement+JAXBElement 的论坛帖子: Dynamic tag names with JAXB
为什么 Spring Batch 为每个线程使用 1 个数据库连接?
堆:
数据源配置:
每个数据源都使用 HikariCP,每个数据源默认有 10 个连接。
Spring Batch 配置:ThreadExecutor-1:
core-pool-size: 10
max-pool-size: 10
throttle-limit: 10
Run Code Online (Sandbox Code Playgroud)
Job-1 Config / ThreadPoolTaskExecutor:(通过 application.yml 设置的池大小和节流限制)
@Bean
public Step job1Step() {
return stepBuilderFactory.get("job1Step")
.<ReadModel, WriteModel>chunk(chunkSize)
.reader(itemReader())
.processor(compositeProcessor())
.writer(itemWriter())
.faultTolerant()
.taskExecutor(job1TaskExecutor())
.throttleLimit(throttleLimit)
.build();
}
@Bean
public ThreadPoolTaskExecutor job1TaskExecutor() {
ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor();
pool.setCorePoolSize(poolSize);
pool.setMaxPoolSize(maxPoolSize);
pool.setWaitForTasksToCompleteOnShutdown(false);
return pool;
}
@Bean
@StepScope
public Job1ItemReader job1ItemReader() {
return new …Run Code Online (Sandbox Code Playgroud)