《spring基础功能分享》; Spring是一个非常优秀的开源产品,我记得在04年的时候,在国内突然冒出很多可供JAVA开发者使用的优秀开源产品,比如webwork,struts,spring,ibatis,hibernate等等,到现在为止,这些开源产品的版本都算比较稳定了。很多现有的开源产品,或则刚诞生和发展起来的开源产品,几乎每一款都能兼容Spring,或则和Spring搭档.
;Spring提供的内容很广,某些章节的内容也很深,一般来讲,它包括有如下的这些模块构成:
1、核心容器:Spring核心容器为Spring框架提供了基础功能,在这里,查看源码,你会发现有一个特别的类:BeanFactory,它是最基本的Spring容器和DI所依赖的基础。
2、Application Context(应用上下文)模块:他是建立在核心容器之上。这个应用上下文扩展了BeanFactory类,添加了一些别的应用支持,比如I18N(国际化)、应用生命周期事件(比如BeanPostPorcessor接口)等。
3、AOP模块:与DI一样,它支持应用对象之间的松耦合,也是我们开发程序时一直追求的方式。
4、JDBC抽象及DAO模块:jdbcTemplete模板
5、ORM映射集成模块:支持hibernate,jpa,ibatis等框架的持久化模板
6、Spring MVC框架:类似于STRUTS\WEBWORK框架,拥有(model/view/controller)
7、Spring Portlet MVC
8、Spring Web模块
9、远程调用,包括RMI,Hessian,Webservice等
10、JAVA消息服务,支持很多开源消息产品,比如apache activeMQ,MuleESB,JbossMQ等。
11、。。。。。。
今天,我们就挑选Spring在我们的应用开发中最常被使用的模块来讲解一下:DI和AOP,数据持久化。
;DI介绍; 其中SampleDAO中的dataSource将由容器在运行期动态注入,而DataSource的具体配置和初始化工作也将由容器在运行期完成。对比传统的实现方式(如通过编码初始化DataSource实例),我们可以看到,基于依赖注入的系统实现相当灵活简洁。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定SampleDAO中所需的DataSource实例。上面的实例中,我们假设SampleDAO是一个运行在J2EE容器中的组件(如Weblogic)。在运行期,通过JNDI从容器中获取DataSource实例。现在假设我们的部署环境发生了变化,系统需要脱离应用服务器独立运行,这样,由于失去了容器的支持,原本通过JNDI获取DataSource的方式不再有效。我们需要如何修改以适应新的系统环境?很简单,我们只需要修改dataSource的配置:;???
对于DI,常见的有如下几种:
1、基本数据类型的set方法注入:
public class User {
private int userid;
private String username;
private String password;
//为这些属性添加相应的getter和setter
}
配置文件:
bean id=user class=com.wadata.inject.User
property name=userid value=1/property
property name=password value=pass_word/property
property name=username value=tom/property
/bean
测试类:
User user = (User)context.getBean(user);
(注意,spring不一定要让你拥有跟配置文件对应的属性,但一定要拥有配置文件属性所对应的set方法);2、基本数据类型的构造器注入(构造方法):
为刚才的User添加一个构造方法
public User(String username, String password) {
this.username = username;
this.password = password;
}
配置文件:
bean id=“user” class=“com.wadata.inject.User”
constructor-arg value=tom/constructor-arg
constructor-arg value=pass_word/constructor-arg
/bean
当然,你也可以如下严格定义参数类型:
constructor-
原创力文档

文档评论(0)