菜鸟研究spring3.x的心得与笔记(第二节)深入IoC和AOP
Spring的IoC
Spring核心模块实现了IoC功能,简化了类之间的依赖,用配置的方式进行依赖关系的描述。
IoC负责依赖类之间的 创建 、 拼接 、管理 、 获取等工作。
IoC关注两点就好:
1> BeanFactory是Spring框架的核心接口,实现容器核心的功能,
2> Context 模块构建于核心模块之上,扩展BeanFactory的功能,添加il8n国际化,Bean生命周期的控
制,框架时间体系,资源加载透明化等功能,还提供了许多实际应用的技术。 如:邮件开发,任务调度,远程访问。
ApplicationContext 是Context模块的核心接口。
Spring的AOP
Aop是进行横切逻辑编程的思想。
Spring提供了满足AOP Alipance规范的实现。整合了AspectJ这种Aop语言风格框架。
******************************************************************************************************************
Java5.0引入 Java.lang,instrument,允许JvM启动时启用一个代理类,代理类运行期可以修改类的字节码,改变一个类的功能,实现AOP的功能,如第一章图中,AOP的功能。
******************************************************************************************************************
1>数据访问和集成
任何程序,其核心就是对数据的访问和操作,Spring通过对各种数据访问技术进行薄层的封装,使访问数据大幅简化。
借助AOP技术,Spring提供了声明式事务的功能。
2>web及远程操作
该模块是简历在Application Context模块上,提供了web应用的各种工具类。
如: 通过Listener或者Servlet初始化Spring容器,将Spring容器注册到web容器中。
还提供了面向web的功能。如:文件上传,FreeMarker,XSLT的支持。
3>web及远程访问
Spring有独立的框架SpringMVC,Spring在远程访问,以及Web Service上提供了很多框架的整合。
Spring3.0的新特性
先说两个名词啊,我一直不知道,现在才知道
1,JSR-330 (依赖注入)
2,JSR-303(Bean 验证)
就是上面这两。
Spring3.0最大的特性是 将核心API采用泛型和不定入参数的特性 如BeanFactory的部分方法签名如:
T getBean(Class<T> requridType) T getBean(String name,Class<T> requridType)
增加了一个用于类转换的ConversionService 接口,它是Spring3.0新增类型转换系统的核心接口,他的方法都支持泛型。
Spring的事件监听器也都支持泛型 如:ApplicationListener<E extendsApplicationEvent>,只要指定事件的类型,就可以监听某一类型的事件了。
Spring 表达式语言
Spring3.0提供了脚本SpEL,和EL类似,在Spring的XML配置文件和配置注解中使用。
这两章都是理论的东西,有点繁琐,我也就写到这儿,下来的话,就会根据代码来走,不会这么枯燥了,但是理论的东西还是要了解滴,大家能理解多少是多少,后续我们会用代码来实践它。