[英]Logback Custom Data Base appender for spring boot application
我正在創建一個java spring啟動應用程序,我需要將(信息日志)記錄到特定的數據庫表中。 為此,我創建了一個擴展AppenderBase類的自定義appender類。 現在的問題是,在我的自定義appender類中,我想使用spring的application.properties文件中提供的數據庫屬性創建/訪問jdbctemplate對象。
如何在自定義appender中訪問spring的jdbctemplate對象?
這是代碼示例 -
public class MyDBAppender extends AppenderBase<ILoggingEvent> {
private JdbcTemplate jdbcTemplate;
@Override
protected void append(ILoggingEvent eventObject) {
jdbcTemplate.savelog(....);
}
}
您可以通過在類級別添加@Component
注釋來創建MyDBAppender的Spring Bean。
或者,如果您不想這樣做或者如果這不起作用,您可以創建一個幫助程序類來訪問ApplicationContext:
@Component
public class ApplicationContextProvider implements ApplicationContextAware {
private static ApplicationContext context;
public static <T> T getBean(Class<T> beanType) {
return context.getBean(beanType);
}
@Override
public void setApplicationContext(ApplicationContext ac) throws BeansException {
context = ac;
}
}
要訪問JdbcTemplate,請使用它。
JdbcTemplate jdbcTemplate = ApplicationContextProvider.getBean(JdbcTemplate.class);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.