动力节点Spring框架学习笔记-王鹤(一)IOC控制反转

『动力节点学习笔记』Spring,SpringBoot,Springcloud的区别? 架构 > 解偶 开发框架 spring IOC AOP Ioc :控制反转 原来我们都是自己一步步操作,现在交给容器了!我们需要什么就去拿就可以了 Aop :切面(本质,动态代理) 为了解决什么?不影响业务本来的情况下,实现动态增加功能,大量应用在日志,事务 … 等等方面 spring 是一个轻量级的java开源框架,容器目的:解决企业开发的复杂性问题 spring 是春天,觉得他是春天,也十分复杂,... 阅读详情

官方下载地址

动力节点spring资料

视频观看地址

https://www.bilibili.com/video/BV1nz4y1d7uy

一、IOC控制反转

1.1 概述

控制反转(IoC,Inversion of Control),是一个概念,是一种思想。指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对象控制权的转移,从程序代码本身反转到了外部容器。通过容器实现对象的创建,属性赋值,依赖的管理

IoC 是一个概念,是一种思想,其实现方式多种多样。当前是依赖注入。应用广泛

依赖:classA 类中含有 classB 的实例,在 classA 中调用 classB 的方法完成功能,即 classA
对 classB 有依赖。

1.2 IOC的实现

依赖注入:DI(Dependency Injection),程序代码不做定位查询,这些工作由容器自行完成。

依赖注入 DI 是指程序运行过程中,若需要调用另一个对象协助时,无须在代码中创建
被调用者,而是依赖于外部容器,由外部容器创建后传递给程序。

Spring 的依赖注入对调用者与被调用者几乎没有任何要求,完全支持对象之间依赖关系
的管理。

Spring 容器是一个大工厂,负责创建、管理所有的 Java 对象,这些 Java 对象被称为 Bean。

Spring 容器管理着容器中 Bean 之间的依赖关系,Spring 使用“依赖注入”的方式来管理 Bean 之间的依赖关系。使用 IoC 实现对象之间的解耦和。

1.3 关于bean标签

bean标签的配置

    <!--告诉spring创建对象
        声明bean , 就是告诉spring要创建某个类的对象
        id:对象的自定义名称,唯一值。 spring通过这个名称找到对象
        class:类的全限定名称(不能是接口,因为spring是反射机制创建对象,必须使用类)

        spring就完成 SomeService someService = new SomeServiceImpl();
        spring是把创建好的对象放入到map中, spring框架有一个map存放对象的。
           springMap.put(id的值, 对象);
           例如 springMap.put("someService", new SomeServiceImpl());

        一个bean标签声明一个对象。
    -->
    <bean id="someService" class="com.jjh.service.impl.SomeServiceImpl" />
    <bean id="someService1" class="com.jjh.service.impl.SomeServiceImpl" scope="prototype"/>

测试类(1)使用

@Test
    public void test01(){
        SomeService service  = new SomeServiceImpl();
        service.doSome();
   }

测试类(2)使用

@Test
    public void test03(){
        String config="beans.xml";
        ApplicationContext ac = new ClassPathXmlApplicationContext(config);
        //使用spring提供的方法, 获取容器中定义的对象的数量
        int nums  = ac.getBeanDefinitionCount();
        System.out.println("容器中定义的对象数量:"+nums);
        //容器中每个定义的对象的名称
        String names [] = ac.getBeanDefinitionNames();
        for(String name:names){
            System.out.println(name);
        }
    }

1.4 基于XML的DI

1.4.1 set注入(重点)

set 注入也叫设值注入是指,通过 setter 方法传入被调用者的实例。这种注入方式简单、直观,因而在 Spring 的依赖注入中大量使用。   

 <?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">

    <!--声明student对象
        注入:就是赋值的意思
        简单类型: spring中规定java的基本数据类型和String都是简单类型。
        di:给属性赋值
        1. set注入(设值注入) :spring调用类的set方法, 你可以在set方法中完成属性赋值
         1)简单类型的set注入
            <bean id="xx" class="yyy">
               <property name="属性名字" value="此属性的值"/>
               一个property只能给一个属性赋值
               <property....>
            </bean>
            
         2) 引用类型的set注入 : spring调用类的set方法
           <bean id="xxx" class="yyy">
              <property name="属性名称" ref="bean的id(对象的名称)" />
           </bean>
    -->
    <bean id="myStudent" class="com.jjh.ba02.Student" >
        <property name="name" value="李四" />
        <property name="age" value="26" />
        <!--引用类型-->
        <property name="school" ref="mySchool" /><!--setSchool(mySchool)-->
    </bean>
    
    <!--声明School对象-->
    <bean id="mySchool" class="com.jjh.ba02.School">
        <property name="name" value="北京大学"/>
        <property name="address" value="北京的海淀区" />
    </bean>
