Posted in Spring, 技术

《Spring 3.X 企业应用开发实战》摘记 【持续更新】

Writer      :BYSocket(泥沙砖瓦浆木匠)

一、实战中的经验

注解相关

@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配置提供事务增强:

<!-- ①配置事务管理器:负责声明式事务管理,引用了dataSource Bean -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>

<!-- ②通过AOP配置提供事务增强,让Service包下所有Bean的所有方法拥有事务 -->
<aop:config proxy-target-class="true">
<!-- ③AOP切入点 -->
<aop:pointcut id="serviceMethod" expression="execution(*projectpackage.service..*(..))"/>
<!-- ④Spring Advisor类似拦截器 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod"/>
</aop:config>
<!-- ⑤AOP通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>

①处配置了transaction事务管理器,引用了dataSource 。其内在应该是把数据库事务用Spring(代码)级别声明式管理

②配了事务管理器,哪里用到了?当然要用的地方,比如Service层。利用AOP切面提供事务,使得事务得到打了鸡血式的使用。里面配置了③切入点(哪里用事务)及④利用Spring Advisor(类似拦截器)拦截至切入点,并引用⑤通知来正则匹配其Service方法来AOP,可以看出细粒度达到方法级别

三、持续更新。。。

欢迎点击我的博客及GitHub — 博客提供RSS订阅哦!

———- http://www.bysocket.com/ ————- https://github.com/JeffLi1993 ———-

微         博:BYSocket  豆         瓣:BYSocket  FaceBook:BYSocket  Twitter    :BYSocket

c260f7abjw1ey2ostokgbj20hs0c876d



One thought on “《Spring 3.X 企业应用开发实战》摘记 【持续更新】

发表评论

电子邮件地址不会被公开。 必填项已用*标注