IoC【理解】【应用】【重点】
来源:互联网 发布:icmp返回报文端口号 编辑:程序博客网 时间:2024/06/05 04:47
1.IoC(Inversion of Control)控制反转
A:控制:控制的双方是什么?谁控制谁?
主控方:Spring
被控方:应用程序所使用的资源
(原始)应用程序控制自己执行操作需要使用的外部资源
(Spring)Spring控制整个程序中所需要使用的外部资源
B.反转:什么是反转?反转什么?
正向:应用程序直接调用资源
反向:应用程序依赖Spring为其提供资源
反转的是资源的控制权
应用程序由主动调用资源,变为被动的等待Spring提供资源
C.有什么好处?
正向缺点:应用程序控制的资源分布在程序的每一个地方
反向的优点:所有的资源都在Spring中,便于管理
总结:Spring反向控制应用程序所需要使用的外部资源。资源受Spring管理,利用率最大化。
2.Spring模型演化过程
A.基于分层设计
UserAction 使用UserService,new UserService()
UserService 使用UserDAO,new UserDAO()
UserDAO
B.工厂模式,使用面向接口编程设计,解决层与层之间的紧耦合
制作接口,制作实现类,制作对象工厂
C.工厂模式+配置
制作XML文件,将实现类配置到XML文件中
读取XML文件中的配置信息,得到实现类的类名
使用反射思想,获取实现类对象 class.newInstance();
D.Spring设计雏形 自动的工厂+配置
工厂由Spring提供,实现类使用XML格式配置
3.IoC基础实例
A.导入jar包(6个)
B.制作log4j对应的配置文件
C.在src目录下创建核心配置文件applicationContext.xml
说明:格式可以从xsd-config.html获取
<?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.xsd
">
</beans>
D.将应用程序需要使用的资源配置成Spring的Bean
<!-- Spring管理的资源全部声明到配置文件中 -->
<!-- 所有资源以Bean的形式存在 --> <!-- bean:声明一个资源Bean --> <!-- bean:id:用于区分bean的标识 --> <!-- bean:class:bean对应的模型类名 --> <bean id="userDao" class="cn.itcast.spring.ioc.UserDao"> </bean> E.创建ApplicationContext对象 ApplicationContext ctx = new ClassPathXmlApplicationContext("配置文件名"); ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); F.获取Bean对象 使用应用上下文对象获取 ctx.getBean("bean的id属性值"); ctx.getBean("userService"); 补充:使用文件系统获取配置信息,要求配置文件在工程路径下(少用) ApplicationContext ctx = new FileSystemXmlApplicationContext("applicationContext.xml");
- IoC【理解】【应用】【重点】
- DI【理解】【应用】【重点】
- Bean配置(XML)【理解】【应用】【重点】
- AOP(XML)【理解】【应用】【重点】
- AOP(注解)【理解】【应用】【重点】
- SSH整合(XML)【理解】【应用】【重点】
- Hibernate模板类【理解】【应用】【重点】
- 理解重点
- 声明式事务(注解)【理解】【应用】【重点】
- 理解IoC
- 理解IOC
- IOC理解
- IOC理解
- IOC理解
- 理解IOC
- IOC理解
- 深入理解IOC控制反转及应用实例
- 深入理解IOC控制反转及应用实例
- 浅谈json,对象,数组
- 三种特征选择方法及Spark MLlib调用实例(Scala/Java/python)
- 字符串的整理①
- 使用WebRTC搭建前端视频聊天室——点对点通信篇
- oracle数据库导出导入
- IoC【理解】【应用】【重点】
- JAVA 中BIO,NIO,AIO的理解
- centOS6.5安装rabbitmq
- java学习 十一、关键字static
- 二叉树基础知识
- 常用算法的时间复杂度
- 优酷视频API
- C语言代码书写风格
- vue刷新数据