Spring IOC

一:spring简介

spring是一套企业级的开发框架。有良好的生态,可以应对大多数的开发环境

spring模块:

注:web不是前段,而是view层。

spring体系结构

二:spring环境的搭建

1、写坐标:

在pom.xml文件中写:

    <dependencies>
        <!--spring-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.27</version>
        </dependency>
    </dependencies>

spring有二十多种模块,导入spring-context后会加载6种模块,足够平时的开发

2、配置文件

加载spring-context后在资源文件夹下创建Spring Config文件,命名为beans.xml

<!--注入dao-->
    <bean id="daoImp" class="com.apesource.dao.UserDaoImp"></bean>
    <!--注入service-->
    <bean id="serviceImp" class="com.apesource.service.UserServiceImp">
        <property name="dao" ref="daoImp"></property>
    </bean>

    <!--注入controller-->
    <bean id="controllerImp" class="com.apesource.contorller.UserControllerImp">
        <property name="service" ref="serviceImp"></property>
    </bean>

三:IOC

解释:IOC是指将创建对象的控制权转移给Spring框架进行管理。 由Spring框架根据配置文件或注解等方式,创建bean对象并管理各个bean对象之间的依赖关系。 使对象之间形成松散耦合的关系,实现解耦;

IOC的范围

spring IOC:

控制反转

控制是指本身创建对象是由用户来进行创建的,即new对象,但是我们通过IOC的方式将对象创建的事情交给IOC容器,把需要创建的对方放进IOC容器创建,我们直接通过BeanFactory进行获取。用反射的方式进行创建,降低代码的耦合程度,使代码即使分开也可以执行。

反转就是把创建对象这个权利交给外部容器(IOC.....)

关键字:IOC名词解释,作用是解耦,使用IOC容器管理项目组件之间的耦合关系

IOC( Inversion of Control,中文释义:控制反转 ) 是Spring框架的核心思想之一, 主要用于解耦。

四:Spring IOC的使用方法:

1、创建类

2、把需要进行解耦的类放进springIOC容器

id是这个类的唯一标识,class是它的地址路径

<beans>
<bean id="serviceImp" class="com.apesource.service.UserServiceImp">
        <property name="dao" ref="daoImp"></property>
    </bean>
</beans>

3、通过加载主配置文件,获取spring核心对象

//1.加载spring主配置文件,获取spring核心对象
ApplicationContext applicationContext =  new ClassPathXmlApplicationContext("beans.xml");
//2.获取javaBean
IUserController controller = (IUserController) applicationContext.getBean("controllerImp");
controller.save();

相关推荐

  1. SpringIoC原理

    2024-07-16 02:18:05       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 02:18:05       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 02:18:05       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 02:18:05       57 阅读
  4. Python语言-面向对象

    2024-07-16 02:18:05       68 阅读

热门阅读

  1. 实习随笔【前端技术实现全局添加水印】

    2024-07-16 02:18:05       21 阅读
  2. (day17)其他分组不明确的题

    2024-07-16 02:18:05       21 阅读
  3. no-fee服务器玩转LLM

    2024-07-16 02:18:05       19 阅读
  4. lvs是什么

    2024-07-16 02:18:05       18 阅读
  5. UDP传输文件和FTP传输文件

    2024-07-16 02:18:05       20 阅读
  6. flutter Android端权限

    2024-07-16 02:18:05       19 阅读
  7. .NET在工控上位机开发中有哪些成功的案例?

    2024-07-16 02:18:05       23 阅读
  8. 最短路之朴素版的dij板子

    2024-07-16 02:18:05       18 阅读
  9. c++ 生成随机字符串

    2024-07-16 02:18:05       21 阅读
  10. 顺序表(C语言)

    2024-07-16 02:18:05       18 阅读
  11. 堆、栈和队列(数据结构)

    2024-07-16 02:18:05       21 阅读
  12. 跨越空间的编码:在PyCharm中高效使用远程解释器

    2024-07-16 02:18:05       18 阅读