IOC(控制反转):就是程序员不用管new对象的事了,将new对象的任务交给框架来实现。
实现控制反转的方法有两种
1.配置文件管理,bean
2.注解

一、配置文件管理
1.选择resource下面的application.properties,new一个xml文件

2.在new了的xml文件里,写对应的bean
其中id作为名字,而class对应相应实现类的全限定类名

3.在测试类中利用Spring提供的方法读取配置文件,然后再根据xml bean中的id找到对应的类

4.这样就将创建对象的过程交给了框架

二、如何将一个项目中的new方法全部交给框架?
以上描述中,UserServiceIml中依然有new UserDao的方法,为了解决这个问题
1.利用构造函数
在配置文件中,利用constructor-arg,将下一个bean在UserService中实例化之后,将UserDao对象作为参数传递到UserServiceIml中的有参构造函数中。


2.利用Setter方法,通过在xml中在UserService bean中实例化UserDao,然后传值到UserServiceImpl方法中


二、注解方式实现IOC
用注解@Repository标记Dao层实现类,其实就是将此时的实现类的类名首字母小写作为id,然后将此个类的全限定类名作为value放到xml配置文件中。
用@Service标记Service层实现类;
当声明一个类,例如 private UserDao userDao;时,不用new了,前面加上@Autowired注解,实现自动new UserDao。
new UserDao的时候是按类名UserDao进行查找的,当类名一样时
解决方法:

  1. @Resource(name = “userDaoImpl”),name是所new类的类名首字母小写

  2. @Autowired
    @Qualifier(“userDaoImpl2”)
    Qualifier括号当中写所new 类的类名首字母小写

    Dao层实现类

    Service层实现类

    测试类调用

SpringBoot之IOC相关推荐

  1. springboot的IOC依赖注入与控制反转-举例(转载+自己整理)

    这个记录是对[1]的整理和简化,便于日后遗忘时迅速恢复记忆. Spring框架有四大原则: ①使用POJO进行轻量级与最小侵入式开发 ②通过依赖注入和基于接口编程实现松耦合 ③通过AOP和默认习惯进行 ...

  2. SpringBoot交给IOC管理对象的几种方式

    文章目录 @Component @Bean @Import @Import搭配ImportSelector @Import搭配ImportBeanDefinitionRegistrar BeanFac ...

  3. SpringBoot的IOC和AOP

    1. IOC 控制反转(IOC)和依赖注入(DI)是同一个概念,目的在于降低系统耦合,将类的实例化工作交给Spring代理,主要用到的设计模式为工厂模式,通过Java反射机制实现类的自动注入. IoC ...

  4. springboot分析ioc原理

    1.读取bean配置信息 2.实例化bean 3.读取bean配置 信息 4.应用程序使用 hashmap缓存一份bean的信息,快速找到 2.springmvc 1.clienthttp请求过来通过 ...

  5. SpringBoot之配置嵌入式Servlet容器

    1.概述 文章目录 1.概述 2.如何修改SpringBoot的默认配置 3.定制和修改Servlet容器的相关配置 4.注册Servlet三大组件 5.替换为其他嵌入式Servlet容器 6.嵌入式 ...

  6. 后端学习 - SpringBoot

    SpringBoot 是整合 Spring 技术栈的一站式框架,是简化 Spring 技术栈的快速开发脚手架 约定大于配置 文章目录 一 概述 1 第一个 SpringBoot 项目 2 Spring ...

  7. SpringBoot 就这一篇全搞定

    一.Hello Spring Boot 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 微服务 ...

  8. 从头撸到脚,SpringBoot 就一篇全搞定!

    一.Hello Spring Boot 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 微服务 ...

  9. springboot系列课程笔记-第四章-WEB开发

    四.Web开发 1.简介 使用SpringBoot: 1).创建SpringBoot应用,选中我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可 ...

最新文章

  1. sohu广告js代码调研
  2. 光伏产品发展之路:从反倾销到欧盟加收税款
  3. 互联网造富亲历者讲述:屌丝富了以后
  4. 流量控制与拥塞控制区别
  5. 我的Python成长之路---第一天---Python基础(5)---2015年12月26日(雾霾)
  6. Linux Shell 脚本基础
  7. 打造Android微信朋友圈下拉刷新控件
  8. Hbase shell练习题
  9. Mysql mysqld_safe启动与myslqd启动坑
  10. CSS 世界 阅读笔记:(Ch1-Ch3)
  11. Sublime插件 FileHeader 的安装、设置、使用
  12. matlab仿真整流电路设计,基于Matlab GUI的整流电路仿真设计[图]
  13. Excel中数据截取
  14. 小布什逗留香港6小时 赴知名裁缝店做18套西装——中新网
  15. 人生就是一场直播——经蓓老师莅临大米时代公益讲座
  16. Houdini实现AO效果
  17. 如何使用Graylog来收集日志?
  18. javaweb-jsp编程例题
  19. 手机上传图片文件只能打开相机
  20. 计算机视频线接口,PC视频入门必备 多种TV-OUT接口简介

热门文章

  1. Idea 解决SVN冲突
  2. JavaScript写的一个图片的抽奖功能的案例
  3. 使用cmd备份mysql数据库
  4. Linux 应用 environ环境变量操作函数
  5. python基础-命名规则
  6. rtools40路径添加环境变量
  7. Python几个国内镜像
  8. 下楼问题(来源:学堂在线 程序设计基础)
  9. android 9.0 selinux 策略配置
  10. Adversarial Autoencoder(GAN和VAE的结合版) 阅读笔记