Bean和Serializable和@Bean

什么是bean

**bean是一个Java对象**,根据bean规范编写出来的类,并由bean容器生成的对象就是一个bean。

bean规范如下: 
 1. 所有属性为private 
 2. 提供默认构造方法 
 3. 提供getter和setter 
 4. 实现serializable接口
//bean对象示例
public class Student implements Serializable {

    private Long id;
    private String name;
    private Integer number;
    private static final long serialVersionUID = 1L;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", number=" + number +
                '}';
    }
}

Serializable接口的意义和用法

Serializable接口意义:实现类序列化
什么是序列化?
即:在程序中能直接以 Java 对象的形式进行保存,然后再重新得到该 Java 对象
举例:将一台电脑拆卸成一部分一部分,就是序列化
将一部分一部分重新组合成一个新电脑就是反序列化

序列化目的:
第一:便于存储
第二:便于传输。
序列化作用:

  1. 提供一种简单又可扩展的对象保存恢复机制。
  2. 远程调用,方便对对象进行编码和解码
  3. 可以将对象持久化到存储介质中
  4. 允许对象自定义外部存储的格式。

Serializable接口用法

public class Student implements Serializable {
	
	private static final long serialVersionUID = 1L;

}

Serializable接口是一个里面什么都没有的接口
它的源代码是public interface Serializable{},即什么都没有。
那么这个接口是一个标识接口
在Java中的这个Serializable接口是给JVM看的,告诉JVM,我不做这个类的序列化了,你(JVM)给我序列化

@Bean注解

用来在Spring容器里面创建bean对象
相当于

 <bean id=""/>

示例:

public class MybatisPlusConfig {
    @Bean  
    //@Bean相当于 <bean id="mybatisPlusInterceptor"/>
    //此时在spring容器里面创建了一个对象名为mybatisPlusInterceptor,返回类型为MybatisPlusInterceptor的bean对象
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

参考文章:
bean
https://www.awaimai.com/2596.html
Serializable
https://www.jianshu.com/p/4935a87976e5
java.io.Serializable
https://www.cnblogs.com/wangenxian/p/11003221.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值