</beans>

1.4.2 构造注入

构造注入是指,在构造调用者实例的同时,完成被调用者的实例化。即使用构造器设置依赖关系。

<!--
        2.构造注入:spring调用类有参数构造方法,在创建对象的同时,在构造方法中给属性赋值。
          构造注入使用 <constructor-arg> 标签
          <constructor-arg> 标签:一个<constructor-arg>表示构造方法一个参数。
          <constructor-arg> 标签属性:
             name:表示构造方法的形参名
             index:表示构造方法的参数的位置,参数从左往右位置是 0 , 1 ,2的顺序
             value:构造方法的形参类型是简单类型的,使用value
             ref:构造方法的形参类型是引用类型的,使用ref
    -->
            <!--使用name属性实现构造注入-->
            <bean id="myStudent" class="com.jjh.ba03.Student" >
                <constructor-arg name="myage" value="20" />
                <constructor-arg name="mySchool" ref="myXueXiao" />
                <constructor-arg name="myname" value="周良"/>
            </bean>
        
            <!--使用index属性-->
            <bean id="myStudent2" class="com.jjh.ba03.Student">
                <constructor-arg index="1" value="22" />
                <constructor-arg index="0" value="李四" />
                <constructor-arg index="2" ref="myXueXiao" />
            </bean>
        
            <!--省略index-->
            <bean id="myStudent3" class="com.jjh.ba03.Student">
                <constructor-arg  value="张强强" />
                <constructor-arg  value="22" />
                <constructor-arg  ref="myXueXiao" />
            </bean>

1.4.3 引用类型自动注入

byName(按名称注入)

java类中引用类型的属性名和spring容器中(配置文件)<bean>的id名称一样,且数据类型是一致的,这样的容器中的bean,spring能够赋值给引用类型。

<!--
        语法:
         <bean id="xx" class="yyy" autowire="byName">
            简单类型属性赋值
         </bean>
         -->
         
    <bean id="myStudent" class="com.jjh.ba04.Student" autowire="byName">
        <property name="name" value="李四" />
        <property name="age" value="26" />
        <!--引用类型-->
        <!--<property name="school" ref="mySchool" />-->
    </bean>

    <!--声明School对象-->
    <bean id="school" class="com.jjh.ba04.School">
        <property name="name" value="清华大学"/>
        <property name="address" value="北京的海淀区" />
    </bean>

byType(按类型注入)

java类中引用类型的数据类型和spring容器中(配置文件)的class属性是同源关系的,这样的bean能够赋值给引用类型

<!--
        语法:
         <bean id="xx" class="yyy" autowire="byType">
            简单类型属性赋值
         </bean>

         注意:在byType中, 在xml配置文件中声明bean只能有一个符合条件的,
              多余一个是错误的
-->
    <!--byType-->
    <bean id="myStudent" class="com.jjh.ba05.Student" autowire="byType">
        <property name="name" value="张飒" />
        <property name="age" value="26" />
        <!--引用类型-->
        <!--<property name="school" ref="mySchool" />-->
    </bean>

    <!--声明School对象-->
    <bean id="mySchool" class="com.jjh.ba05.School">
        <property name="name" value="人民大学"/>
        <property name="address" value="北京的海淀区" />
    </bean>

1.4.4 具有关联关系的配置

student类的配置文件
        <!--student 模块bean声明-->
    <bean id="myStudent" class="com.jjh.domain.entity.Student" autowire="byType">
        <property name="name" value="张三"/>
        <property name="age" value="23"/>
        <!--引用类型数据-->
    </bean>

School类的配置文件

    <bean id="mySchool" class="com.jjh.domain.entity.School">
        <property name="address" value="松潘"/>
        <property name="name" value="工大"/>
    </bean>

