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。
分享到:
相关推荐
### Spring 3 MVC 注解Action DAO Service 实例教程 ...同时,针对DAO和服务层的注解支持也提高了整体架构的清晰度和可维护性。这些改进不仅提升了开发效率,也为构建高质量的企业级应用提供了强有力的支持。
1. **无缝整合**:Spring框架的一个显著特点是能够将不同的技术栈和服务层紧密地结合在一起,使得整体架构更为清晰和高效。它通过依赖注入机制实现了组件之间的解耦,同时通过面向切面编程增强了系统的可扩展性和...
- **总的原则**: 保持Action简单,只负责接收请求、调用Service处理逻辑、返回响应结果。 - **命名规则**: 按照一定的规则命名Action类,便于理解和维护。 - **框架**: 结合Struts和Spring框架的特点设计Action。 - ...
6. 项目结构:一个标准的Struts项目通常包含配置文件(如struts-config.xml)、Action类、ActionForm、DAO类、Service层以及视图层(如JSP页面)。在"OlympicGames_struts"中,我们可以期待看到类似的组织结构。 7....
- 创建项目时,通常会有如下的目录结构:模型(entity)、DAO接口(dao)、DAO实现(dao.impl)、Service接口(service)、Service实现(service.impl)以及Action类(action)。 - 在DAO实现类中,比如`...
本设计涵盖了在线考试系统的整体架构,包括视图层、控制层、业务逻辑层、数据访问层以及持久层的设计,涵盖了从用户界面到数据库的全过程。 2 系统实现结构 系统采用典型的三层架构,即表现层(视图层)、业务逻辑...
架构风格规定了系统整体的组织结构和组件之间的关系,而设计模式则是特定情境下的解决方案模板。三层架构和MVC(模型-视图-控制器)是两个经常被提及的概念,它们虽然都可被分成三个部分,但本质上是完全不同的。...
- Action、Service和DAO对象的创建和依赖注入都由Spring的Bean工厂实现。 ##### 3. 程序的包结构 - **表现层**:包括`com.ra.web.actionform`和`com.ra.web.action`两个包,分别存放表单对象和Action对象。 - **...
首先,我们理解整体架构,这有助于我们更好地了解各个组件的作用。 **1. 整体架构** 在企业级Java应用中,常见的分层架构包括: - **UI层(用户界面层)**:负责与用户交互,接收和返回用户的请求。在这个示例中...
Spring会创建Action的实例并注入所需的Service层对象,而这些Service对象又会注入DAO层,其中包含了对Hibernate的操作。通过Spring的AOP,可以在特定的切点(如方法调用)上添加事务管理逻辑,确保事务的正确性。 ...
当一个请求到达时,Struts2会根据配置找到对应的Action,Action通过Spring的DI获取到Service层的服务对象,然后调用Service方法进行业务处理。Service层可能需要访问数据库,这时就会借助Hibernate的DAO层,通过...
Action调用的Service方法应与Action同名,这里指的是Struts配置中的名称,而非Action类的类名。 3. Action分类:Action分为两类。一类处理实体的增删改查操作,共享同一Action类,方法命名为save(), delete(), ...
在**SSH整合**中,Spring通常作为整体架构的中心,管理Struts2的Action和Hibernate的SessionFactory。Spring通过DI将SessionFactory注入到Struts2的Action中,Action再调用Hibernate的Session来执行数据库操作。同时...
在SSH架构中,Spring通常作为整体架构的粘合剂,负责管理其他组件(如Struts1的Action)的生命周期和依赖关系。Struts1处理HTTP请求并调用由Spring管理的业务服务。Hibernate则负责持久化,通过Spring的数据访问抽象...
Read, Update, Delete)操作,例如,用户通过前端界面提交请求,Struts1接收并转发给Spring管理的Action,Action调用Service层方法,Service层通过Spring的依赖注入获取到DAO,DAO利用Hibernate与数据库交互完成...
首先,CRM项目开发的第一步是构建整体架构。这通常始于创建一个Web工程,这是所有Web应用程序的基础。在WEB-INF目录下的lib文件夹中,我们需要导入必要的库文件,如MySQL驱动jar包,用于连接和操作数据库;Hibernate...
当Struts、Spring和Hibernate整合在一起时,Spring作为整体的框架协调者,管理着Struts的Action和Hibernate的数据访问对象(DAO)。Struts负责用户界面交互,Spring提供业务层的管理,而Hibernate则专注于数据持久化...
Struts是Java Web开发中的一款经典MVC框架,由Apache软件基金会维护,它极大地简化了构建基于J2EE的Web应用程序的过程。...通过深入学习和理解Struts,开发者能更好地掌握Web应用开发的整体架构和设计原则。
`这样的字段,这是Spring的依赖注入(DI)特性,Spring会自动将相应的Service注入到Action中,无需手动创建对象。同样,`XsServiceImpl`中也有类似的注入`private XsDao xsDao;`。 Struts的配置通常包括Action配置...
尽管如此,理解Struts的工作原理对于理解MVC架构以及Web开发的整体流程仍然具有重要的意义。通过这个"Struts 数据库项目开发宝典源代码",开发者可以深入研究Struts框架,提升自己的技能水平,为日后的开发工作打下...