2.Spring 等框架简单入门了解

news2024/11/27 6:28:39

1.Spring

        1.什么是spring?

  • 一个轻量级Java开发框架,目的是为了解决企业级应用开发 的业务逻辑层和其他各层的耦合问题.

  • 两个核心特性,也就是依赖注入(dependency injection,DI)和面向切面编程(aspect- oriented programming,AOP)


     2.IOC(控制翻转)

  • Inversion of control(控制反转):  是一种面向对象的编程思想。就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这 些对象的整个生命周期。
  • Dependency Injection(依赖注入): 是IOC思想的实现方式。即组件之间的依赖关系由容器在应用系统运行期来决定,也就是 由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。
  • IOC container:本质上是一个工厂。 提供了控制反转功能,用来把应用的配置和依赖从真正的应用 代码中分离
  • 优点
    • 举个例子:

        3.Bean类

  • Spring 应用程序有哪些不同组件:

    • 接口 - 定义功能。

    • Bean 类 - 它包含属性,setter 和 getter 方法,函数等。

    • Bean 配置文件 - 包含类的信息以及如何配置它们。

    • Spring 面向切面编程(AOP) - 提供面向切面编程的功能。

    • 用户程序 - 它使用接口。

  • 什么是 Spring beans:Spring beans 是那些形成 Spring 应用的主干的 java 对象(各种类 dao,controller,service)。它们被 Spring IOC 容 器初始化,装配,和管理。Spring 框架定义的beans都是单件beans。在beantag中有个属性”singleton”。

  • 如何给 Spring 容器提供配置元数据:XML 配置文件、基于注解的配置、 基于 java 的配置。

  • Spring 框架中的单例 bean 是线程安全的吗:不是

  • 什么是 bean 装配:指在 Spring 容器中把 bean 组装到一起,前提是容器需要知 道 bean 的依赖关系


        4.Spring 注解

  • @Component:这将 java 类标记为 bean。它是任何 Spring 管理组件的通用构造型。spring 的 组件扫描机制现在可以将其拾取并将其拉入应用程序环境中。

  • @Controller:该注解表明该类扮演控制器的角色.

  • @Service:该注解表明该类扮演业务处理的角色

  • @Repository:该注解表明该类扮演连通数据库的角色

  • @Required :这个注解表明 bean 的属性必须在配置的时候设置,通过一个 bean 定义的显式的属 性值或通过自动装配,若@Required 注解的 bean 属性未被设置,容器将抛出 BeanInitializationException。

  • @Autowired :即自动装配 默认是按照类型装配注入的,默认情况下它要求依赖对象必须存在(可以设置它 required属性为false)。@Autowired 注解提供了更细粒度的控制,包括在何处以及如何完成自 动装配。它的用法和@Required一样,修饰setter方法、构造器、属性或者具有任意名称和/或多 个参数的PN方法。

  • @Qualifier :

    当您创建多个相同类型的 bean 并希望仅使用属性装配其中一个 bean 时,您可以使用@Qualifier注解和 @Autowired 通过指定应该装配哪个确切的 bean 来消除歧义。

  • @RequestMapping : 用于将特定 HTTP 请求方法映射到将处理相应请求的控制器中的特定类/ 方法。此注释可应用于两个级别:

    类级别:映射请求的 URL
    方法级别:映射 URL 以及 HTTP 请求方法


        5.简单调用过程

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/166990.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文带你秒懂十大排序

目录 一、排序的概述 二、插入排序 1、直接插入排序 2、希尔排序 二、选择排序 1、直接选择排序 2、堆排序 三、交换排序 1、冒泡排序 2、快速排序 四、归并排序 五、计数排序 六、基数排序 七、桶排序 八、排序总结 一、排序的概述 排序就是将一组…

pod私有库

私有库制作步骤 1、在gitlab上创建一个空项目,并用source tree导到本地,便于后面代码更新上传 2、cd 到项目下 执行pod lib create 【组件名】如:pod lib create TDAlertView 输入命令后会显示下载模板,会有几秒钟等待 Cloni…

一文搞懂 python 中的 classmethod、staticmethod和普通的实例方法的使用场景

什么是类方法(classmethod)/静态方法(staticmethod)和普通成员方法? 首先看这样一个例子: class A(object):def m1(self, n):# 属于实例对象,self 指代实例对象,print("self:…

Allegro如何更改钻孔孔符以及大小操作指导

Allegro如何更改钻孔孔符以及大小操作指导 PCB设计完成时,需要放出整板的钻孔表来,有的钻孔孔符以及大小并不是需要的,Allegro支持更改钻孔符以及大小,如下图 需要更改孔符以及大小, 具体操作如下 选择Manufacture选择NC

aws parallelcluster 理解 parallelcluster 集群的配置和使用

参考资料 Setup AWS ParallelCluster 3.0 with AWS Cloud9 200 HPC For Public Sector Customers 200 HPC pcluster workshop 200 Running CFD on AWS ParallelCluster at scale 400 Tutorial on how to run CFD on AWS ParallelCluster 400 Running CFD on AWS ParallelC…

CSS 伪元素也可以被用于反爬案例?来学习一下。26

