传智播客学习之Spring基础
来源:互联网 发布:java web项目开发实例 编辑:程序博客网 时间:2024/05/04 14:28
传智播客学习之Spring基础
今天和大家分享一下SSH最后一块技术——Spring。
一、Spring框架概述
1.起源和背景
Rod Johson在2002年编著的《Expert one to one J2EE design and development》一书中,对Java EE正统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破Java EE传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。
传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现Write Once及Run Anywhere的承诺。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。
Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。
2.框架概述
Spring框架包含许多特性,并被很好地组织在六大模块中,如下:
1)IoC容器:管理对象及对象的依赖关系,相当于一个大的工厂,帮我们创建产品,组装产品。BeanFactory提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正允许从程序逻辑中分离出依赖关系和配置。而上下文提供了用一种框架风格的方式来访问对象,有些像JNDI注册表。上下文封装了beans包的功能,还增加了国际化,事件传播,资源装载以及透明创建上下文等。
2)Dao:提供了JDBC的抽象层,可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。且Spring提供了声明式事务,不仅仅实现了特定接口,而且对多有POJO都适用。
3)ORM:提供了常用的OR映射APIs的集成层,包括JPA、JDO、Hibernate和IBatis。同时可以混合使用所有Spring提供的特性进行OR映射。
4)AOP:Spring提供了符合AOP Alliance规范的卖弄想切面编程实现,让我们可以定义。
5)WEB:提供了基础的针对Web开发的集成特性。
6)MVC:提供了Web应用的Model-View-Controller实现。并提供了一种清晰的分离模型,在领域模型代码和web form之间。
二、Ioc容器
Spring的IoC控件主要专注于如何利用classes、对象和服务去组成一个企业级应用,通过规范的方式,将各种不同的控件整合成一个完整的应用。
1.BeanFactory和ApplicationContext
联系:ApplicationContext 是BeanFactory的子接口,ApplicationContext 是BeanFactory的扩展,功能得到了进一步增强。
区别:在实例化bean时,BeanFactory只把bean的定义信息载进来,用到的时候才实例化。而ApplicationContext在创建容器同时实例化单例bean。其次ApplicationContext提供文本信息解析工具,包括对国际化支持。提供载入文件资源的通用方法,如图片。可以向注册为监听器的bean发送事件等。
如何选择:BeanFactory接口擅长于处理Bean的初始化和配置,而ApplicationContext除了处理上述工作外,提供了更多基础支持,比如事务管理和AOP。一般后者作为首选。
2.简单应用
1)加入jar包以及配置文件。创建一个POJO(HelloSpring.java)
2)配置元数据
<?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.5.xsd">
<bean id="helloSpring" class="com.qinli.first.HelloSpring">
<property name="str" value="Hello Spring"/>
</bean>
</beans>
3)实例化容器
可以通过如下三种方式得到应用上下文
l ClassPathXmlApplicationContext:从类路径中加载。
l FileSystemXmlApplicationContext:从文件系统加载。
l XmlWebApplicationContext:从web系统中加载。
ApplicationContext ac = new ClassPathXmlApplicationContext(
"applicationContext.xml");
4)获得Bean对象,调用相关方法和属性
HelloSpring hs=(HelloSpring) ac.getBean("helloSpring");
System.out.println(hs.sayHello());
- 传智播客学习之Spring基础
- spring学习之AOP基础
- Spring学习之AOP基础
- Spring学习之事务管理基础
- spring boot 学习一之基础构建
- Spring学习历程 --- AOP基础之代理
- Spring学习笔记之AOP基础
- Spring学习笔记之AspectJ基础
- Spring学习笔记之SpringAOP基础
- Spring Cloud 之 基础学习资料
- Spring基础学习教程(Spring之核心容器bean)-06
- Spring3 学习笔记之(spring core 之IoC基础)
- <IT基础复习系列1之玩转Spring>Spring基础之高效学习(一)
- spring基础学习之Ioc-反射简单介绍(四)
- spring基础学习之IoC-资源访问(五)
- Spring学习笔记之基础、IOC、DI(1)
- spring基础学习
- spring 基础学习
- C++从零开始之指针及其语义和运用
- ns2 安装所有可能错误处理
- 人的正反面
- 传智播客学习之新年新起点
- 传智播客学习之JPA
- 传智播客学习之Spring基础
- C语言中关于scanf()易错的几个问题
- 传智播客学习之Spring——装配Bean
- Sql数据层分页技术
- oj的评测结果
- opencv结合matlab查看矩阵
- 迷茫中
- DD
- 自己觉得佛教经典的一段话