yinch516 2009-04-13 19:16
浏览 231
已采纳

【请教】关于spring框架中JDBC事务管理的一个问题

我有一个接口类及其实现类。
他们的功能是实现“组信息”及“其与组员的关联关系”的存储。
代码示意如下:
[code="java"]
public class GroupServiceImpl implements GroupService
{
/**
* 单例模式
*/
private static GroupService instance = new GroupServiceImpl();

/**
 * 私有化的构造函数
 */
private GroupServiceImpl()
{       
}

/**
 * 获取GroupServiceImpl的一个实例
 */
public static GroupService getInstance()
{
    return instance;
}

/**
 * 保存组信息(包括组与组员的关联关系)
 */
public void saveGroup(Group group)
{
    ……

    // 保存组信息
    dao.saveGroup(group);

    // 保存关联关系  (group中有成员变量List保存管理关系)
    dao.saveAssociate(group);

    ……
}

}
[/code]

为了保证事务一致,在配置文件中做了如下配置:
[code="java"]
pointcut="execution(* com.ych516.test..*Service.*(..))"
advice-ref="txAdvice" />

[/code]

在执行时,spring会报错,告诉我缺少有效的构造函数。
但是为了保持单例模式的原因,我不能把构造函数改为public型的。
请问,这个问题如何解决?

最好不是采用编程式的事务管理,因为不想代码与框架耦合太紧。
最好仍然是声明的方式,多谢各位~:)

  • 写回答

3条回答 默认 最新

  • iteye_5418 2009-04-14 00:34
    关注

    既然使用spring来管理bean,那么再在GroupServiceImpl 里加这个getInstance()这个方法就没有什么必要了。再说spring管理bean时,默认就是单例的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 根据以下文字信息,做EA模型图
  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥60 关机时蓝屏并显示KMODE_EXCEPTION_NOT_HANDLED,怎么修?
  • ¥66 如何制作支付宝扫码跳转到发红包界面