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)背后的基本原理是对象之间的依赖关系(即一起工作的其它对象。以下几种方式来实现:构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性。
Spring是一个开源的Java框架,用于构建企业级应用程序。它提供了一种轻量级的、非侵入式的开发方式,通过依赖注入和面向切面编程等特性,简化了Java应用程序的开发过程。 以下是关于Spring学习的一些笔记: 1. IoC(控制反转):Spring通过IoC容器管理对象的创建和依赖关系的注入。通过配置文件或注解,将对象的创建和依赖关系的维护交给Spring容器来管理,降低了组件之间的耦合度。 2. DI(依赖注入):Spring通过依赖注入将对象之间的依赖关系解耦。通过构造函数、Setter方法或注解,将依赖的对象注入到目标对象中,使得对象之间的关系更加灵活和可维护。 3. AOP(面向切面编程):Spring提供了AOP的支持,可以将与业务逻辑无关的横切关注点(如日志、事务管理等)从业务逻辑中分离出来,提高了代码的可重用性和可维护性。 4. MVC(模型-视图-控制器):Spring提供了一个MVC框架,用于构建Web应用程序。通过DispatcherServlet、Controller、ViewResolver等组件,实现了请求的分发和处理,将业务逻辑和视图展示进行了分离。 5. JDBC和ORM支持:Spring提供了对JDBC和ORM框架(如Hibernate、MyBatis)的集成支持,简化了数据库访问的操作,提高了开发效率。 6. 事务管理:Spring提供了对事务的支持,通过声明式事务管理和编程式事务管理,实现了对数据库事务的控制和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值