total配置文件

    <!--
         包含关系的配置文件:
         spring-total表示主配置文件 : 包含其他的配置文件的,主配置文件一般是不定义对象的。
         语法:<import resource="其他配置文件的路径" />
         关键字:"classpath:" 表示类路径(class文件所在的目录),
               在spring的配置文件中要指定其他文件的位置, 需要使用classpath,告诉spring到哪去加载读取文件。
    -->

    <!--加载的是文件列表-->
    <!--
    <import resource="classpath:ba01/applicationContext01.xml" />
    <import resource="classpath:ba01/applicationContext02.xml" />
    -->

    <!--
       在包含关系的配置文件中,可以通配符(*:表示任意字符)
       注意: 主的配置文件名称不能包含在通配符的范围内(不能叫做spring-total.xml)
    -->
    <!--导入配置文件-->
    <import resource="classpath:ba01/applicationContext*"/>

1.5 基于注解的DI

注解配置的约束文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd">

<!--spring 创建容器时要扫描的包  @ComponentScan --> 
<context:component-scan base-package="com.jjh">
</context:component-scan>
</beans>

实体类

@Data
@Component("myStudent")
public class Student {
    private String name;
    private int age;
    //引用类型
    private School school;
    }

测试类中调用

  @Test
    public void demo01(){
        String config = "applicationContext.xml";
        ApplicationContext app = new ClassPathXmlApplicationContext(config);
        Student myStudent = (Student)app.getBean("myStudent");
        System.out.println(myStudent);
    }

1.5.1 使用注解的步骤

1. 加入maven的依赖 spring-context,在你加入spring-context的同时, 间接加入spring-aop的依赖。使用注解必须使用spring-aop依赖

2. 在类中加入spring的注解(多个不同功能的注解)

3. 在spring的配置文件中,加入一个component-scan组件扫描器的标签,说明注解在你的项目中的位置   

<!--声明组件扫描器(component-scan),组件就是java对象
        base-package:指定注解在你的项目中的包名。
        component-scan工作方式: spring会扫描遍历base-package指定的包,
           把包中和子包中的所有类,找到类中的注解,按照注解的功能创建对象,或给属性赋值。

       加入了component-scan标签,配置文件的变化:
        1.加入一个新的约束文件spring-context.xsd
        2.给这个新的约束文件起个命名空间的名称
    -->
    <context:component-scan base-package="com.jjh.ba01" />

1.5.2 多注解项目分层

1. @Component: 创建对象的, 等同于<bean>的功能

属性:value 就是对象的名称,也就是bean的id值,value的值是唯一的,创建的对象在整个spring容器中就一个

2. @Repository(用在持久层类的上面) : 放在dao的实现类上面,表示创建dao对象,dao对象是能访问数据库的。

3. @Service(用在业务层类的上面):放在service的实现类上面,创建service对象,service对象是做业务处理,可以有事务等功能的。

4. @Controller(用在控制器的上面):放在控制器(处理器)类的上面,创建控制器对象的,控制器对象,能够接受用户提交的参数,显示请求的处理结果

以上三个注解的使用语法和@Component一样的。 都能创建对象,但是这三个注解还有额外的功能。

1.5.3 简单类型的赋值

@Value: 简单类型的属性赋值

属性: value 是String类型的,表示简单类型的属性值

使用位置:1.在属性定义的上面,无需set方法,推荐使用。
     2.在set方法的上面
配置文件

<context:component-scan base-package="com.jjh"/>
    <!--配置属性的properties文件-->
    <context:property-placeholder location="classpath:student.properties"/>

properties文件

name=Dick
age=20
@Component("myStudent")
public class Student {

    //@Value("李四" )
    @Value("${myname}") //使用属性配置文件中的数据
    private String name;

    @Value("${myage}")  //使用属性配置文件中的数据
    private Integer age;
    }

1.5.4 引用类型的赋值

默认方式

1.@Autowired: spring框架提供的注解,实现引用类型的赋值

2.spring中通过注解给引用类型赋值,使用的是自动注入原理 ,支持byName, byType

3.@Autowired:默认使用的是byType自动注入

4.使用位置:

在属性上面使用

在set方法上面使用

@Component("myStudent")
public class Student {

    @Value("李四" )
    private String name;
    @Value("20")
    private Integer age;

    @Autowired
    private School school;
    }

通过名称赋值

如果要使用byName方式:

在属性上面加入@Autowired

属性上面加入@Qualifier(value="bean的id") :表示使用指定名称的bean完成赋值在

