我想映射到一个只有一个带有 3 个参数的构造函数的源目标。我收到以下错误:
无法实例化目标 com.novasol.bookingflow.api.entities.order.Rate 的实例。确保 com.novasol.bookingflow.api.entities.order.Rate 有一个非私有的无参数构造函数。
当我在源目标中插入一个 no-args 构造函数时,它会起作用,但这会导致类的滥用,所以我宁愿不这样做。
我试过使用转换器,但这似乎不起作用:
Converter<RateDTO, Rate> rateConverter = new AbstractConverter<RateDTO, Rate>() {
protected Rate convert(RateDTO source) {
CurrencyAndAmount price = new CurrencyAndAmount(source.getPrice().getCurrencyCode(), source.getPrice().getAmount());
Rate rate = new Rate(price, source.getPaymentDate(), source.getPaymentId());
return rate;
}
};
Run Code Online (Sandbox Code Playgroud)
是否可以告诉模型映射器如何映射到没有无参数构造函数的目的地?
我正在使用从REST应用程序公开的一些XML,并希望在我自己的REST服务中将其公开为JSON.
现在我有以下POJO:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"salesMarket"
})
@XmlRootElement(name = "salesMarkets")
public class SalesMarkets {
protected List<SalesMarket> salesMarket;
public List<SalesMarket> getSalesMarket() {
if (salesMarket == null) {
salesMarket = new ArrayList<SalesMarket>();
}
return this.salesMarket;
}
}
Run Code Online (Sandbox Code Playgroud)
哪个产生以下JSON:
"salesMarkets": {
"salesMarket": [
{
"brands": {
"brand": [
"DAN"
]
},
"code": "999"
},
{
"brands": {
"brand": [
"DAN"
]
},
"code": "208"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的问题是(使用杰克逊注释),有没有办法避免类名被序列化为JSON ??所以我反而会:
"salesMarket": [{
"brands": {
"brand": [
"DAN"
]
},
"code": …Run Code Online (Sandbox Code Playgroud) 我目前有一个Spring Boot应用程序,我可以通过执行器访问健康检查.
这个应用程序依赖于另一个Spring Boot App可用/ up,所以我的问题是:
通过覆盖第一个应用程序中的运行状况检查,是否有一种优雅的方法可以对第二个应用程序进行运行状况检查?
从本质上讲,我只想使用一个调用并获取两个应用程序的健康检查信息.
谢谢
我需要滚动日志,所以我创建了一个“ logback-spring.xml”文件并将其放置在src / main / resources中。完美地工作。
问题是执行器端点“ / logfile”不再起作用,因为我已从“ applications.yml”文件中删除了日志记录配置。根据文档,为了使“ / logfile”端点正常工作,需要设置“ logging.path”或“ logging.file”。但是,这似乎与我的新'xml配置冲突。
这是我的logback-spring.xml配置,可以很好地进行测量:
<configuration debug="true" scan="true">
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<property name="LOG_PATH" value="logs"/>
<property name="LOG_ARCHIVE" value="${LOG_PATH}/archive"/>
<appender name="RollingFile-Appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_ARCHIVE}/bookingflow-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d %-5level [%thread] %logger : %msg%n</pattern>
</encoder>
</appender>
<appender name="Async-Appender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RollingFile-Appender"/>
</appender>
<logger name="com.novasol.bookingflow.api" level="debug">
<appender-ref ref="Async-Appender"/>
</logger>
<springProfile name="production">
<logger name="com.novasol.bookingflow.api" level="error">
<appender-ref ref="Async-Appender"/>
</logger>
</springProfile>
</configuration>
Run Code Online (Sandbox Code Playgroud)
任何指针表示赞赏。
亲切的问候拉斯