spring框架介绍--目前最新的是spring5版本
spring是一个轻量级的开源的j2EE (念 j two ee)框架轻量级: jar包数量少而且体积比较小使用spring时可以不依赖其他的组件,自己单独使用开源: 源码公开 免费j2EE:java企业级应用框架: 为解决企业应用开发的复杂性,使得开发更加简洁方便两个核心的部分: ioc 容器、 aopioc : 控制翻转 (di 依赖注入)----解耦合使用spring容器来管理创建对象的过程
spring是一个轻量级的开源的j2EE (念 j two ee)框架
轻量级: jar包数量少而且体积比较小 使用spring时可以不依赖其他的组件,自己单独使用
开源: 源码公开 免费
j2EE:java企业级应用
框架: 为解决企业应用开发的复杂性,使得开发更加简洁方便
两个核心的部分: ioc 容器、 aop
ioc : 控制翻转 (di 依赖注入)----解耦合
使用spring容器来管理创建对象的过程
aop:面向切面
在不修改源代码的情况下,增强程序的功能
除此之外还有 事务 jdbc springmvc
特点:
1、方便解耦、简化开发(ioc)
2、aop编程的支持
3、方便程序的测试(junit 框架的整合)
4、方便和第三方框架整合 (mybatis 、springmvc、hibernate、struts)
5、方便进行事务的操作,降低开发难度,对javaee 的api进行了封装(jdbc jms)
6、源码值得学习
核心jar包(core container)
core beans(ioc) expression(表达式) context(上下文) common-log(日志)
配置文件(xml格式) 和 注解方式
spring 配置文件: bean 标签 id 和 class属性
Ioc底层原理
控制翻转:
目的:降低代码的耦合度
操作:对象的创建和对象之间的调用过程,交给spring进行管理
原理:xml解析、设计模式(工厂模式)、 反射
工厂模式:
目的:解耦合
(耦合度不能没有,实际上只能降低耦合度)
创建工厂类,通过工厂类调用new来创建对象
xml解析:
对xml文件内容获取值或者操作值
常见的方式:dom4j等
反射:
目的:通过得到类的字节码文件(class文件),然后可以操作类中所有内容(java文件-》class文件)
ioc的实现过程(解耦合):
第一步:xml解析
第二步:通过一个工厂类,使用反射 创建对象
反射 class.forName("全路径包名"), .newInstance()
Ioc接口(BeanFactory、ApplicationContext)
ioc思想:ioc思想是基于ioc容器完成的,ioc容器底层就是对象工厂
spring提供ioc容器实现有两种方式(加载配置文件获取创建对象):(两种接口)
BeanFactory:ioc容器最基本的实现方式,spring内部使用的接口,一般不在开发中使用
加载配置文件的时候不会创建对象,在获取或者使用对象的时候创建对象
BeanFactory下的子接口(根扩展相关的接口):
ConfigurableApplicationContext
ApplicationContext:BeanFactory的子接口,提供了更多更强大的功能,供开发人员使用
加载配置文件的时候就会创建对象,web项目中,在服务器启动的时候加载耗时间好资源的,而不在执行过程中加载
ApplicationContext主要的实现类:
FileSystemXmlApplicationContext
需要xml文件的绝对路径
ClassPathXmlApplicationContext
需要xml文件的src目录下的路径(相对路径)
Ioc操作 bean管理(基于xml文件、基于注解)
bean管理:
spring创建对象
spring注入属性
方式:
基于xml文件
<bean id="" class="" name=""></bean>
name:作用和id一样,name可以加特殊符号(struts1)
默认的是无参的构造方法
ioc(di依赖注入-----注入属性 di是ioc的一种具体实现)
有参构造:
set方法:
<property> name value
基于注解方式
更多推荐
所有评论(0)