先说一下什么是 CSS 中的伪元素,CSS 伪元素的概念是指在 CSS 中使用的一些特殊的元素,它们不存在于 HTML 文档中,而是由浏览器生成的元素,用于提供额外的样式控制。这些伪元素在 HTML 代码中不存在,但可以在 CSS 中通过…

[idekCTF 2023] Malbolge I Gluttony,Typop,Cleithrophobia,Megalophobia

这些题名字我都不认识,这是什么语呀。这个比赛感觉太难了,加上春节将近比较忙,仅作了4个简单题。记录一下。Misc/Malbolge I Gluttony这是个虚拟机的题,放入misc感觉有点不可思忆,题目给了7个命令,有"…

【云原生进阶之容器】第五章容器运行时5.1节--容器运行时总述

1 Kubernetes引言 Kubernetes 已经成为容器编排调度领域的事实标准,其优良的架构不仅保证了丰富的容器编排调度功能,同时也提供了各个层次的扩展接口以满足用户的定制化需求。其中,容器运行时作为 Kubernetes 管理和运行容器的关键组件,当然也提供了简便易用的扩展…

图解二叉树的构造 | 中序 + 后序

中序后续构造二叉树 https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/ 递归思路 递归思路很简单, 因为无论是构造一棵大树还是一棵小树, 都是重复的子问题, 思路主要麻烦在边界上 如下图所示 上述是中序和后续序列 我们要递归, 需…

BetaFlight飞控AOCODARC-F7MINI固件编译

BetaFlight飞控AOCODARC-F7MINI固件编译1. 编译目标(AOCODARC-F7MINI)2. 编译步骤Step 1 软件配置环境准备Step 2 获取开源代码Step 3 构建命令介绍Step 4 构建命令准备Step 5 厂家目标板查询Step 6 目标固件编译Step 7 目标固件清理3. 参考资料BetaFlig…

MyBatis中TypeHandler的使用教程

一.TypeHandler作用及其使用场景在我们平常开发操作数据库时,查询、插入数据等操作行为,有时会报数据类型不匹配异常,就可以得知数据的类型是不唯一的必然是多种不同的数据类型。并且我们必须要明确的一点就是java作为一门编程语言有自己的数…

如何使用ElementUI的table组件来实现单元格的行合并

前言 最近在编写一个值班的排班表,然后中间涉及到了表格应用。并且还要做出类似这种效果的行合并效果: 然后就开始找组件了。Html的table是有rowsSpan和colsSpan的属性来实现行合并和列合并的。然后就在网上找资料,发现没有几篇能把这两个属性将好的&a…

LeetCode刷题模版:111 - 120

目录 简介111. 二叉树的最小深度112. 路径总和113. 路径总和 II114. 二叉树展开为链表115. 不同的子序列116. 填充每个节点的下一个右侧节点指针117. 填充每个节点的下一个右侧节点指针 II118. 杨辉三角119. 杨辉三角 II120. 三角形最小路径和结语简介 Hello! 非常感谢您阅读海…

SWPUCTF 2022新生赛 web部分wp

😋大家好,我是YAy_17,是一枚爱好网安的小白。 本人水平有限,欢迎各位大佬指点,一起学习💗,一起进步⭐️。⭐️此后如竟没有炬火,我便是唯一的光。⭐️ 目录 [SWPUCTF 2022 新生赛]…

linux中使用KubeSphere和集群k8s 部署springboot项目

上期已经介绍了单体k8s部署springboot项目,这期讲解集群k8s部署springboot项目 因为部署方式已经在单体中讲过,现在大体粗略讲一下首先看下集群节点,如下所示: 第一步:创建项目----》按照做的项目名称建 创建后&…

MyCat实现单库分表+代理所有表

MyCAT支持水平分片与垂直分片: 水平分片:一个表格的数据分割到多个节点上,按照行分隔。 垂直分片:一个数据库中多个表格A,B,C,A存储到节点1上,B存储到节点2上,C存储到…

Unity 过场工具(Cutscene)设计(二)

Unity 过场工具(Cutscene)设计(二) 本章主要分析一下过场一般的必要组成元素,以及在Unity中的制作方案 镜头 通常来说一个表现要求比较高的过场,需要专业的导演进行运镜操作的。 在Unity中官方有一个很好的镜头插件 Cinemachine…

基于Leaflet的VideoOverlay视频图层叠加实战

前言在基于二维的场景中,也许会遇到以下的需求。在某交通路口或者重要的监控点,需要将实时或者录制的视频信息叠加在地图上。更有甚者,随着设备通讯方式的增强,无人机等设备可以采集实时数据,实时回传到控制终端&#…

纵有疾风起,Petterp与他的2022

引言 每逢年末,都要来聊一聊关于今年的各种事情,今昔也不例外:) 与往年不同的是,今天刚搬完家,现在是晚上 1:44 ,正是忙碌一天后比较头痛的时刻。 此刻写点东西,脑子也许会放松一下。🤖 坐在桌子前&…

RFID技术应用在服装门店管理

服装行业是一个高度一体化的行业,集设计研发、成衣生产、运输、销售于一体。在这些过程中,传统的服装供应链往往消耗巨大的人力、物力和资金成本,但效果一般。当今市场消费者的需求变幻莫测,时尚潮流日新月异。稍有延误&#xff0…