返回顶部
首页 > 资讯 > 后端开发 > Python >Spring中的bean概念介绍
  • 680
分享到

Spring中的bean概念介绍

2024-04-02 19:04:59 680人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1 定义2 控制反转(ioc)2.1 私有属性保存依赖2.2 让spring控制类构建过程2.3 这就是ioC3 Bean?Bean是Spring框架中最核心的两个概念之一(另一

Bean是Spring框架中最核心的两个概念之一(另一个是面向切面编程aop)。

1 定义

Spring 官方文档对 bean 的解释是:
In Spring, the objects that fORM the backbone of your application and that are managed by the Spring IoC container are called beans. A bean is an object that is instantiated, assembled, and otherwise managed by a Spring IoC container.

翻译过来就是:
在 Spring 中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。bean是一个由Spring IoC容器实例化、组装和管理的对象。

我们总结如下:
1.bean是对象,一个或者多个不限定
2.bean由Spring中一个叫IoC的东西管理
3.我们的应用程序由一个个bean构成

2 控制反转(IoC)

控制反转英文全称:Inversion of Control,简称就是IoC。

控制反转通过依赖注入(DI)方式实现对象之间的松耦合关系。

程序运行时,依赖对象由【辅助程序】动态生成并注入到被依赖对象中,动态绑定两者的使用关系。

Spring IoC容器就是这样的辅助程序,它负责对象的生成和依赖的注入,让后在交由我们使用。

简而言之,就是:IoC就是一个对象定义其依赖关系而不创建它们的过程。

这里我们可以细分为两个点。

2.1 私有属性保存依赖

第1点:使用私有属性保存依赖对象,并且只能通过构造函数参数传入,

构造函数的参数可以是工厂方法、保存类对象的属性、或者是工厂方法返回值。

假设我们有一个Computer类:

public class Computer {
    private String cpu;     // CPU型号
    private int ram;        // RAM大小,单位GB

    public Computer(String cpu, int ram) {
        this.cpu = cpu;
        this.ram = ram;
    }
}

我们有另一个Person类依赖于Computer类,符合IoC的做法是这样:

public class Person {
    private Computer computer;

    public Person(Computer computer) {
        this.computer = computer;
    }
}

不符合IoC的做法如下:

// 直接在Person里实例化Computer类
public class Person {
    private Computer computer = new Computer("AMD", 3);
}
// 通过【非构造函数】传入依赖
public class Person {
    private Computer computer;
    
    public void init(Computer computer) {
        this.computer = computer;
    }

2.2 让Spring控制类构建过程

第2点:不用new,让Spring控制new过程。

在Spring中,我们基本不需要 new 一个类,这些都是让 Spring 去做的。

Spring 启动时会把所需的类实例化成对象,如果需要依赖,则先实例化依赖,然后实例化当前类。

因为依赖必须通过构建函数传入,所以实例化时,当前类就会接收并保存所有依赖的对象。

这一步也就是所谓的依赖注入

2.3 这就是IoC

在 Spring 中,类的实例化、依赖的实例化、依赖的传入都交由 Spring Bean 容器控制,

而不是用new方式实例化对象、通过非构造函数方法传入依赖等常规方式。

实质的控制权已经交由程序管理,而不是程序员管理,所以叫做控制反转。

3 Bean?

至于bean,则是几个概念。

概念1:Bean容器,或称spring ioc容器,主要用来管理对象和依赖,以及依赖的注入。
概念2:bean是一个Java对象,根据bean规范编写出来的类,并由bean容器生成的对象就是一个bean。
概念3:bean规范。

在这里插入图片描述

bean规范如下:

1.所有属性为private
2.提供默认构造方法
3.提供getter和setter
4.实现serializable接口

到此这篇关于Spring中的bean是什么的文章就介绍到这了,更多相关Spring中的bean内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Spring中的bean概念介绍

本文链接: https://lsjlt.com/news/144497.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Spring中的bean概念介绍
    目录1 定义2 控制反转(IoC)2.1 私有属性保存依赖2.2 让Spring控制类构建过程2.3 这就是IoC3 Bean?Bean是Spring框架中最核心的两个概念之一(另一...
    99+
    2024-04-02
  • Spring中的bean概念是什么
    这篇文章将为大家详细讲解有关Spring中的bean概念是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Bean是Spring框架中最核心的两个概念之一(另一个是面向切面编程AOP)。1 定义Spri...
    99+
    2023-06-29
  • Spring基础之AOP的概念介绍
    目录前言Spring的AOP的功能和目标代理方式@AspectJ的支持启用@AspectJ通过Java注解启用AspectJ注解支持:通过XML配置启用AspectJ注解定义一个切面...
    99+
    2024-04-02
  • JavaScript 原型概念的介绍
    本篇内容主要讲解“JavaScript 原型概念的介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript 原型概念的介绍”吧!原型是JavaSc...
    99+
    2024-04-02
  • Java的基本概念介绍
    本篇内容介绍了“Java的基本概念介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   Java概述:    目前Java主要应用于中间件...
    99+
    2023-06-03
  • MySQL数据库的概念介绍
    本篇内容主要讲解“MySQL数据库的概念介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库的概念介绍”吧!1.数据库概念数据库(Database)是按照数据结构来组织、存储和管理...
    99+
    2023-06-02
  • RocketMQ 介绍及基本概念
    1 介绍 RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。 1.1 RocketMQ 特点 支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型 在一个...
    99+
    2023-08-19
    rabbitmq kafka java
  • C++变量引用的概念介绍
    本篇介绍的变量引用与之前介绍的指针不是同一概念,它们有本质的区分: 1)不存在空引用。引用必须连接到一块合法的内存。 2)一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可...
    99+
    2024-04-02
  • JavaScript的概念及其特点介绍
    这篇文章主要介绍“JavaScript的概念及其特点介绍”,在日常操作中,相信很多人在JavaScript的概念及其特点介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ja...
    99+
    2024-04-02
  • SpringBoot集成RabbitMQ和概念介绍
    目录一、RabbitMQ介绍二、相关概念三、简单使用1.配置pom包2.配置文件3.队列配置4.发送者5.接收者6.测试四、高级使用1.Topic Exchange2.Fanout ...
    99+
    2024-04-02
  • SpringCloudhystrix服务降级概念介绍
    目录Hystrix初识HystrixHystrix三大概念服务降级(fallback)fallback是什么服务提供方实现服务降级服务调用方实现服务降级服务降级优化服务熔断(brea...
    99+
    2024-04-02
  • JS 基本概念详细介绍
    目录1、JS的特点1.1 多范式1.2 解释1.3单线程1.4 非阻塞1.5 高级1.6 动态类型2、学习策略3、基础知识许多人在深入研究 Javascript 之前忽略了 Java...
    99+
    2024-04-02
  • Webpack4.x的四个核心概念介绍
    目录一. 概念1. 入口1.1 基础概念1.2 单文件入口1.3 多文件入口2. 出口2.1 基础概念2.2 使用占位符来为每个文件命名,保证名称唯一2.3 使用CDN和资源hash...
    99+
    2024-04-02
  • Spring Bean后处理器详细介绍
    常见Bean后处理器的作用: public static void main(String[] args) { // ⬇️GenericApplicationC...
    99+
    2023-01-28
    Spring Bean后处理器 Spring后处理器
  • axios概念介绍和基本使用
    目录简介使用axios配置对象常用的配置项:默认配置axios拦截器取消请求总结 简介 本文主要讲解axios的概念和基本使用。 axios时目前最流行的ajax封装库之一...
    99+
    2024-04-02
  • VB.NET修饰符详细概念介绍
    本篇内容介绍了“VB.NET修饰符详细概念介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!VB.NET修饰符1.Shadows Shado...
    99+
    2023-06-17
  • 深入理解Spring中bean的生命周期介绍
    以ApplocationContext上下文单例模式装配bean为例,深入探讨bean的生命周期:(1).生命周期图:(2).具体事例:person类实现BeanNameAware,BeanFactoryAware接口public clas...
    99+
    2023-05-31
    spring bean 生命周期
  • Spring Bean的定义概念和使用方法是什么
    本篇内容介绍了“Spring Bean的定义概念和使用方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!定义Spring b...
    99+
    2023-07-06
  • 关于Redis数据持久化的概念介绍
    目录一、数据持久化的概述1、RDB持久化2、开启AOF二 .RDB 和 AOF 的优缺点 1、 RDB 持久化优缺点2、 AOF 持久化优缺点一、数据持久化的概述 Redi...
    99+
    2024-04-02
  • iOS逆向:越狱及相关概念的介绍
    在上一篇内容中我们介绍了App脱壳的技术,今天我们来介绍一个和iOS逆向密切相关的知识:越狱。 iOS操作系统的封闭性一直是开发者们关注的焦点之一。为了突破Apple的限制,越狱技术应运而生。本文将深入探讨iOS越狱,包括可越狱的版本对比、...
    99+
    2023-08-30
    ios cocoa macos objective-c
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作