@Component("myStudent")
public class Student {

    @Value("李四" )
    private String name;
    @Value("20")
    private Integer age;

    @Autowired
    @Qualifier("mySchool")
    private School school;
    }

1.5.5 Autowired的required属性

  • required :是一个boolean类型的,默认true
  • required=true:表示引用类型赋值失败,程序报错,并终止执行
  • required=false:引用类型如果赋值失败, 程序正常执行,引用类型是null

1.5.6 JDK注解@Resource自动注入

1.@Resource: 来自jdk中的注解,spring框架提供了对这个注解的功能支持,可以使用它给引用类型赋值

2.使用的也是自动注入原理,支持byName,byType默认是byName

3.使用位置:

  • 在属性定义的上面,无需set方法,推荐使用
  • 在set方法的上面

4.默认是byName:先使用byName自动注入,如果byName赋值失败,再使用byType

5.@Resource只使用byName方式,需要增加一个属性 name,name的值是bean的id(名称)

指定name

@Component("myStudent")
public class Student {

    @Value("李四" )
    private String name;
    private Integer age;

    //只使用byName
    @Resource(name = "mySchool")
    private School school;

默认配置

@Component("myStudent")
public class Student {

    @Value("李四" )
    private String name;
    private Integer age;

    //只使用byName
    @Resource
    private School school;

Spring内容讲解与介绍 Spring框架的核心技术是IOC和AOP(采用jdk和cglib动态代理实现的) 立即下载

相关推荐

springmvc 学习笔记

springmvc的学习笔记,有助于理解基础学习

满老师spring5讲解文字版第一讲

个人纪录 上面的内容来自黑马程序员b站发布视频,下面来自chat,部分来自spring6.0.5文档

m0_74958466的博客 286

北京动力节点的spring4.2的教学讲义

spring4.2的教学讲义,几乎相当于spring4.2的中文api,几乎涵盖了该框架的最新,以及之前的所有内容,而且有解释和实例,是学习spring的极好工具;

Spring学习笔记(王鹤老师)

文章目录一、IOC控制反转1.1 概述1.2 IOC的实现 一、IOC控制反转 1.1 概述 控制反转(IoC,Inversion of Control),是一个概念,是一种思想。指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对象控制权的转移,从程序代码本身反转到了外部容器。通过容器实现对象的创建,属性赋值,依赖的管理 IoC 是一个概念,是一种思想,其实现方式多种多样。当前比较流行的实现方式是依赖 注入。应用广泛 依赖:classA 类中含有 c

woshiabao666的博客 1004

Stata极简生存分析

1. 导入数据 webuse drugtr,clear *webuse -- Use dataset from Stata website stset,clear *上一行命令导入进来的数据是“生存时间数据”,会比最原始的数据多四列,这一行命令的目的是重置为原始数据,之所以这样做,是为了显示数据处理的全部过程 codebook drug codebook studytime codebook died codebook age *codebook -- Describe data contents 2.

TOP生物信息 2336

深信服上网行为管理设备登录方法、恢复出厂、恢复控制台密码

1.初识设备 1.1 设备外观 1.2 软件版本 2.如何登录设备 首次拿到AC/SG设备时,可以通过以下方法登录设备控制台 SANGFOR AC/SG设备,各网口默认的出厂IP为: eth0(LAN):10.251.251.251/24 , eth1(DMZ)10.252.252.252/24 1、使用一根交叉线连接设备和电脑 (1) 如果电脑连接的是设备的eth0口,需先在电脑上配...

✍千里之行,始于足下 ^,^ 5万+

[Java]SpringMVC 学习笔记(动力节点王鹤王妈妈2020)

SpringMVC 学习笔记SpringMVC 概述 SpringMVC 处理用户请求的过程 第一个 SpringMVC 程序 创建项目 引入依赖 注册 DispatherServlet 对象 创建发起请求的页面 index.jsp 创建控制器类 创建显示结果的页面 创建 springmvc 的配置文件 请求处理过程分析 DispatcherServlet 源码分析 init() doDispath() 配置视图解析器 类上的 RequestMapping 注解 设置方法处理请求的类型 处理器方法形参 Ht

emmmm..... 701

XDMA原理学习(1)——DMA技术详解

DMA 技术是Direct Memory Access的缩写,其意思是“存储器直接访问”。它是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。DMA是所有现代计算机的重要特色,它允许不同速度的硬件设备进行沟通,而不需要依于中央处理器的大量中断负载。否则,中央处理器需要从来源把每一片段的数据复制到寄存器,然后把它们再次写回到新的地方。在这个时间里,中央处理器就无法执行其它的任务。

apple_53311083的博客 8381

SpringBoot 注解整理学习笔记

本人是 6天学完SpringBoot的 有不足的地方 请指出 先记录一下 整个学习笔记的大纲 稍后上项目的时候 将一点一点写细节的操作问题 @SpringBootApplication 核心注解 开启spring 自动配置 @EnableDubboConfiguration 开启dubbo注解 @MapperScan 开启扫描Mapper接口以及目录 @Mapper 扫描接口到容器要不然不能通过容器调用 @RequestMapping 这个就是写后端地址 @RestController = @Con

欢少的成长之路的博客 495

家用扫地机器人研发技术路线-第四部分:如何一步步做出来 | 4阶段 · 从原型到量产

摘要:本文详细介绍了扫地机器人从原型到量产的研发流程,分为4个关键阶段。首先聚焦四大技术难点:SLAM定位、AI视觉识别、仿生机械臂和静音风机系统。研发过程包括实验室原型验证、工程样机测试、小批量真实场景测试和量产导入四个阶段,每个阶段设有严格评审标准。特别强调测试贯穿全程,包括模块单元测试、整机集成测试、长期可靠性测试和多样化场景模拟,确保产品在上市前完成数百次真实环境验证。整个流程体现了从技术攻关到产品落地的系统性工程思维。

智能硬件研发,欢迎交流 191

JAX/JAXlib GPU 加速版本安装教程(CUDA)

本文介绍了在Windows WSL2+Ubuntu22.04环境下配置JAX/JAXlib GPU加速版本的详细步骤。使用RTX 4060显卡,安装CUDA 12.4和cuDNN 8.9.7驱动,通过Miniconda创建Python 3.9虚拟环境。具体步骤包括:安装Miniconda、配置CUDA环境变量、安装cuDNN驱动、下载并安装JAX/JAXlib。最后通过测试代码验证GPU加速功能,成功检测到GPU并完成矩阵运算。整个过程配有详细命令和截图说明,适合需要搭建JAX GPU开发环境的用户参考。

猿小白的博客 627

ssm框架学习笔记

title: ssm框架学习笔记 date: 2018-03-21 16:49:52 updated: 2020-03-12 14:34:23 categories: spring tags: - spring 此文档记录研二学习ssm框架的知识点笔记 SSM简介 最初:jsp + servlet + jdbc 现在:springmvc + spring + mybatis 官网地址: lo...

Pop_Rain的博客 2238

从数据库到数据仓库:数据仓库导论

本文为数据仓库导论,旨在介绍数据仓库的基本理念和应用场景,帮助读者理解数据仓库的重要性及其在企业中的实际应用。

探索大数据世界 - 深入解析数据存储、分布式计算与人工智能 2784

『硬核』Spring完整版学习笔记,动力节点王鹤

Spring学习笔记(来自王鹤老师讲的最新版Spring) spring笔记官方下载地址 动力节点springboot资料 视频观看地址 https://www.bilibili.com/video/BV1nz4y1d7uy 第一章 Spring 概述 1.1. 什么是spring spring就是一个java框架,使用java语言开发的, 轻量级的, 开源的框架。 可以在j2se、j2ee项目中都可以使用。 spring核心技术: ioc, aop spring又叫做:容器, spring作为容器

Java_Coding1的博客 439

手把手教你学simulink(12.10)--设计和仿真一个用于控制飞机纵向运动(高度和速度)的多变量控制系统

飞机的纵向运动控制是航空工程中的一个重要问题,涉及飞机的高度和速度的精确控制。多变量控制系统可以同时控制多个飞行参数,确保飞机在最佳条件下运行。Simulink提供了一个强大的平台,用于建模、仿真和分析动态系统,非常适合设计和测试多变量控制系统。通过本项目的实施,我们成功设计和仿真了一个用于控制飞机纵向运动(高度和速度)的多变量控制系统。该项目展示了从系统建模、控制器设计、仿真验证到结果分析的完整流程,为多变量控制系统的设计提供了有价值的参考。

MHD0815的博客 598

智能手表 BOM 表与版本管理记录

试产与量产阶段 智能手表 BOM 表与版本管理记录

hoony123的博客 1053

【Spring】(1)Spring概述:什么是Spring框架?为什么要用Spring框架?

两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架,在学习过程中我将视频中涉及的代码都一行一行手敲了一遍,并且把Spring入门相关的资料整理了一下,在这里记录一下我在Spring框架学习过程中的笔记和一些心得,希望能帮助到想要通过文字教程入门Spring这一框架的小伙伴哦! 视频地址:2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通 文章目录第一部分 Spring概述1. 什么是 Spring 框架2. Spring 的优点1)轻量2)面向接.

