首页 > 其他分享 >2_Spring_IOC概念引入_重要

2_Spring_IOC概念引入_重要

时间:2023-07-30 12:47:23浏览次数:76  
标签:容器 依赖 Spring springframework 导入 spring 引入 org IOC

2_Spring_IOC概念引入_重要

image
简单的说就是,创建对象的权利,或者是控制的位置,由JAVA代码转移到spring容器,由spring的容器控制对象的创建,就是控制反转,spring创建对象时,会读取配置文件中的信息,然后使用反射给我们创建好对象之后在容器中存储起来,当我们需要某个对象时,通过id获取对象即可,不需要我们自己去new.
一句话:创建对象交给容器

Spring解耦合的原理

图解

image

创建maven项目,设置maven

先创建一个空项目

image
名字可以是spring_all

image

在项目下创建模块 名字可以是spring_test_01

image

image

pom.xml中导入spring依赖

  1.  <dependencies>
    
  2.      <dependency>
    
  3.          <groupId>org.springframework</groupId>
    
  4.          <artifactId>spring-core</artifactId>
    
  5.          <version>5.3.5</version>
    
  6.      </dependency>
    
  7.      <dependency>
    
  8.          <groupId>org.springframework</groupId>
    
  9.          <artifactId>spring-beans</artifactId>
    
  10.         <version>5.3.5</version>
    
  11.     </dependency>
    
  12.     <dependency>
    
  13.         <groupId>org.springframework</groupId>
    
  14.         <artifactId>spring-context</artifactId>
    
  15.         <version>5.3.5</version>
    
  16.     </dependency>
    
  17.     <dependency>
    
  18.         <groupId>org.springframework</groupId>
    
  19.         <artifactId>spring-expression</artifactId>
    
  20.         <version>5.3.5</version>
    
  21.     </dependency>
    
  22. </dependencies>
    

四个依赖介绍

spring-context      上下文,容器

spring-beans         创建对象

spring-core            核心jar

spring-expression 表达式jar

但是事实上,我们导入spring-context的时候,会自动导入其他依赖的jar,自动进行了依赖传递

所以,导入一个spring-context 依赖也可以

image
依赖传递关系图如下

image

为了方便测试,我们导入Junit测试依赖

  1.      <dependency>
    
  2.          <groupId>junit</groupId>
    
  3.          <artifactId>junit</artifactId>
    
  4.          <version>4.13.1</version>
    
  5.          <scope>test</scope>
    
  6.      </dependency> 
    

在项目中定义一个接口和实现类

EmpDao接口和实现类

image
接口中定义一个方法并在实现类中实现

接口

image

实现类

image

在spring配置容器中的对象

创建spring配置文件

image

文件名没有明确要求,暂时可以叫spring

image

在spring.xml中配置一个需要由容器初始化的对象

image

测试通过容器获取对象

image


Generated with Mybase Desktop 8.2.13

标签:容器,依赖,Spring,springframework,导入,spring,引入,org,IOC
From: https://www.cnblogs.com/01way/p/17591269.html

相关文章

  • 6_Spring_Bean的自动装配
    6_Spring_Bean的自动装配bean自动装配通过property标签可以手动指定给属性进行注入我们也可以通过自动转配,完成属性的自动注入,就是自动装配,可以简化DI的配置准备实体类packagecom.msb.bean;/**@Author:MaHaiYang@Description:MircoMessage:Mark_7001......
  • 5_Spring_Bean的生命周期
    5_Spring_Bean的生命周期bean从创建到销毁经历的各个阶段以及每个阶段所调用的方法1通过构造器创建bean实例     执行构造器2为bean属性赋值            执行set方法3初始化bean                调......
  • 4_Spring_XML方式实现DI
    4_Spring_XML方式实现DIspring中的Bean的管理:Bean(汉译咖啡豆).又称JAVABean.其实就是JAVA程序程序中的一个个对象,所以Bean的管理其实就是spring对于JAVA程序中的对象的管理管理的内容是什么1对象的创建 IOCIOC 叫做控制反转,就是Spring给我们创建对象,然后我们直......
  • 9_Spring_JDK动态代理
    9_Spring_JDK动态代理代理模式是通过代理对象访问目标对象,这样可以在目标对象基础上增强额外的功能,如添加权限,访问控制和审计等功能。房产中介代替业主卖房静态代理静态代理中代理类与被代理类都需要实现同一个接口,这就说明我们的一个静态代理类只能代理一个类,并且还要事先......
  • 8_Spring_注解方式管理bean
    8_Spring_注解方式管理bean1注解方式创建对象IOC导入依赖aop@Component  放在类上,用于标记,告诉spring当前类需要由容器实例化bean并放入容器中该注解有三个子注解@Controller 用于实例化controller层bean@Service    用于实例化service层bean@Repositor......
  • 7_Spring_使用外部属性配置文件
    7_Spring_使用外部属性配置文件spring容器可以读取.properties属性配置文件,可以将文件中的信息注入给bean例如,引入Druid数据源,配置连接池信息1 导入Druid依赖和mysql-connector依赖<dependency><groupId>com.alibaba</groupId><artifa......
  • 13_Spring_AOPXML方式实现_了解
    13_Spring_AOPXML方式实现_了解1、创建两个类,增强类和被增强类,创建方法见之前的代码2、在spring配置文件中创建两个类对象 3、在spring配置文件中配置切入点<aop:config><!--切入点--><aop:pointcutid="pointCutAdd"expression="execution......
  • 12_Spring_AOP注解方式实现_掌握
    12_Spring_AOP注解方式实现_掌握AspectJ本身并不是spring框架中的组成部分,是一个独立的AOP框架,一般把AspectJ和Spring框架的AOP依赖一起使用,所以要导入一个独立的依赖实现的两种方式1基于注解方式实现(熟练)2基于XML配置方式(了解)准备工作1导入依赖<!-......
  • 11_Spring_AOP概念和原理
    11_Spring_AOP概念和原理AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现日志处理,权限控制,性能检测,事务控制等AOP实现的原理就是动态代理,在有接口的情况下,使用JDK动态代理,在没有接口的情况下使用cglib动态代理为Dao层所有的......
  • 10_Spring_CGLIB动态代理
    10_Spring_CGLIB动态代理proxy动态代理面向接口1必须有接口和实现类2增强接口中定义的方法3只能读取接口中方法的上注解cglib动态代理模式面向父类packagecom.msb.testCglib;importorg.junit.Test;importorg.springframework.cglib.proxy.Enhancer;importorg.s......