NPE空指针异常,空对象调用方法
补git流程图~~~~!image

一项目结构目录分析

main java存放业务代码
resources存放资源配置文件
test存放测试单元
pom文件存放项目的依赖和module

spring注解

@Component//此注解用于描述spring管理一般的组件
@SpringBootTest//此注解描述的类为springboot工程的 单元测试类
@Autowired//告诉spring请安指定规则为此属性复制
@Lazy延迟加载(按需加载)只有被需要时才被创建,和单例配合使用
@PostConstruct 生命周期初始化方法,在对象构建以后执行.
@PreDestroy 生命周期销毁方法,此方法所在的对象,假如存储到了spring容器,那这个对象在从spring容器移除之前会先执行这个生命周期销毁方法(prototype作用域对象不执行此方法)
@Autowired由spring框架定义,用于描述类中属性或相关方法(例如构造方法)
@Qualifier注解对其属性或参数进行描述(此注解必须配合@Autowired注解使用)。

作用域

@Scope默认就是单例(singleton)作用域,这个作用域会配合延迟加载(@Lazy)特性使用,表示此类的实例在需要时可以创建一份并且将其存储到spring的容器中(Bean池),需要的时候从池中取,以实现对象的可重用。假如一些对象应用次数非常少,可以考虑不放入池中,进而使用@Scope("prototype")作用域对类进行描述,让此类的对象何时需要何时创建,用完以后,当此对象不可达,则可以直接被GC系统销毁。

生命周期

对象创建,初始化,应用,销毁的这个过程

生命周期方法

在对象创建以后要初始化,应用完成以后要销毁时执行的一些方法

对象池特点

1)在JVM内存会开辟一块相对比较大的空间。
2)在这块空间中存储一些对象(思考基于什么存储结构;进行存储-数组,链表,散列表)。
3)基于“享元模式”设计思想,实现内存中对象的可重用性。








真理求知者
4 声望0 粉丝

在黑暗在探索光明,在迷茫中寻找真理!