aaa_hao的博客 6252

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【Spring】(2)IoC控制反转:IoC是啥?容器又是啥?写一个简单的Spring程序瞧瞧!

两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架,在学习过程中我将视频中涉及的代码都一行一行手敲了一遍,并且把Spring入门相关的资料整理了一下,在这里记录一下我在Spring框架学习过程中的笔记和一些心得,希望能帮助到想要通过文字教程入门Spring这一框架的小伙伴哦! 视频地址:2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通 文章目录1. IoC 简介2. Spring 程序初步1)创建 Maven 项目2)引入相关 Maven 依.

aaa_hao的博客 1688

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【SSM】12-Spring-初始框架和控制反转

目录 前言 1、初识spring框架 1.1 Spring框架是什么? 1.2 Spring框架的优点 1.3 Spring框架的体系结构 2、控制反转 2.1 什么是控制反转? 2.2 创建maven工程 2.3 修改pom.xml 2.4 创建接口和实现类 2.5 定义Spring容器配置文件 2.6 编写测试类 3、小结 前言 声明:本专栏文章均为观看动力节点王鹤老师三大框架的视频所撰写的笔记,笔者实力有限,内容如有错误欢迎各位小伙伴在评论区指出。 视频链接:SSM-S

m0_50964976的博客 495

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

