天天看点

《Spring 3.X 企业应用开发实战》摘记 【持续更新】一、实战中的经验二、配置

注解相关

@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,可以看出细粒度达到方法级别。

三、持续更新。。。