1:Spring框架核心-Java Spring

2023-05-16

CSDN话题挑战赛第2期
参赛话题:学习笔记

目录

  • 1.1 软件模块化
  • 1.2 Spring框架介绍
  • 1.3 Spring框架的配置
  • 1.4 Servlet
  • 1.5 Spring容器
  • 1.6 Spring Bean对象的注解
  • 1.7 控制反转

1.1 软件模块化

把一个程序分割成一些不同的部分,可以在某种程度上减少它的复杂性,多层体系结构的优点有:

  • 结构简单,便于不同技能的程序员分工负责不同的层
  • 便于测试,每一层都可以独立测试
  • 变更可控,可以把代码的变更控制在一层之内,不会影响其他的层

Model-View-Controller将软件用户界面和业务逻辑分离

在这里插入图片描述

Model-View-Controller将软件用户界面和业务逻辑分离

在这里插入图片描述

1.2 Spring框架介绍

Spring 是一款目前主流的 Java EE 轻量级开源框架 ,是由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期,成为了构建 Java EE 应用的事实标准

两大核心IOC 与 AOP有效的管理了开发中对象的生命周期问题,也提供了与很多框架整合的工具

1.3 Spring框架的配置

在这里插入图片描述

1.4 Servlet

Servlet是运行在 Web 服务器或应用服务器上的Java程序,它可以收集来自前端的用户输入数据,以动态生成网页的方式呈现来自数据库的记录,其作用包括:

  • 通讯功能
  • Servlet对象的生命周期管理
  • 多线程支持
  • 安全性支持

在这里插入图片描述

1.5 Spring容器

Spring容器来负责创建对象并把对象关联起来提供服务,容器提供了公共服务,容器依赖于配置信息,Spring拥有两种类型的容器

  • BeanFactory负责读取bean配置信息,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的生命周期,每次获取对象时才会创建对象

  • ApplicationContextt由BeanFactory派生而来,同时也继承了容器的高级功能,提供了更多面向实际应用的功能。在容器启动时就会创建所有的对象
    Spring Bean的生命周期从创建容器开始,到容器销毁Bean为止

1.6 Spring Bean对象的注解

Spring中的常用的注解通常分为两类,一类是用来注册Bean,一类是用来使用Bean,简单的来说bean就是一个被实例化的对象,Spring Bean的生命周期从创建容器开始,到容器销毁Bean为止

1.注册Bean

  • 注册Bean时,@Controller, @Service, @Repository与@Component含义相同,分别用于标识Controller层,Service层,DAO层的Bean对象,这些注解都是把你要实例化的对象转化成一个Bean,放在IOC容器中,把对象交给Spring去管理

2.使用Bean

  • 使用Bean时,即是把已经在xml文件中配置好的Bean拿来用,完成属性、方法的组装,当我们需要使用时直接去IOC容器中去取,而不是new一个新的对象,比如@Autowired,@Resource注解,就是从IOC容器中取Bean

1.7 控制反转

​ 控制反转(Inversion of Control,缩写为IoC),是指Bean对象之间的依赖不由它们自己管理,而是由Spring容器负责管理对象之间的依赖,采用叫依赖注入(Dependency Injection,简称DI)的方式实现控制反转

当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例
但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入

1.常见的管理对象方式有

  • XML:显式定义在XML文件中
  • Java:用Java代码显式的定义
  • 注解:@用注解定义属性, 支持自动绑定

2.Spring注解方式

  • @Autowired时,首先在容器中查询对应类型的bean
  • 如果查询结果刚好为一个,就将该bean装配给@Autowired指定的数据
  • 如果查询的结果不止一个,那么@Autowired会根据变量的名称来查找。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1:Spring框架核心-Java Spring 的相关文章

