Springside - 3.3.2

2026/1/15 20:17:23

code

2. 基础框架

?

Spring: Spring Framework

1. 参考资料

? Spring资料(江南白衣博物馆) 1.图书

Spring 2.5 参考手册中文版(英文版) (满江红出品) ? 《Spring Recipes - A Problem-Solution Approach》 Apress,2008 ? 2.文章

?

Introduction to the Spring Framework 2.5 (TSS) Rod 老大的Spring介绍 Spring 2.5版。

3.笔记

Spring2.5的笔记 ? 以前的笔记part1 、part2、part3 有时间会 根据Spring的最新变化重新整理。 ?

Spring 2.5 参考手册中文版(满江红出品) ? 《Spring Recipes - A Problem-Solution Approach》 Apress,2008 Spring 2中较好的参考书。 ? 2. 选型

有人说guice好,但我们用Spring不仅是为了IOC,也为了Spring对JEE所做的封装,以及整个JavaEE界众多项目 (SpringSecurity,CXF、Struts2等)对它的依赖。

3. in SpringSide 3 - Mini示例使用的基本特性

?

属性配置及IOC容器

@Transcational annotation标注的事务管理功能 ? 集成测试的基类

?

3.1 IOC部分特征使用

详见Spring 笔记(江南白衣博物馆)

3.1.1 零配置文件的使用场合

Service,Dao 层在无特殊配置项时,可使用IOC Annotation进行配置 实现约定俗成大于配置的零配置文件.

而其他Database/SessionFactory ,SpringSecurity, CXF等需要进行参数配置时,仍然使用 XML 配置文件。

3.1.2 零配置文件的annotation

SpringSide3中使用@Component注释所有类别,在setter方法(不需要严格按setter命名)上 使用@Autowired 进行byType注入,如果需要byName注入则使用@Resource。 3.1.3 其他特征

使用@Required注释没有用@Autowired注释的属性,保证对象必然被注入,如果对象没有被注入则报错。

使用JSR250的@PostConstruct来定义在执行完所有setter注入后必须执行的函数。@PreDestroy来定义JDK关闭时通过 shutdownhook调用的函数。

ApplcationContext中默认设置Lazyload 与Autowired by type 仍然是必然的选择。 3.1.4 属性文件管理

在配置文件中,很有一些属性会在团队的开发环境,个人的开发环境,集成测试环境,以及生产环境集群的每台服务器中都有所不同的。详见Spring 笔记(江南白衣博物馆)

3.2 事务管理

在Service层用@Transactional 定义事务,详见Spring 笔记(江南白衣博物馆)。 注意Spring3.0 的@Transactional终于支持多个TransactionManager了, showcase里演示了多个数据源(不要求联合事务JTA)导致多个TransactionManager的情况。此时

@Transactional默 认使用中指定的TransactionManager, 但也可以重新指定其他的TransactionManager的BeanName.

在AOP不到的地方,仍然有机会使用TransactionTemplate,(见Showcase的UserJdbcDao 与 LogJdbcWriter。)

3.3 集成测试的基类

详见 测试文档

4. in SpringSide3

4.1 Showcase中使用的Spring功能索引

? ? ? ? ? ?

JMX:JMX的Server端封装 JMS:JMS Template封装 Email:EMail客户端封装

Schedule:Quartz的封装,ScheduleExecutor的封装 Ehcache:Ehcache Server封装 Jdbc:Spring JdbcTemplate

4.2 SpringContextHolder

在Spring ApplicationContext启动时,先把Context放入个该类的静态变量,当模块的代码无法通过正常渠道获得Spring Context及其中的Bean时,可直接从该静态变量中获取。

4.3 AOP Aspect的写法

最新的写法,一切都写在java文件里,只要在applicationContext.xml里面定义一把scan就可以了。

?

Database: ORM-Hibernate, Jdbc-Spring JdbcTemplate, 数据库 - H2、MySQL、Oracle, 数据库连接池-DBCP

1. 资料

数据库访问资料(江南白衣博物馆) ? JPA与Hibernate笔记(江南白衣博物馆) ? 2. 选型

因为最近一年来,JPA与EJB3的应用都没有想象中的多,在国内尤其突出。所以仍然使用纯Hibernate API+JPA1.0 annotation. 支持JPA2.0的Hibernate 3.5刚出来,要再继续观察。

3. in SpringSide 3

3.1 Entity类

1.Mini-Web中的User类是entity类的典型,集中演示了缓存,默认命名策略,多对多关系的定义和fetch策略,级联操作策略,子集合的 排序和缓存、非持久化属性, 见JPA与Hibernate笔记

2.为了统一ID的列名与生成算法,编写了IdEntity基类,演示了自增序列,数据库Sequence(Oracle), UUID(多数据库)的情形。(如果要在Oracle中为每个Entity对应不同Sequence时- 重载getId()函数)。

3.2 更换MySQL或Oralce等数据库

详见数据库说明。

1. H2

1.1 选型

H2嵌入式模式是功能测试的首选。测试要求数据库运行要非常快速,而且为免测试间数据的耦合,要能在每个测试间很快速的重建数据,H2刚好满足这个需求。

H2的主要对手是Derby,对比显示H2比Derby更快,而且有着非常好用的Web管理界面(在Web界面里写SQL时居然有表名列名的动态提示....)

1.2 in Springside 3

在/tools/h2目录里带了启动H2的命令(借助于maven管理的Jar包)。

另外,H2完全兼容hsqldb的语法,一般依赖数据库的开源项目都附带有hsqldb语法的初始化脚本。 SpringSide3

中在使用嵌入式

H2

提供快速功能测试。url

jdbc:h2:mem:mini-service;DB_CLOSE_DELAY=-1


Springside - 3.3.2.doc 将本文的Word文档下载到电脑
搜索更多关于: Springside - 3.3.2 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219