一、实战中的经验
注解相关
@Repository
标示一种作为单独在Model中使用的操作接口,没有封装的状态。
很常见的定义注解通过Spring定义Dao Bean。DAO(Data Access Object),项目中经常应用的数据库访问层可以使用该注释。但要注意和DDD(领域驱动设计)的区别。
@Service
表示一种作为服务类,也是一种特殊的@Component。
@Controller
标注一种是Controller层的类。也就是形象的Action层,我觉得Action更贴近生活点。因为我比较爱生活。和@Service一样一种特殊的@Component。
@Autowired
标注构造函数,字段,setter方法或配置方法,让其通过Spring依赖注入自动填充。
是否看过很常见的如下定义:在Action层自动注入service层Bean,可以字段也可以set方法,也就是说字段可以省了段代码(何乐而不为)。
那个配置方法,就是Java Config方法,比如说获取些主机名,端口号之类。
@RequestMapping
作用于类或者方法,用于映射Web请求。也就是一种在Servlet与Web组件之间的一种中庸之道吧。
二、配置
<context:component-scan base-package=”packagename.xxx”/>
扫描base-package下的包,将标注Spring注解(@Service、@Autowired、@Repository)的类自动转化为Bean,完成Bean的注入。比如DAO层,Service层的依赖注入。
事务配置及AOP配置提供事务增强:
①处配置了transaction事务管理器,引用了dataSource 。其内在应该是把数据库事务用Spring(代码)级别声明式管理
②配了事务管理器,哪里用到了?当然要用的地方,比如Service层。利用AOP切面提供事务,使得事务得到打了鸡血式的使用。里面配置了③切入点(哪里用事务)及④利用Spring Advisor(类似拦截器)拦截至切入点,并引用⑤通知来正则匹配其Service方法来AOP,可以看出细粒度达到方法级别。
三、持续更新。。。