随机推荐

  • 实现一个进程管理子系统-Linux课程设计

    目录 1 项目概述1 1 项目介绍1 2 项目目的1 3 项目开发环境 2 需求分析2 1 系统需求分析2 2 可行性分析2 3 项目实施安排 3 系统设计3 1 系统结构设计3 2 系统功能模块设计3 3 进程总体设计3 4 数据结构3
  • LeetCode 14. 最长公共前缀

    题目 编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 xff0c 返回空字符串 详见 xff1a 14 最长公共前缀 思路 依次遍历字符串数组中的每个字符串 xff0c 将每个单词和第一个单词作比较 xff0c 对于每个遍
  • 删除对象里的一个字段的方法

    原数据 34 current 34 1 34 pageSize 34 10 34 pageNum 34 1 34 labLocationId 34 undefined 删除labLocationId字段的方法 if params labLo
  • LeetCode 912. 排序数组

    题目 给你一个整数数组 nums xff0c 请你将该数组升序排列 详见 xff1a 912 排序数组 思路 排序是计算机内经常进行的一种操作 xff0c 其目的是将一组 无序 的记录序列调整为 有序 的记录序列 分内部排序和外部排序 xf
  • LeetCode 190. 颠倒二进制位

    题目 颠倒给定的 32 位无符号整数的二进制位 提示 xff1a 请注意 xff0c 在某些语言 xff08 如 Java xff09 中 xff0c 没有无符号整数类型 在这种情况下 xff0c 输入和输出都将被指定为有符号整数类型 xf
  • LeetCode 387. 字符串中的第一个唯一字符

    题目 给定一个字符串 s xff0c 找到 它的第一个不重复的字符 xff0c 并返回它的索引 如果不存在 xff0c 则返回 1 详见 xff1a 387 字符串中的第一个唯一字符 思路 哈希存储出现次数 xff0c 第一次遍历字符串 x
  • LeetCode 26. 删除有序数组中的重复项

    题目 给你一个 升序排列 的数组 nums xff0c 请你 原地 删除重复出现的元素 xff0c 使每个元素 只出现一次 xff0c 返回删除后数组的新长度 元素的 相对顺序 应该保持 一致 由于在某些语言中不能改变数组的长度 xff0c
  • LeetCode 19. 删除链表的倒数第 N 个结点

    题目 给你一个链表 xff0c 删除链表的倒数第 n 个结点 xff0c 并且返回链表的头结点 输入 xff1a head 61 1 2 3 4 5 n 61 2 输出 xff1a 1 2 3 5 详见 xff1a 19 删除链表的倒数第
  • LeetCode 剑指 Offer 58 - II. 左旋转字符串

    题目 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部 请定义一个函数实现字符串左旋转操作的功能 比如 xff0c 输入字符串 34 abcdefg 34 和数字2 xff0c 该函数将返回左旋转两位得到的结果 34 cdef
  • LeetCode 1550. 存在连续三个奇数的数组

    题目 给你一个整数数组 arr xff0c 请你判断数组中是否存在连续三个元素都是奇数的情况 xff1a 如果存在 xff0c 请返回 true xff1b 否则 xff0c 返回 false 输入 xff1a arr 61 2 6 4 1
  • LeetCode 922. 按奇偶排序数组 II

    题目 给定一个非负整数数组 nums xff0c nums 中一半整数是 奇数 xff0c 一半整数是 偶数 对数组进行排序 xff0c 以便当 nums i 为奇数时 xff0c i 也是 奇数 xff1b 当 nums i 为偶数时 x
  • 【CSDN竞赛第五期】编程竞赛体验感受

    建议以及感受 比赛当天网站直接崩溃 xff0c 体验极差 xff0c 直到中午才修好有些题意的输入输出并不明确在线IDE不完善也不好用 xff0c 很多bug详见竞赛讨论贴完赛没有官方题解 xff0c 或者说讨论题解的人很少领取奖励还需要撰
  • 猿创征文|我是怎么学习编程的?

    目录 一 xff0e 学习场景以及障碍1 xff0e 学习场景分两种人2 xff0e 过入门槛三大障碍 二 xff0e 入门以后需要做什么1 xff0e 找方向2 xff0e 学习3 xff0e 聚焦 我是怎么学习编程的 xff1f 每一位
  • 卸载与安装numpy

    一 卸载 pip uninstall numpy 二 安装 找到目录 D python Lib site packages pip install numpy 1 15 4 43 mkl cp35 cp35m win amd64 whl
  • Windows Update MiniTool 20.12.2016 控制Window更新下载及使用教程

    目录 一 下载教程1 wumt官网下载2 网盘下载 二 Windows更新配置1 检查更新2 下载或安装更新3 隐藏更新4 卸载更新5 禁用自动更新 Windows Update MiniTool 是由俄罗斯人编写的第三方Windows更新
  • 1:Web开发入门-Java Web

    目录 1 1 什么是Web应用程序1 2 B S架构1 3 静态Web与动态Web1 4 Java EE介绍1 5 Java EE架构与组件1 6 Java EE中的容器1 7 XML介绍1 8 XML与HTML的区别1 9 XML的实现
  • 华为开源自研AI框架昇思MindSpore CPU-Ubuntu版本 Pip自动安装教程

    目录 一 介绍二 获取命令1 进入MindSpore官网2 选择安装版本3 获取命令 三 自动安装1 确保为Ubuntu系统2 下载自动安装脚本3 执行自动安装脚本4 验证安装 本教程是在CPU Ubuntu上安装MindSpore1 8
  • 2:开发环境搭建-Java Web

    目录 2 1 Web服务器的作用2 2 Tomcat简介2 3 Tomcat服务器安装与使用2 4 Tomcat目录结构2 5 Tomcat配置文件2 6 修改Tomcat默认端口 2 1 Web服务器的作用 Web服务器也称为WWW WO
  • 3:Tomcat部署Web项目-Java Web

    目录 3 1 Web 应用程序3 2 部署Web项目3 3 配置虚拟目录3 4 配置Web项目的首页 3 1 Web 应用程序 一个 web 应用程序是由一组 Servlet xff0c HTML 页面 xff0c 类 xff0c 以及其它
  • 1:Spring框架核心-Java Spring

    CSDN话题挑战赛第2期 参赛话题 xff1a 学习笔记 目录 1 1 软件模块化1 2 Spring框架介绍1 3 Spring框架的配置1 4 Servlet1 5 Spring容器1 6 Spring Bean对象的注解1 7 控制反