首页 > 其他分享 >spring框架学习

spring框架学习

时间:2024-07-25 17:27:50浏览次数:10  
标签:框架 service DI 对象 spring 学习 new IoC

spring框架学习:第一部分


前言

记录复盘spring框架核心概念部分


一、核心概念1:IoC和DI?

IoC:控制翻转,为了解决在使用对象时需要主动new对象的问题,将new对象的工作转交给IoC容器去做,同时让业务层和数据层专注于实现业务
在这里插入图片描述
DI:依赖注入,虽然new对象的工作都交给IoC容器去做,但是还需要再业务层中去调用数据层的对象,因此,在IoC容器中除了new对象,还能创建依赖,使业务层使用对象时不仅可以直接从IoC容器中获取,取到的Bean已经绑定好了依赖关系,此时,业务层只需直接调用对象方法即可实现。

二、具体实现案例

1.未使用spring框架方法

1.进入main方法开始执行
2.由service实现层serviceImpl创建对象,并调用serviceImpl中的save()方法
3.由Dao层创建对象,并调用daoImpl中的save()方法

2.开始使用spring框架-------------在pom文件导入spring依赖

在这里插入图片描述

3.创建xml配置文件,并对service层和dao层配置Bean

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片手上少时诵诗书描述

思路如下:
1.创建IoC容器
2.获取service层Bean的对象contextBean
3.运行对象contextBean的save方法
3.1运行时先由service层的对象调用service层的save方法
3.2再运行service层的“bookDao.save()”语句
3.3进入Dao层,由Dao层的对象conteBean调用save方法

4.配置DI绑定

注意:此时service层中还有new一个Dao层对象的语句,因此为了降低耦合,需要进行DI配置

代码如下:

在这里插入图片描述
在这里插入图片描述


总结:

首先,spring框架为了让业务层和数据接入层实现不new对象的功能,引入了IoC控制反转和DI(依赖注入)以及容器。通过在配置文件里进行配置,将new对象的任务交给容器进行。在进行上述操作后,service层为了使用Dao层对象,仍然有new对象操作,为了解决这个问题,引入了DI。
其次,DI也是通过配置文件来进行处理。1.在service层中将new对象的语句去除,只写一个变量并为变量配置seter方法。2.在配置文件中的service对象中引入下列代码(弄清楚谁引用谁)

<bean id="bookDao" class="org.example.test.dao.impl.BookDaoImpl"></bean>
<bean id="bookService" class="org.example.test.serviece.impl.BookServiceImpl">
        <property name="bookDao" ref="bookDao">
        </property>
</bean>

标签:框架,service,DI,对象,spring,学习,new,IoC
From: https://blog.csdn.net/weixin_43300787/article/details/140684550

相关文章

  • SpringBoot 依赖之Java Mail Sender邮件发送
    JavaMailSender依赖名称:JavaMailSender功能描述:SendemailusingJavaMailandSpringFramework’sJavaMailSender.使用JavaMail和SpringFramework的JavaMailSender发送电子邮件。<dependency> <groupId>org.springframework.boot</groupId> <artifa......
  • springsecurity流程梳理与总结
    springsecurity的基本使用方法学习完了,还是有些懵圈,再回过头来梳理一下流程以及使用情况 1-4.传一个User实体,new一个UserPasswordAuthenticationToken对象存入name/password。UserPasswordAuthenticationToken拓展的AbstractAuthenticationToken而AbstractAuthenticationToken......
  • SpringBoot 结合官网对MQTT消息队列整合记录
    SpringBoot结合官网对MQTT消息队列整合首先是mavenPom的引入MqttClient<dependency><groupId>org.eclipse.paho</groupId><artifactId>org.eclipse.paho.client.mqttv3</artifactId><version>1.2.......
  • 深入探讨 SpringMVC:从基础到高级应用
    深入探讨SpringMVC:从基础到高级应用在现代Java开发中,SpringMVC是一个不可或缺的框架。它不仅简化了Web应用的开发,还提供了强大的功能和灵活性。今天,我们将深入探讨SpringMVC,从基础概念到高级应用,带你全面了解这个强大的框架。1.什么是SpringMVC?SpringMVC是Spring框......
  • 使用SpringAI框架实现文字生成图片壁纸:深入探索与实战
    使用SpringAI框架实现文字生成图片壁纸:深入探索与实战在当今的技术世界中,人工智能(AI)已经成为了一个热门话题。无论是自然语言处理、图像识别还是生成对抗网络(GAN),AI的应用场景无处不在。今天,我们将深入探讨如何使用SpringAI框架来实现一个有趣的功能:根据文字生成图片壁纸。什么是......
  • ssy中学暑假集训学习笔记
    7.25集训第二天今天我们学了博弈论相关题目,但是在做相关题目前,我们先明确几个基本的知识点:mex运算:给定一个集合,该集合中不存在的最小自然数即为该序列的mex。举个例子:对于集合{\(0\),\(1\),\(1\),\(2\),\(4\)},他的mex即为\(3\)。SG函数:我们先建立一个DAG,从出度为\(0\)的节......
  • 探索SSM框架:Spring、SpringMVC与Maven的深度整合
    探索SSM框架:Spring、SpringMVC与Maven的深度整合大家好,今天我们来聊聊一个非常经典的JavaWeb开发框架组合——SSM框架。SSM是Spring、SpringMVC和Maven的缩写,这三者的结合可以说是JavaWeb开发中的黄金搭配。本文将带你深入了解SSM框架的核心概念,并通过代码示例来展示如何整合这......
  • Spring Boot + Maven 多模块项目开发详解
    SpringBoot+Maven多模块项目开发详解在现代软件开发中,模块化开发是一种非常重要的设计思想。它不仅能提高代码的可维护性,还能促进团队协作。今天,我们就来聊聊如何使用SpringBoot和Maven来构建一个多模块项目。为什么要使用多模块?在开始之前,我们先来讨论一下为什么要使......
  • SpringBootApplication入口调用service类方法
    要在publicstaticvoidmain(String[]args)中调用Service的方法,需要在Application类中手动获取Spring容器,并从中获取Service的实例。示例如下:启动入口程序@SpringBootApplicationpublicclassRouteApplication{publicstaticvoidmain(String[]args){......
  • Spring | createBeanInstance传入的有参和 applyPropertyValues中的属性有什么关系
    基本功能createBeanInstanceBean的实例化会根据构造函数参数创建Bean的实例。构造函数参数通常是通过依赖注入提供的,这些依赖可能是其他bean或者简单的值类型applyPropertyValuesBean的属性设置在Bean实例创建后,负责将剩余的属性值注入到Bean实例中。这些属性值可能来自......