CHY的Spring学习笔记---师从动力节点王鹤老师(B站白嫖)

Spring学习笔记 核心技术:ioc和aop ioc:使用di(依赖注入)实现控制反转,底层使用的是反射机制 spring可以创建自己写的类的对象,也可以创建非自定义对象,只要知道类的全限定名即可。 spring创建对象:默认调用的是无参构造方法。 使用spring框架的步骤: 加入spring-context依赖 创建类:接口,实现类、没有接口的类 创建spring的配置文件applicationContext.xml,使用声明对象 使用容器中的对象: ApplicationCont

CHY821的博客 536

Spring-1-认识Spring框架与ApplicationContext对象

【参考B站动力节点教学视频-王鹤老师】https://www.bilibili.com/video/BV1nz4y1d7uy?p=1 1、Spring 概述 1.1Spring 框架是什么 Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring 的核心是控制反转(IoC)和面向切面编程(AOP)。Spring 是可以在 Java SE/EE 中使用的轻量级开源框架。Spring 的主要作用就是为代码“解耦”,降低代码间...

风暴计划 470

大佬把Spring框架总结的「无比详细」,学spring,这一套学习教程就够了!

Spring简介 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。 Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring

Javanewspaper的博客 258

【动力节点笔记】细说spring、springboot、springcloud三者的区别

最近学到了springboot,看的动力节点王鹤老师的视频,今天这篇博客,主要说说spring,springboot,springcloud这三者都是干嘛的? 视频资源:https://www.bilibili.com/video/BV1XQ4y1m7ex 架构 > 解偶 开发框架 spring IOC AOP Ioc :控制反转 原来我们都是自己一步步操作,现在交给容器了!我们需要什么就去拿就可以了 Aop :切面(本质...

Java___interview的博客 308

2020-08-19

控制反转(IoC,Inversion of Control),是一个概念,是一种思想。指将传统上由程序代 码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对 象控制权的转移,从程序代码本身反转到了外部容器。通过容器实现对象的创建,属性赋值, 依赖的管理。 IoC 是一个概念,是一种思想,其实现方式多种多样。当前比较流行的实现方式是依赖 注入。应用广泛。 依赖:classA 类中含有 classB 的实例,在 classA 中调用 classB 的方法完成功能,即 classA

li_csdn_blogs的博客 1620
上一篇: 2022年最新整理,动力节点Java自学全套资源
下一篇: 动力节点Spring框架学习笔记-王鹤(二)AOP面向切面编程
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值