dao包的组织

问题描述

公司转向java、有一个疑问不解1 把erp中所有项目的dao(包括select insert update)放在一个包下、如果这样结构就不是很清晰、看起来比较乱、不知效率如何?2 每一个项目的dao放在各自的包中、如果这样applicationContext.xml中就得为每个项目配置datasource、事务请问你们实际中开发中是怎样做的?各有何利弊? 问题补充:finallyException 写道

解决方案

我用的都是HibernateTranscationManager来管理事务的例如:<!-- 配置事务管理器Bean,因为使用Hibernate持久化技术,故使用HibernateTranscationManager 事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <!--为事务管理器注入SessionFactory 引用 --> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- 定义切入点 --> <aop:config> <aop:pointcut id="transactionPointcut" expression="execution(* xxx.xxx.service.impl.*.*(..))" /> <!-- 事务通知器 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="transactionPointcut" /> </aop:config> <!-- 事务传播属性 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="find*" read-only="true" propagation="NOT_SUPPORTED" /> <tx:method name="*" /> </tx:attributes> </tx:advice>
解决方案二:
可以在dao包下面再次分包然后利用通配符进行相关配置不过...为什么要给dao加事务?我认为把事务加载service层更好一些
解决方案三:
包放置的位置和性能没关系 就是为了可读性,这个要看你们代码的oo设计了 没有必须怎样的说法。

时间: 2024-10-27 08:18:04

dao包的组织的相关文章

Java随手笔记8之包、环境变量和访问控制及maven profile实现多环境打包_java

一.java中的包 Java利用包来组织代码,一来使大型项目的代码结构清晰,二来包是一个命名空间的划分,即不同包中可以有相同名字的类,只需在在类名前加上包名即可区分它们. Package xxx 必须位于java文件除了注释以外的第一行,用来指明当前文件中的类属于哪一个包,如果没有package语句,则该文件中的类都属于默认包. Import xxx用来在当前java文件中导入不属于当前包中的类,从而可以在当前文件中使用它们. 二.java中的环境变量 1.path 环境变量其实就是一组变量(废

php上传apk后自动提取apk包信息的使用(示例下载)_php实例

进入公司第一个项目就是做market市场.所以后台要上传APK软件之类.为了方便,上传APK后由系统自动提取APK文件的相关信息,比如:apk包名.产品名称.版本信息.APK Code.程序大小.ICON等.起初处理方式 通过命令:java -jar AXMLPrinter2.jar AndroidManifest.xml > cmdAfter.xml得到cmdAfter.xml文件,然后分析cmdAfter.xml文件获取相关信息. 但是遗憾的是,从这文件中可以得到apk包名,但无法得到ico

spring maven-maven项目spring配置访问dao问题。

问题描述 maven项目spring配置访问dao问题. 我的src/main/java里面有com.zdyl.qgy.dao包,为什么applicationContext-daos.xml里面bean的class访问不到dao?maven项目. Exception in thread "main" org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.zdyl.qg

oracle PL/SQL(procedure language/SQL)程序设计之函数+过程+包(转)

匿名PL/SQL块回顾 DECLARE (可选)     定义在PL/SQL块中要使用的对象 BEGIN (必须)     执行语句 EXCEPTION (可选)     错误处理语句 END; (必须) 匿名块(以DECLARE或BEGIN开始)每次使用时都要进行编译. 匿名块不存储在数据库中,并且它不能从其它的PL/SQL块中进行调用.     过程.函数.包和触发器:都是带名块.(请注重同匿名块的比较) 过程.函数.包和触发器:可以存储在数据库中,并且可以在需要的时候运行. 过程.函数.包

Java Dao模式

什么是DAO DAO是Data Access Object数据访问接口,数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据库资源中间. DAO的功能: 1. DAO用来封装Data Source的..就比如,Connection conn = DriverManager.getConnection(...) . . . . . . 就可以把DriverManager. username, passpword这一些放在DAO中 以后要更改  数 据 库  的类型.比如要把SQL Server

贫血模型与领域架构模式

转载:http://mabusyao.iteye.com/blog/467704 例子 我要举的是一个银行转帐的例子,又是一个被用滥了的例子.但即使这个例子也不是自己想出来的,而是剽窃的<<POJOs in Action>>中的例子,原谅我可怜的想像力 .当钱从一个帐户转到另一个帐户时,转帐的金额不能超过第一个帐户的存款余额,余额总数不能变,钱只是从一个账户流向另一个帐户,因此它们必须在一个事务内完成,每次事务成功完成都要记录此次转帐事务,这是所有的规则.     贫血模型 我们首

领域驱动设计(DDD)在美团点评业务系统的实践

前言 至少30年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans将其定义为领域驱动设计(Domain-Driven Design,简称DDD).在互联网开发"小步快跑,迭代试错"的大环境下,DDD似乎是一种比较"古老而缓慢"的思想. 然而,由于互联网公司也逐渐深入实体经济,业务日益复杂,我们在开发中也越来越多地遇到传统行业软件开发中所面临的问题.本文就先来讲一下这些问题,然后再尝试在实践中用DDD的思想来解决这些问题.

悠然乱弹:“最好的模板引擎”Beetl 剖析及与Tiny模板引擎对比

Beetl的环境搭建 输入命令 ? 1 git clone https://git.oschina.net/xiandafu/beetl2.0.git 不一会儿,输出了下面的内容 ? 1 2 3 4 5 6 7 Cloning into 'beetl2.0'... remote: Counting objects: 5807, done. remote: Compressing objects: 100% (2145/2145), done. remote: Total 5807 (delta

autoconf手册(六)

类似于AC_DEFINE,但还要对variable和value进行三种shell替换(每种替换只进行一次):变量扩展(`$'),命令替换(``'),以及反斜线传义符(`\').值中的单引号和双引号没有特殊的意义.在variable或者value是一个shell变量的时候用本宏代替AC_DEFINE.例如: AC_DEFINE_UNQUOTED(config_machfile, "${machfile}") AC_DEFINE_UNQUOTED(GETGROUPS_T, $ac_cv_t