`
haitian235
  • 浏览: 61386 次
  • 性别: Icon_minigender_1
  • 来自: 海南
社区版块
存档分类
最新评论

spring学习笔记

阅读更多
概述
spring提供了一种轻量级的解决方案,用于建立“快装饰企业应用”还提供了声明式事务管理
,RMI或web Services远程访问业务逻辑,以及可以用多种方法进行持久化数据库地解决方案,
还有全功能的MVC框架,并能透明的把AOP集成到软件中


三大框架的综合
用控制反转容器在前台的展现层使用struts和使用hibernate集成编码或是jdbc抽象层处理数据
存储

spring七大模块的分析:

Core 封装包是框架的最基础部分,提供IoC和依赖注入特性。这里的基础概念是BeanFactory,
它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑
中分离出依赖关系和配置。

构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI
注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如
资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。

DAO 提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且
,JDBC 封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,
而且对所有的POJOs(plain old Java objects)都适用。

ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate 
和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,
如前边提到的简单声明性事务管理。

Spring的 AOP 封装包提供了符合 AOP Alliance规范的面向方面的编程(aspect-oriented 
programming)实现,让你可以定义,例如方法拦截器(method-interceptors)和切点
(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用
source-level的元数据功能,还可以将各种行为信息合并到你的代码中,这有点象.Net的
attribute的概念。

Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet 
listeners进行IoC容器初始化和针对Web的application context。当与WebWork或Struts一起使
用Spring时,这个包使Spring可与其他框架结合。

Spring中的 MVC 封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框
架并不是仅仅提供一种传统的实现,它提供了一种 清晰的 分离模型,在领域模型代码和web 
form之间。并且,还可以借助Spring框架的其他特性。

Spring2.0的新特性
1. 控制反转(IoC)容器
1.1更简单的xml配置
1.2新的bean作用域
1.3可扩展的xml编写
2. 面向切面编程(Aop)
     2.1更简单的AOP XML配置
     2.2对@Aspestj切面的支持
3. 中间层
3.1. 在XML里更为简单的声明性事务配置
3.2. JPA抽象层
3.3. 异步的JMS,,异步消息接收的完整支持
3.4. JDBC
4. WEB层
4.1. Spring MVC的表单标签库
4.2. Spring MVC合理的默认值
4.3. Portlet 框架。。类似于Spring MVC框架的Porlet框架 
5. 其他特性
5.1. 动态语言支持。2.0现在支持用非Java语言编写的bean,当前支持的动态语言包括JRuby,Groovy和BeanShell
5.2. JMX,Spring Framework开始支持通知(Notification);还可以声明式地控制MBean在一个MBeanServer上的注册行为。
5.3. 任务规划
5.4. 对Java 5(Tiger)的支持
6. Deprecated的类和方法
    下面的类/接口已经从Spring 2.0的代码中删除了。
• ResultReader : 使用RowMapper接口代替。
• BeanReferenceFactoryBean : 使用别名机制代替
• BeanDefinitionRegistryBuilder : 使用BeanDefinitionReaderUtils类上的方法代替
• BeanFactoryBootstrap : 考虑使用一个BeanFactoryLocator 或是自定义引导类代替
• RequestUtils : 使用ServletRequestUtils代替

Spring核心技术

一、 控制反转容器
1. 容器和bean的基本原理
   bean就是由Spring容器初始化、装配及被管理的对象,除此之外,bean就没有特别之处了(与应用中其他对象没有什么区别);
   容器:org.springframework.beans.factory.BeanFactory
   IoC容器的核心接口。它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖
2. Spring支持三种配置元数据格式
   XML格式、Java属性文件格式或使用Spring公共API编程实现
3. 以下是一个基于XML的配置元数据的基本结构
  <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
  <bean id="..." class="...">
    <!-- collaborators and configuration for this bean go here -->
  </bean>
  <bean id="..." class="...">
    <!-- collaborators and configuration for this bean go here -->
  </bean>
  <!-- more bean definitions go here... -->
</beans>
4. 实例化容器
Spring IoC容器的实例化非常简单,如下面的例子:
Resource resource = new FileSystemResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);
... 或...
ClassPathResource resource = new ClassPathResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);
... 或...
ApplicationContext context = new ClassPathXmlApplicationContext(
        new String[] {"applicationContext.xml", "applicationContext-part2.xml"});
// of course, an ApplicationContext is just a BeanFactory
BeanFactory factory = (BeanFactory) context;
二、 依赖
2. 注入依赖
依赖注入(DI)背后的基本原理是对象之间的依赖关系(即一起工作的其它对象。以下几种方式来实现:构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics