2017-07-26 25 views
1

我已經最近切換到HikariCP而不是tomcat連接池。 我通過/configprops執行端點檢查連接屬性,但現在該怎麼辦我得到的是:彈簧驅動器:/ configprops不顯示HikariCP數據源

"dataSource" : { 
"prefix" : "spring.datasource.hikari", 
"properties" : { 
    "error" : "Cannot serialize 'spring.datasource.hikari'" 
} 
} 

我怎樣才能使它恢復正常值?我認爲春季引導應該處理這與org.springframework.boot.autoconfigure.jdbc.metadata.HikariDataSourcePoolMetadata

回答

1

所以我發現,Hikari的DriverDataSource投擲SQLFeatureNotSupportedException在一些getters。解決這個問題的唯一方法是定製執行器頁面。幸運的是,它正好是相對容易:

@Component 
public class MyConfigurationPropertiesReportEndpoint extends ConfigurationPropertiesReportEndpoint { 

    @Override 
    protected void configureObjectMapper(ObjectMapper mapper) { 
    super.configureObjectMapper(mapper); 
    mapper.addMixIn(HikariDataSource.class, HikariDataSourceMixIn.class); 
    } 
} 

而且MIXIN:

public abstract class HikariDataSourceMixIn { 

    @JsonIgnore 
    abstract PrintWriter getLogWriter(); 

    @JsonIgnore 
    abstract HikariConfigMXBean getHikariConfigMXBean(); 
}