spring之旅

来源:互联网 发布:java实现接口的方法 编辑:程序博客网 时间:2024/06/09 14:24

1.1简化Java开发

为了简化java开发的复杂性,spring采用了一下四种关键策略:

a)基于POJO(plain old java object)的轻量级和最小侵入性编程。

比如说,许多框架比如struts通过强迫应用继承它们的类或实现它们的接口从而导致应用与框架绑定,但Spring不会,相反,在基于spring构建的应用中,它的类通常不会有任何痕迹表明你使用了Spring。最坏的场景也是一个类或许用了spring注解,但它依旧是POJO.

b)通过依赖注入和面向接口实现松耦合。

耦合具有两面性。一方面,紧密耦合的代码难以测试,难以复用,难以理解,而且很容易出现“打地鼠”bug(修复一个bug,会出现一个或者更多的bug);另一方面,一定的程度的耦合又是必须的。因此,耦合是必须的,但必须谨慎管理。

c)基于切面和惯例进行声明式编程。

DI(dependency injection)能够让相互的协作的软件组件保持松散耦合,而面向切面编程(aspect-oriented programing,AOP)允许你把遍布应用各处的功能分离出来形成可复用的组件。诸如日志、事物管理、安全这样的系统服务。

d)通过切面和模板消除样板式代码。

最典型的例子就是JDBC,里面的建立数据库连接、语句对象等等样板式代码,而我们的关注点应该是业务代码,而不是这些繁琐重复的样板式代码。

1.2 容纳你的bean

在基于spring的应用中,你的应用对象生存与spring容器(container中,spring容器负责创建对象,装配它们,配置它们并管理它们的整个生命周期。

spring容器不只有一个。自带了多个容器实现,可以归为两种类型。

a)BeanFactory(org.springframework.beans.factory.BeanFactory接口定义)是最简单的容器,提供了基本的DI支持。

b)ApplicationContext(org.springframework.context.Application接口定义)基于BeanFactory构建.

AnnotationConfigApplicationContext:从一个或多个基于java的配置类中加载应用上下文。

AnnotationConfigWebApplicationContext:从一个或多个基于java的配置类中加载Spring Web应用上下文.

ClassPathXmlApplicationContext:从类路径下一个或多个xml配置文件中加载上下文定义,把应用上下文的定义文件作为类资源。

FileSystemXmlApplicationContext:从文件系统下的一个或多个XML配置文件中加载上下文定义。

XmlWebApplicationContext:从web应用下的一个或多个xml配置文件中加载上下文定义。

bean的生命周期

0 0
原创粉丝点击