这些场景常用于一些饿汉式加载数据,比如让系统启动时加载一些数据库中的数据,或者读取一些数据之类的,数据交给spring管理。

数据量少可以用枚举,数据量不多不少也能用静态(数据源是数据库写法就麻烦),也能直接放到jvm内存里,不过这样对于分布式系统不友好,所以主流都是redis里。

不过spring跟redis都需要等待spring加载完毕后进行初始化,并且这个初始化都是执行一次。

之前我是这样写的:

因为涉及spring相关,而构造方法又早于spring,没法通过对象的无参构造进行实例化,只能在别处调用。

双层锁单例实现,但是有点难看,而且也是懒加载,每次都的判断。

最近看到一个注解@PostConstruct,发现这个最实用。

@PostConstruct注解好多人以为是Spring提供的。其实是Java自己的注解。

Java中该注解的说明:@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。

通常我们会是在Spring框架中使用到@PostConstruct注解 该注解的方法在整个Bean初始化中的执行顺序:

静态 > Constructor(构造方法)  > @Autowired(依赖注入)  > @PostConstruct(注释的方法)

之后的写法:

这样写就对了

spring框架类加载顺顺序 并 在spring启动后查询数据库加载到容器内相关推荐

  1. spring框架mvc框架_5篇Spring框架书籍,通过MVC学习Spring

    spring框架mvc框架 Spring Framework is one of the most widely used Java EE Frameworks. It's an open sourc ...

  2. Spring 3.1 –从数据库加载XML配置的属性

    Spring使通过其PropertyPlaceholderConfigurer和(Spring 3.1之前)PropertySourcesPlaceholderConfigurer(Spring 3. ...

  3. spring boot:从零开始搭建一个项目 - day 7 springboot devtools热加载+MybatisPlus配置+kisso从入门到放弃

    spring boot:从零开始搭建一个项目 - day 7 springboot devtools热加载+MybatisPlus配置+kisso从入门到放弃 一.springboot devtool ...

  4. 1wifi 简介(框架)2系统启动后的 wifi加载 过程-图解 3系统启动后的 wifi 加载过程

    http://blog.csdn.net/wh_19910525/article/details/7384480 一.wifi 组建原理: WIFI就是一种无线联网的技术,以前通过网线连接电脑,而现在 ...

  5. Spring框架学习笔记01:初探Spring——采用Spring配置文件管理Bean

    文章目录 一.Spring概述 二.入门案例演示 (一)创建Maven项目[SpringDemo2021] (二)在pom.xml文件里添加依赖 场景:勇敢的骑士去完成杀龙的任务. (三)创建杀龙任务 ...

  6. Spring框架学习教程,详解Spring注入bean的几种方式

    首先,要学习Spring中的Bean的注入方式,就要先了解什么是依赖注入. 依赖注入是指:让调用类对某一接口的实现类的实现类的依赖关系由第三方注入,以此来消除调用类对某一接口实现类的依赖. Sprin ...

  7. spring框架面试题有哪些?spring框架必问面试题总结

    在java面试中肯定会考框架面试题,而spring框架作为目前主流的 Java EE 轻量级开源框架必考,因此为了提高大家在java中面试概率,今天我们给大家分享一些spring框架必问面试题! 1. ...

  8. 什么是spring框架?spring框架到底有什么用?spring框架到底做了些什么?

    什么是spring框架,spring框架究竟有什么用呢?我们可以用spring框架来做些什么呢?这是我今天要说的内容. 当然,百度spring框架会出现一大堆spring框架的介绍,以及IOC和AOP ...

  9. Spring框架新手快速上手系列:(二)体验一把自己配置低级容器

    每天进步一点点.不积跬步,无以至千里. 上一讲,我们提到,Spring容器有低级容器和高级容器之分.低级容器不够智能,需要你给它配置很多东西它才能工作,比如你需要告诉它去哪里寻找BeanDefinit ...

  10. Spring框架学习笔记02:初探Spring——利用组件注解符精简Spring配置文件

    文章目录 一.课程引入 二.打开项目[SpringDemo2021] 三.利用组件注解符精简Spring配置文件 1.创建net.hw.spring.lesson02包 2.将lesson01子包的四 ...

最新文章

  1. Python 3 尴尬了这么久,终于有救了
  2. 搭建Cocos Code IDE开发环境
  3. VS集成opencv编译C++项目遇到的问题
  4. 滚动条的值如何赋值_如何给Word文本框添加滚动条?史上最详细步骤
  5. dbscan算法python实现_挑子学习笔记:DBSCAN算法的python实现
  6. FreeRTOS内核实现02:任务的定义与任务切换
  7. 【数据结构笔记02】什么是算法
  8. 理解RAID的四种级别
  9. gettype php,gettype
  10. VS如何定制自己的模板信息
  11. 《集体智慧编程》第12章 算法总结 个人笔记
  12. CentOS Docker环境部署NextCloud
  13. CSS基础--属性设置
  14. HDU - 6437
  15. imdb导mysql_IMDB电影排行爬取分析
  16. 白帽杯2022-Misc 游戏秘籍 write-up
  17. 病理与病理生理学【3】
  18. java类 家族成员 姓氏_极其罕见的四大姓氏,若你还姓这个,恭喜你,你的家族大有来头!...
  19. 10个维修中最常见的蓝屏代码,值得收藏!
  20. 曝光的原理 自动曝光

热门文章

  1. windows php7怎么配置,PHP7在windows7中的环境配置详解
  2. 极客大学架构师训练营 组件设计原则 安全架构 防火墙ModSecurity 第21课 听课总结
  3. 485.最大连续1的个数
  4. 电脑word在哪_永中PDF转WORD在线文档转换器——无需会员、没有限制
  5. Linux 查找满足条件的文件并复制
  6. BAT[阿里、百度、腾讯]等互联网公司数据结构面试题(一) python分析实现
  7. 【扫描线】【POJ-1177】Picture【周长并】
  8. python 输出 2到n的素数 附源码 注释超详细。。。
  9. git 添加远程服务器,远程搭建git服务器新手踩坑
  10. 简易版的等待/唤醒方法(sleep,wait,await,park区别)适合面试回答