• Java中的Bean


    Java中的Bean

    在Java中,术语“bean”通常指的是遵循特定设计模式的类。这个模式,通常被称作JavaBean,是一种特别设计的Java类,主要用于封装数据。JavaBean遵循以下几个基本原则:

    1. 序列化:JavaBean应该是可序列化的,以便可以轻松地保存和恢复其状态。这通常是通过实现java.io.Serializable接口来实现的。
    2. 无参构造函数:JavaBean应该有一个公开的无参构造函数。这使得它们可以在没有任何参数的情况下被实例化。
    3. 私有字段(属性):JavaBean通常将其数据字段(属性)设置为私有,并通过公开的gettersetter方法来访问和修改这些字段。这种做法称为封装。
    4. 可选的业务逻辑:除了存储数据,JavaBean可以包含一些业务逻辑。

    例如,一个简单的JavaBean可能看起来像这样:

    public class Person implements Serializable {
        private String name;
        private int age;
    
        public Person() {
            // 无参构造函数
        }
    
        // getter 和 setter 方法
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    JavaBean在多种上下文中都很有用,尤其是在企业级Java应用中,例如在Java EE或Spring框架中。在这些框架中,bean通常作为依赖注入的对象,由容器管理它们的生命周期和依赖关系。例如,在Spring框架中,bean是由Spring容器创建、装配和管理的对象。这些bean可以是数据源、服务、数据访问对象等。通过配置(XML或注解),Spring容器可以自动装配这些bean之间的依赖关系,简化了开发者的工作。

    在Spring框架中,“bean” 是一个被框架实例化、组装和管理的对象。Spring beans是应用程序的基础,通常由Spring IoC(控制反转)容器来创建和管理。这些beans可以是服务、数据访问对象、控制器、帮助器类等等,实质上是应用程序中的组成部分。

    核心特点

    1. 由Spring容器管理:Beans的生命周期(创建、初始化、销毁)由Spring容器负责。
    2. 依赖注入(DI):Beans之间的依赖关系通常通过依赖注入来解决。这意味着对象之间的依赖不是由对象本身创建,而是由Spring容器在运行时自动注入。
    3. 配置:Beans可以通过XML配置文件、Java注解或Java配置类配置。

    Bean的定义

    一个Spring bean可以通过多种方式定义:

    1. XML配置文件:通过标签在XML文件中定义。
    2. 注解:如@Component, @Service, @Repository, @Controller等。这些注解自动将类注册为Spring应用程序上下文中的bean。
    3. Java配置:使用@Configuration@Bean注解在Java类中定义。

    生命周期

    Spring bean的生命周期包括以下阶段:

    1. 实例化:Spring容器使用构造函数创建bean实例。
    2. 填充属性:容器注入所有在bean定义中指定的依赖。
    3. 调用BeanPostProcessor方法:例如,postProcessBeforeInitialization
    4. 调用初始化方法:如果bean实现了InitializingBean接口,调用afterPropertiesSet方法。或者调用自定义的初始化方法。
    5. Bean准备好使用:此时,bean已经准备好被应用程序使用。
    6. 调用销毁方法:在容器关闭时,如果bean实现了DisposableBean接口,调用destroy方法。或者调用自定义的销毁方法。

    依赖注入

    依赖注入是Spring框架的核心功能之一,主要有两种类型:

    1. 构造函数注入:依赖通过构造函数传递给bean。
    2. Setter注入:依赖通过setter方法或其他方法注入。

    范围

    Spring beans可以有不同的范围,例如:

    1. 单例(Singleton):默认范围,每个Spring容器中只有一个bean实例。
    2. 原型(Prototype):每次请求都会创建一个新的bean实例。
    3. 请求(Request):每个HTTP请求都会创建一个新的bean实例(仅在Web应用程序中)。
    4. 会话(Session):在HTTP会话中,每个会话都会创建一个新的bean实例(仅在Web应用程序中)。

    示例

    @Component
    public class MyService {
        // ...
    }
    
    @Configuration
    public class AppConfig {
        @Bean
        public MyService myService() {
            return new MyService();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    以上是Spring中bean的基本概念。Spring beans是构建Spring应用程序的基石,允许灵活的依赖管理和配置。

  • 相关阅读:
    mysql Your password does not satisfy the current policy requirements
    matplotlib 文字标注(text、annotate)例程
    Python技巧---tqdm库的使用
    Pytest接口测试框架实战项目搭建(三)
    《2023中国企业数智化转型升级服务全景图/产业图谱2.0版》重磅发布
    iPhone恢复篇:如何从iPhone恢复误删除的照片
    (附源码)node.js知识分享网站 毕业设计 202038
    Tailwind CSS功能类优先
    4.设置样式
    解密Prompt系列23.大模型幻觉分类&归因&检测&缓解方案脑图全梳理
  • 原文地址:https://blog.csdn.net/Johnor/article/details/134517091