小编JMB*_*JMB的帖子

在Java 8默认接口方法上使用Spring @Transactional注释是否安全?

Spring文档建议不要在接口方法上放置@Transactional注释,因为接口注释不是由类继承的.但是,使用Java 8,我们可以在界面中提供具体的默认实现.如果这样的默认接口方法需要是事务边界,我们别无选择:我们必须在接口方法上放置@Transactional注释.

这会起作用(即在这种情况下春天是否会尊重交易边界)?如果是这样,这种方法有任何隐藏的陷阱吗?

java spring annotations transactions java-8

14
推荐指数
1
解决办法
2631
查看次数

在logback DBAppender中使用Spring dataSource

我有一个使用Spring来设置连接池数据源的webapp,如下所示:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass" value="${jdbc.driverClassName}" />
    <property name="jdbcUrl" value="${jdbc.url}" />
    <property name="user" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
Run Code Online (Sandbox Code Playgroud)

该应用程序还使用logback将事件直接记录到数据库.使用DBAppender在logback.xml文件中配置Logback:

  <appender name="eventsDB" class="ch.qos.logback.classic.db.DBAppender">
    <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
      <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <driverClass>${jdbc.driverClassName}</driverClass>
        <jdbcUrl>${jdbc.url}</jdbcUrl>
        <user>${jdbc.username}</user>
        <password>${jdbc.password}</password>
      </dataSource>
    </connectionSource>
  </appender>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我们正在设置dataSource两次,并且在每种情况下都需要单独的属性替换.简单地让Spring创建dataSource并将其传递给logback DBAppender会好得多.

谁能建议最好的方法呢?

spring datasource logback

6
推荐指数
1
解决办法
1143
查看次数

如何在 JQuery 数据表中重置分页

我有一个 JQuery 数据表,它通过 ajax 请求加载数据。表格旁边有一个表格,可让用户过滤服务器上的结果。当用户更改过滤器表单时,我使用新的过滤器数据调用 fnReloadAjax(),然后使用新的过滤结果重新绘制表格。

我遇到的问题是分页会粘住,即使表格不再有足够的项目来到达当前页面。因此,如果表格最初有 20 个项目,并且用户在第 2 页(每页 10 个项目),并且他们更改过滤器以便只返回 5 个项目,则表格不显示任何项目并在底部显示:

Showing 11 to 5 of 5 entries
Run Code Online (Sandbox Code Playgroud)

即使只有一页的数据,它仍然在第 2 页。

我发现了许多关于尝试保留当前页面/行的帖子,但没有一个显示将分页重置为第一页的简单方法。什么是最简单的方法来做到这一点?

为了清楚起见,这是我的代码的简化版本:

$("#mytable").dataTable({
    bStateSave: false,
    fnServerData: function (sSource, aoData, fnCallback) {
        return $.ajax({
            type: "POST",
            url: url,
            data: {filter: filterValue}
        });
    }
});

$("#myForm").submit(function(e) {
    table.fnReloadAjax();
    return false;
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery pagination datatables jquery-datatables

5
推荐指数
1
解决办法
2万
查看次数