您的位置:首页 > 编程语言 > Java开发

【Spring】【笔记】《Spring In Action》第一章 读书笔记

2016-05-19 19:44 561 查看
1.1 简化Java开发
Bean:
     虽然spring使用Bean或者JavaBean来表示应用组件,但这并不意味着Spring组件必须遵循JavaBean规范。一个Spring组件可以是任何形式的POJO

依赖注入:
     好处:松耦合
     核心:把接口作为参数注入,可以使类作用域该接口的任何实现类上
     ref所接受的“bean”相当于传入的参数,相当于接口,因此在bean定义时的class属性可以是实现类

1.2 Bean容器
应用上下文
ClassPathXmlApplicationContext
     从类路径下的XML配置文件中加载上下文定义,把应用上下文定义文件当做类资源
FileSystemXmlApplicationContext
     读取文件系统下的XML配置文件并加载上下文定义
XmlWebApplicationContext
     
BeanFactory加载bean的过程:(Bean的生命周期
Spring对Bean进行实例化
Spring将值和Bean的引用注入进Bean的属性
如果实现了BeanNameAware,将Bean的ID传递给setBeanName()接口方法
如果实现了BeanFactoryAware,调用setBeanFactory方法,将BeanFactory容器实例传入
如果实现了ApplicationContextAware,调用setApplicationContext()方法,引入上下文
如果实现了BeanPostProcessor,调用postProcessBeforeInitialization()方法
如果实现了Ini调理子能够Bean,调用afterPropertiesSet(),如果使用init-method声明了初始化方法,调用该方法
如果Bean实现了BeanPostProcessor,调用postProcessAfterInitialization()方法
Bean准备就绪,可以被使用,驻留于应用上下文,直到该应用上下文被销毁
如果实现了DisposableBean接口,调用destroy()方法,如果bean使用destroy-method声明了销毁方法,调用该方法

1.3 Spring构成
1.3.1 Spring模块
     spring的6大模块:
Data access&integration:Transaction,JDBC,OXM,ORM,JMS
Web and remoting:Web,Servlet,Portlet,struts
AOP : AOP,Aspects
Instrumentation : Instrument,Instrument,Tomcat
Core Spring container : Beans,Core,Context,Expression,Context support
Testing:test

1.3.2 Spring Portfolio
Spring Web Flow:基于流程的绘画式web应用
Spring Web Service:提供契约优先的webservice模型
Spring Security
Spring Integration:企业级应用交互
Spring Batch:批处理应用
Spring Social:社交网络扩展
Spring Mobile:移动文本应用开发
Spring Dynamic Modules :OSGi,现称为Gemini Blueprint
Spring LDAP:基于模板的LDAP访问
Spring Rich Client:富应用工具箱,swing
Spring .Net:面向.Net
Spring Flex:开发Flex应用(Adobe)
Spring Roo:提供快速开发Spring应用的交互式环境
Spring Extensions:社区驱动的Spring扩展项目

1.4 Spring新功能
1.4.1 Spring2.5新特性
     2007年11月
     *引入注解
使用@Autowired实现基于注解驱动的依赖注入,使用@Qualifier实现细粒度的自动装配
支持JSR-250注解,支持命名资源依赖注入的@Resource对生命周期方法支持的@PostConstruct和@PreDestroy
自动扫描使用@Component注解所标注的Spring组件
全新的基于注解驱动的Spring MVC编程模型
基于JUnit 4和注解的一个新的集成测试框架
    其他:
支持Java 6 、JavaEE 5,涵盖JDBC4.0、JTA1.1、JavaMail1.4、JAX-WS2.0
通过Bean名字来编织切面的新的Bean命名切入点表达式
新的XML命名空间:配置应用上下文细节的context、配置消息驱动Bean的jms
支持在SqlJdbcTemplate中使用命名参数

1.4.2 Spring3.0新特性
Spring MVC全面支持Rest、REST风格
新的表达式语言
SpringMVC新注解@CookieValue、@RequestHeader
一个新的XML命名空间
支持基于JSR-302注解的声明式校验
支持新的JSR-330依赖注入规范
通过注解驱动声明异步和调度方法
一个新的注解驱动的配置模型
Spring Web Service项目的OXM功能已被迁移到Spring框架核心
     *Spring 3.0要求Java 5以上,不再支持Java1.4

1.4.3 Spring Portfollo新特性
Spring Web Flow 2.0
Spring JavaScript、Spring Facesitting
Acegi Security,作为Spring Security2.0正式发布

第一章总结:
Spring的目的:简化企业级Java开发,促进代码松散耦合
实现方式:依赖注入,AOP
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息