1.Spring对ORM的支持
ORM :
对象关系映射(Object Relational Mapping)
是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术
基于ORM的数据持久层框架有:
Hibernate
Mybatis
TopLink……
Spring框架则支持集成Hibernate,Java Persistent API(JPA)等,用于资源管理、数据访问对象(DAO)的实现和事务策略
Spring对ORM的支持,使得数据持久层得到显著增强,ORM在Spring容器中也便于配置和部署
使用Spring框架来创建ORM的DAO,好处有:
通用的资源管理
集成事务管理
统一常见的数据访问异常
更容易测试
2.Spring 集成 Hibernate
配置DataSource:
增加dbinfo.properties文件,该属性文件可以配置数据库和Hibernate相关配置
配置DataSource:
在applicationContext.xml文件中配置DataSource
数据源也可以配置其他数据库连接池数据源,比如:
BoneCP
Druid等
配置SessionFactory:
在applicationContext.xml文件中配置sessionFactory
编写实体Bean
编写Dao实现类
添加@Repository
注入sessionFactory
在applicationContext.xml配置文件中添加事务配置
编写Service层实现类
添加@Service
添加@Transaction
注入持久层的Dao
编写Controller实现类
添加@Controller、@RequestMapping
注入业务逻辑层Service
以Spring容器来管理项目中各层对象,并实现注入
注入的顺序是:dataSource->sessionFactory->XXXDao->XXXService
->XXXController
从而实现控制器中调用业务逻辑层,业务逻辑层调用数据持久层,数据持久层借助sessionFactory和dataSource实现对数据的操作
3.数据校检
数据校验在项目中被广泛应用,一般分为前端数据校验和后端数据校验
前端数据校验可以采用JavaScript、Jquery等前端技术
后端数据校验可以采用JSR303进行数据校验
JSR303是一个运行时数据校验框架
它使得验证逻辑从业务代码中脱离出来
一般用于表单验证
JSR303提供了以下注解用于字段的验证
@NotNull 注解元素必须是非空
@Null 注解元素必须是空
@Digits 验证数字构成是否合法
@Future 验证是否在当前系统时间之后
@Past 验证是否在当前系统时间之前
@Max 验证值是否小于等于最大指定整数值
@Min 验证值是否大于等于最小指定整数值
@Pattern 验证字符串是否匹配指定的正则表达式
@Size 验证元素大小是否在指定范围内
@DecimalMax 验证值是否小于等于最大指定小数值
@DecimalMin 验证值是否大于等于最小指定小数值
@AssertTrue 被注解的元素必须为true
@AssertFalse 被注解的元素必须为false
Hibernate Validator扩展了该注解
@Email 被注解的元素必须是电子邮箱地址
@Length 被注解的字符串的大小必须在指定的范围内
@NotEmpty 被注解的字符串的必须非空
@Range 被注解的元素必须在合适的范围内
编写Controller