• Spring概述以及IoC和DI的使用


    1.Spring概述

    • Spring框架是一个应用程序框架,是针对bean的生命周期进行管理的轻量级容器。 Spring提供了功能强大IOC、AOP及Web MVC等功能。

      特点:

      • 简化开发,降低企业级开发的复杂性,使开发变得更简单快捷
      • 整合框架,高效整合其他技术,提高企业级应用开发与运行效率

    2.Spring Framework系统架构图

    在这里插入图片描述

    3.核心概念

    • 充分解耦

      • 使用IoC容器管理bean(IoC)
      • 在IoC容器内将有依赖关系的bean进行关系绑定(DI)
    • 使用对象时不仅可以直接从IoC容器中获取,而且获得到的bean已经绑定了所有的依赖关系

    • IoC控制反转

      • 使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到 “外部”
    • Spring技术对IoC思想的实现

      • Spring提供了一个容器,称为IoC容器,用来充当IoC思想中的 “外部”
      • IoC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IoC容器中统称为Bean
    • DI依赖注入

      • 创建bean与bean之间的关系的过程

    4.IoC的使用

    1. 导入spring-context的坐标
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.2.22.RELEASE</version>
            </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 创建Spring配置文件,配置bean
    
    
    
        <bean id="bookDao" class="com.my.dao.impl.BookDaoImpl"/>
    
        <bean id="bookService" class="com.my.service.impl.BookServiceImpl"/>
    beans>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 获取IoC容器,获取bean
        public static void main(String[] args) {
    //        3.获取IoC容器
            ApplicationContext context=new ClassPathXmlApplicationContext("applicationConfig.xml");
    
    //        4.获取bean
            BookDao bookDao = (BookDao) context.getBean("bookDao");
            bookDao.save();
            //输出结果:book dao save......
    
    
            BookService bookService = (BookService) context.getBean("bookService");
            bookService.save();
            //输出结果:book service save......
            //        book dao save......
    
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    5.DI的使用

    1. 删除使用new的形式创建的对象
        //1.删除new的对象
        //private BookDao bookDao=new BookDaoImpl();
        private BookDao bookDao; 
    
    • 1
    • 2
    • 3
    1. 提供依赖对象对应的setter方法
        //2.提供对应的set方法
        public void setBookDao(BookDao bookDao) {
            this.bookDao = bookDao;
        }
    
    • 1
    • 2
    • 3
    • 4
    1. 配置service与dao之间的依赖关系
    
        <bean id="bookDao" class="com.my.dao.impl.BookDaoImpl"/>
    
    
        <bean id="bookService" class="com.my.service.impl.BookServiceImpl">
            <property name="bookDao" ref="bookDao"/>
        bean>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 获取IoC容器,获取bean
        public static void main(String[] args) {
    //        4.获取IoC容器
            ApplicationContext context=new ClassPathXmlApplicationContext("applicationConfig.xml");
    
    //        5.获取bean
            BookDao bookDao = (BookDao) context.getBean("bookDao");
            bookDao.save();
            //输出结果:book dao save......
    
    
            BookService bookService = (BookService) context.getBean("bookService");
            bookService.save();
            //输出结果:book service save......
            //        book dao save......
    
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  • 相关阅读:
    React之setState
    【前端】望京soho某厂面试真题,建议收藏
    “华为杯”研究生数学建模竞赛2019年-【华为杯】D题:汽车行驶工况构建(附获奖论文和MATLAB代码实现)
    冯唐成事心法笔记 —— 知世
    免费的百度官网认证怎么搞?什么单位官网认证免费?
    K-means(K-均值)算法
    pytest框架中pytest.ini配置文件
    (仿牛客社区项目)Java开发笔记0:项目目录
    这980道JAVA面试题,刷完50%妥妥的也能上岸
    【牛客网】另类加法
  • 原文地址:https://blog.csdn.net/m0_59564754/article/details/126895552