- Spring概述及IOC理论推导
- 1.Spring
- 1.1简介
- 1.2 优点
- 1.3 组成
- 2. IOC(Inversion of Control)理论推导(思想)
- 3.IOC本质
-
Spring框架是一个开放源代码的J2EE应用程序框架,是针对bean的生命周期进行管理的轻量级容器。
-
Spring理念:使现有技术更加容易使用,本身是一个大杂烩
-
SSM:SpringMVC+Spring+Mybatis!
官网
Github下载地址
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvcartifactId>
<version>5.2.0.RELEASEversion>
dependency>
dependencies>
1.2 优点
-
Spring是一个开源的免费的框架(容器)。
-
Spring是一个轻量级的,非入侵式的框架。
-
控制反转(IOC) 面向切面编程(AOP)。
-
支持事务的处理,对框架的支持
总之:Spring就是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架
1.3 组成 2. IOC(Inversion of Control)理论推导(思想)-
UserDao接口
public interface UserDao { void getUser(); }
-
UserDaoImpl实现类
public class UserDaoOracleImpl implements UserService { @Override public void getUser() { System.out.println("Oracle获取用户数据"); } }
public class UserDaoMySqlImpl implements UserService { @Override public void getUser() { System.out.println("Mysql获取用户数据"); } }
-
UserService业务接口
public interface UserService { void getUser(); }
-
UserServiceImpl业务实现类
//业务层就是去调用dao层去数据库查 public class UserServiceImpl implements UserService { // private UserDao userDao=new userDaoImpl;这时候需要改变程序去应对客户需求 private UserDao userDao; //需要程序不动客户端去做些事情,把主动权交到用户手上 //利用set进行动态实现值的注入!想用什么就调用该方法让用户选择 public void setUserDao(UserDao userDao) { this.userDao = userDao; } @Override public void getUser() { userDao.getUser(); } }
-
MyTest
public class MyTest { public static void main(String[] args) { //用户实际调用的是业务层,dao层她们不需要接触 UserService userService = new UserServiceImpl(); //这里就是利用set注入实现动态代理的效果 ((UserServiceImpl) userService).setUserDao( new UserDaoOracleImpl()); //调用Orale userService.getUser(); }
-
之前,程序是主动创造对象!控制权在程序员手上!
-
使用set注入后,程序不在具有主动性,而是变成了被动的接受对象!
这种思想,从本质上解决问题,我们程序员不用再去管理对象的创建。系统的耦合性大大降低,可以更加专注的在业务实现上!
3.IOC本质控制反转IOC(Inversion of control)是一种设计思想,DI(依赖注入)是实现IOC的一种方法。
未使用IOC的程序中,我们使用面向对象编程,对象的创建与对象间的依赖关系完全编码的在程序中,对象的创建由程序自己控制,个人认为所谓控制反转就是:获得依赖对象的方式反转了。
控制反转后将对象的创建转移给第三方。
- 控制:谁来控制对象的创建,传统应用程序的对象是由程序本身控制创建的,使用Spring后,对象是由Spring来创建的.
- 反转:程序本身不创建对象,而变成被动的接收对象.
- 依赖注入:就是利用set方法来进行注入的.
- IOC是一-种编程思想 ,由主动的编程变成被动的接收.
- 现在要实现不同的 *** 作,只需要在xml配置文件中进行!
- 修改,所谓的IOC:对象由Spring来创建,管理,装配!
要实现不同的 *** 作,只需要在xml配置文件中进行修改对象由Spring来创建,管理,装配!
IOC是Spring框架的核心内容,使用多种方式完美的实现了IOC,可以使用XML配置,也可以使用注解,新版本的Spring也可以零配置实现IOC(自动装配)。
Spring容器在初始化时先读取配置文件,根据配置文件或元数据创建与组织对象存入容器中,程序使用时再从Ioc容器中取出需要的对象。
采用XML方式配置Bean的时候,Bean的定义信息是和实现分离的,而采用注解的方式可以把两者合为一体,Bean的定义信息直接以注解的形式定义在实现类中,从而达到了零配置的目的。
控制反转是通过一种描述(XML或注解)并通过第三方生产或获取特定对象的方式。在Spring中实现控制反转的是IOC容器,它的实现方法是依赖注入(Dependency Injection,DI)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)