`
microye
  • 浏览: 21391 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

整体架构dao、service、action篇

阅读更多

1、一个spring配置文件,它是核心。这个xml配置的东东有:
     1)、一个号称目前最快的数据源:BoneCPDataSource。
     2)、数据库连接properties文件。
     3)、spring 自动扫描注册在application context中的组件:<context:component-scan base-package="com.jroo" />
     4)、aop、注解事务管理:<aop:aspectj-autoproxy/>、<tx:annotation-driven/>
     5)、增删改查,就仅此一个spring配置文件,架构搭好了,开发人员不用管任何spring配置文件了。
     6)、见下图:

图片

 

2、实体层:使用jpa注解或hibernate注解标注每个实体,如:

@Entity
@Table(name = "SYS_DEPT")
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)
public class SysDept extends BaseEntity implements java.io.Serializable {
        private static final long serialVersionUID = -7969250614159287629L;
        //略去属性
        //略去构造方法
        //下面是getter方法示例
       @ManyToOne(fetch = FetchType.LAZY)
       @JoinColumn(name = "PARENT_ID")
       public SysDept getSysDept() { return this.sysDept;}
       @Column(name = "DEPT_NAME", length = 20)
       public String getDeptName() { return this.deptName;}    

        ..........

3、dao层性能:使用ehcache作为查询缓存。

4、dao层:

      1)、hibernate实现:推荐使用hibernate。

      2)、dbutils实现:如果是复杂的查询,如实体类没有建立关联关系,需建立左连接、右连接、union等负载查询逻辑, 或者您喜欢直接 写sql,推荐使用dbutils,它能完全满足您写sql的欲望。

      3)、一个dao原则:一个系统只有一个dao,不管您开发的多少个模块,都不再需要写dao。一个dao管理所有模块与数据库的操作。

      4)、hql怎么写的,在哪里写的? 
      4.1)、使用HqlBuilder或SqlBuilder封装查询语句及查询参数。HqlBuilder和StringBuilder、stringBuffer的使用方法类似。

             如分页查询:

             HqlBuilder hqlBuilder = new HqlBuilder("select log from SysLoginLog as log where 1=1");
             if(StringUtils.isNotEmpty(loginUserId)){
                  hqlBuilder.append(" and log.loginUser.id=:loginUserId ").setParam("loginUserId", loginUserId);

              }
           if(StringUtils.isNotEmpty(loginUserName)){
               hqlBuilder.append(" and log.loginUser.userName like:loginUserName ").setParam("loginUserName", "%"+loginUserName+"%");

            }

          page = pageQueryHqlBuilder(page, hqlBuilder);

 

     4.2)、写在外部xml中:
图片
     4.3)、在页面上写,并存入数据库:

     

    

 

5、service层:每个功能模块都应该有一个service层:一个接口和它的实现。

接口如:public interface UserService extends BaseService<SysUser> ,需继承接口BaseService,

BaseService接口中定义了一般增删改查方法。

实现类如:

        @Service 
        @Transactional 
         public class UserServiceImpl extends BaseServiceImpl<SysUser> implements UserService {}

       注意注解:@Service和@Transactional,实现需继承BaseServiceImpl类,

6、action层,如:
        @Controller("system.action.AccessLogAction") 
        @Scope("prototype") 
        public class AccessLogAction extends BaseCrudAction<SysAccessLog>
       注意两个注解和父类BaseCrudAction,如果该功能有附件上传,请继承BaseUploadFileAction。

分享到:
评论

相关推荐

    struts+dao+sqlserve2000的小项目(East)奥运门票OlympicGames_struts

    6. 项目结构:一个标准的Struts项目通常包含配置文件(如struts-config.xml)、Action类、ActionForm、DAO类、Service层以及视图层(如JSP页面)。在"OlympicGames_struts"中,我们可以期待看到类似的组织结构。 7....

    Struts2+Spring3+hibernate3.3集成授课提纲.doc

    - 创建项目时,通常会有如下的目录结构:模型(entity)、DAO接口(dao)、DAO实现(dao.impl)、Service接口(service)、Service实现(service.impl)以及Action类(action)。 - 在DAO实现类中,比如`...

    struts2+hibernate3.2+spring2.0配置+入门实例

    首先,我们理解整体架构,这有助于我们更好地了解各个组件的作用。 **1. 整体架构** 在企业级Java应用中,常见的分层架构包括: - **UI层(用户界面层)**:负责与用户交互,接收和返回用户的请求。在这个示例中...

    项目中Struts+Spring+Hibernate的基本流程

    Spring会创建Action的实例并注入所需的Service层对象,而这些Service对象又会注入DAO层,其中包含了对Hibernate的操作。通过Spring的AOP,可以在特定的切点(如方法调用)上添加事务管理逻辑,确保事务的正确性。 ...

    架构ssh基本jar包

    当一个请求到达时,Struts2会根据配置找到对应的Action,Action通过Spring的DI获取到Service层的服务对象,然后调用Service方法进行业务处理。Service层可能需要访问数据库,这时就会借助Hibernate的DAO层,通过...

    公司内部MVC开发规范(SSH三层框架整合项目开发)

    Action调用的Service方法应与Action同名,这里指的是Struts配置中的名称,而非Action类的类名。 3. Action分类:Action分为两类。一类处理实体的增删改查操作,共享同一Action类,方法命名为save(), delete(), ...

    Struts2+Spring +Hibernate3 整合登陆源码

    在**SSH整合**中,Spring通常作为整体架构的中心,管理Struts2的Action和Hibernate的SessionFactory。Spring通过DI将SessionFactory注入到Struts2的Action中,Action再调用Hibernate的Session来执行数据库操作。同时...

    spring_struts1_hibernate架构空项目

    在SSH架构中,Spring通常作为整体架构的粘合剂,负责管理其他组件(如Struts1的Action)的生命周期和依赖关系。Struts1处理HTTP请求并调用由Spring管理的业务服务。Hibernate则负责持久化,通过Spring的数据访问抽象...

    struts1,hibernate,Spring三大框架整合

    Read, Update, Delete)操作,例如,用户通过前端界面提交请求,Struts1接收并转发给Spring管理的Action,Action调用Service层方法,Service层通过Spring的依赖注入获取到DAO,DAO利用Hibernate与数据库交互完成...

    Struts Spring Hibernate 整合开发

    当Struts、Spring和Hibernate整合在一起时,Spring作为整体的框架协调者,管理着Struts的Action和Hibernate的数据访问对象(DAO)。Struts负责用户界面交互,Spring提供业务层的管理,而Hibernate则专注于数据持久化...

    Struts 数据库项目开发宝典源代码

    尽管如此,理解Struts的工作原理对于理解MVC架构以及Web开发的整体流程仍然具有重要的意义。通过这个"Struts 数据库项目开发宝典源代码",开发者可以深入研究Struts框架,提升自己的技能水平,为日后的开发工作打下...

    java web项目整体异常处理机制.doc

    在Spring+Struts2+Hibernate这样的经典架构中,请求通常会经过Controller(Action)、Service和DAO三层。每一层都有可能出现不同类型的异常。例如,DAO层可能会遇到SQLException,Service层可能会抛出...

    第十一章 开发Spring+Struts+Hibernate应用

    Action再利用Spring提供的DAO(Data Access Object)或Service层,通过Hibernate进行数据库交互。 具体步骤如下: 1. 配置Spring:创建Spring配置文件,定义Bean,包括Struts的Action、Hibernate的SessionFactory...

    ssh2手动整合 步骤 源码

    在SSH2整合中,Spring作为整体架构的胶水,负责管理其他组件和服务。 **二、Struts框架** Struts是基于Model-View-Controller(MVC)设计模式的Web应用程序框架。它简化了创建用户接口、业务逻辑和数据访问层的交互...

    SSI架构web小项目

    用户通过浏览器发送请求到服务器,Struts2的Action拦截请求并处理业务逻辑,接着调用Spring管理的Service层进行实际的业务处理,Service层再通过iBatis执行数据库操作。完成操作后,数据返回给Action,Action再转发...

    struts2_spring_hibernate做的登陆注册框架

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责,共同构建了一个强大的企业级应用开发环境。...同时,理解这种集成方式也有助于掌握Java Web开发的整体架构和最佳实践。

    银行系统项目源码(java)

    在这个银行系统项目中,Struts框架的应用使得业务逻辑、视图展示和控制器交互得以有序分离,提高了系统的整体架构质量。 1. **项目结构**:银行系统的源码通常包括多个模块,如用户管理、账户管理、交易处理等。...

    电话号码管理系统(struts2的一个小应用)

    Struts2的Action类作为控制器,处理请求并调用相应的服务层(Service)或数据访问对象(DAO)。 3. **DAO模式**:数据访问对象(DAO)模式是将数据操作与业务逻辑分离的设计模式。在这个系统中,DAO负责与数据库...

    struts+hibernate+spring配置

    1. **整体架构介绍** 分层架构是降低模块耦合度、提高可重用性和开发效率的有效手段。一个典型的企业级Java应用通常分为四层: - **UI层**:负责用户交互,接收用户的请求并返回处理结果。在这个例子中,我们...

    Struts HIbernate Spring 增删改的实例

    此外,ADU可能代表了Action、DAO(Data Access Object)和User Interface的缩写,这通常表示在三层架构中的分工:Action负责业务逻辑,DAO处理数据访问,而User Interface则是用户交互的界面。在实际项目中,Struts...

Global site tag (gtag.js) - Google Analytics