• JAVA 之 Spring框架学习 1:Springの初体验 IOC DI


    Spring技术是JavaEE开发必备技能,企业开发技术选型命中率>90%

    专业角度 简化开发,降低企业级开发的复杂性

    框架整合,高效整合其他技术,提高企业级应用开发与运行效率

    1.学习Spring框架设计思想

    2.学习基础操作,思考操作与思想间的联系

    3.学习案例,熟练应用操作的同时,体会思想

    初识Spring

    官网:spring.io

    Spring发展到今天已经形成了一种开发的生态圈,Spring提供了若干个项目,每个项目用于完成特定的功能

    这三个技术基本能应对企业级开发所有的开发

    目前我们要学的是Spring Framework 

    学配置有助于理解,学注解可以提高效率

    Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基

    系统架构:

    学习路线:

    核心概念:

    当我们数据层实现的时候,如果需要更新代码,需要新写个实现类,那么业务层就要跟着修改new的对象,这样耦合度很高。

    IOC控制反转就可以解决这个问题 : 

    目标:充分解耦

    使用IoC容器管理bean(IoC)

    在IoC容器内将有依赖关系的bean进行关系绑定(DI)

    最终效果 使用对象时不仅可以直接从IoC容器中获取,并且获取到的bean已经绑定了所有的依赖关系

    IOC入门案例

    1.先导入Spring依赖:

    
        org.springframework
        spring-context
        5.2.10.RELEASE
    

    2.

    然后再resources文件夹下新建 applicationContext.xml配置文件

    配置内容写:

    bean定义时id属性在同一个上下文中不能重复

     

     就完成了

    DI 入门案例

    Bean基础配置

    Bean别名配置

     通过name也能找到对应的bean

    bean作用范围配置

     控制bean创建实例的数量,默认情况下创出的多个bean都是同一个bean

    实例化bean的三种方式

    1.构造方法:(常用)

    实际上就是调用无参构造方法,如果没有无参构造方法,就会抛出异常了

    2.使用静态工厂实例化bean  (了解)

     

     3.使用实例工厂实例化bean (了解)

     4.使用factoryBean实例化  (第三种方式的变种)  务必掌握

    获取new对象的方法直接变成了getObeject(),而且配置的内容比第三种方法简洁更多

    而且实例化的对象都是单一的,如果不想实例出的对象单一,那么需要在工厂bean 实现

    isSingleton()方法,并且return false就可以了

     

    Bean的生命周期

     

    生命周期控制方法 

    配置的方式

    接口的方式(了解)

     bean销毁的时机

     

     

    注入

    依赖注入的两种方式

    Setter注入的两种类型

     

     

     构造器注入的两种类型(了解)

     

     

     

     依赖自动装配

     

     

     集合注入

     

     

     

     

     

    Spring管理第三方资源

    加载properties文件 动态管理上一节jdbc的name ,url等内容

     

    1.首先对照原来内容,开辟新的命名空间  beans全都换成context:

     2.使用context空间 加载properties文件

     注意:防止名称跟系统属性冲突,我们的properties文件的键尽量使用jdbc.username 

    而不是username

    而且context的 location配置路径的时候 我们写成

    这样可以加载当前模块下所有的.properties文件,不需要写多个了

     

  • 相关阅读:
    【php毕业设计源码】PHP实验室安全系统设计与实现
    手机上比较好用的笔记软件使用哪一款?
    低代码平台,业务开发的“银弹”
    elementui 表格自动滚动
    CSS 的继承性和优先级
    exness:美元/瑞郎维持承压,空头指向七个月支撑
    基于体系结构-架构真题2022(四十一)
    ruby、Python 以及 Swift 语言关于 “Finally” 实现的趣谈
    【华为OD机试真题 python】完全二叉树非叶子部分后序遍历-2【2022 Q4 | 200分】
    使用Springboot开发前后端分离校园智能出行拼车系统
  • 原文地址:https://blog.csdn.net/m0_73859807/article/details/127988043