一.理解 Bean 的生命周期,对学习 Spring 的整个运行流程有极大的帮助. 二.在 IOC 容器中,Bean 的生命周期由 Spring IOC 容器进行管理. 三.在没有添加后置处理器的情况下 Bean 的生命周期 1.通过构造器或工厂方法创建 Bean 的实例 2.为 Bean 的属性设置值好对其他 Bean 的引用 3.调用 Bean 的初始化方法 4.Bean 可以使用了 5.当容器关闭时,调用 Bean 的销毁方法 *在 Bean 的声明里设置 init-method 和 de…
一.创建BeanFactory流程 1.流程入口 创建BeanFactory的流程是从refresh方法的第二步开始的,通过调用obtainFreshBeanFactory方法完成流程. ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory(); 2.流程分析 创建BeanFactory的流程是从第二步开始的,调用AbstractApplicationContext类中的obtainFreshBeanFactor…
不建议直接在单个 Docker 容器中运行多个程序. 以 2017年 10 月18 日 Docker 官方支持 Kubernetes 为分水岭计算,Kubernetes 赢得容器编排之战的最终胜利已经超过一年.先来看一下经典的 Kubernetes 架构图: 可以看到,在 Kubernetes 中,创建.调度和管理的最小部署单位是 Pod,而不是容器.在没有容器化技术的场景里,同一个 Pod 下的容器都在同一台物理或虚拟主机上运行, 这些容器之间能方便地共享数据和通信,单个容器可以独立地重建和重…
无图无真相,先放个效果图:     背景 使用 docker 来跑一些服务很方便,但是有的时候想管理容器里面的文件却很麻烦 -- 一般常规做法有3种: 通过数据卷或数据卷容器的方式 启动容器的时候时候启动 vsftpd 或者 sshd 等服务,并开启端口映射,然后通过 ftp/sftp 连上去管理 进入容器的终端,通过命令行管理 但是这些做法都有一定的缺陷和不便: 1和2都是需要在启动容器的时候做一些配置,如果容器已经启动了就歇菜了.而且2需要额外的端口映射,占用主机的端口.3的做法比较 gee…
一.概述 二.prepareRefresh() 三.obtainFreshBeanFactory() 四.prepareBeanFactory(beanFactory); 五.postProcessBeanFactory(beanFactory); 六.invokeBeanFactoryPostProcessors(beanFactory) 七.registerBeanPostProcessors(beanFactory) 八.initMessageSource() 九.initApplicat…
我们来部署一个简单的例子: 将一个简单的.Aps Core项目部署到Docker容器中并被外网访问 说明: 下面的步骤都是建立在宿主服务器系统已经安装配置过Docker容器,安装Docker相对比较简单我们这里,网上有很多资料,我们这里跳过 开发环境:VS2017 部署服务器系统:Linux 1):新建项目 新建一个.Aps Core项目,选择Web应用程序,勾选启用Docker支持,勾选Docker支持后VS会自动给我们生成一个Dockerfile文件 2)编写Dockerfile脚本 我们会…
在docker容器中编译hadoop 3.1.0 优点:docker安装好之后可以一键部署编译环境,不用担心各种库不兼容等问题,编译失败率低. Hadoop 3.1.0 的源代码目录下有一个 `start_build_env.sh** 的脚本,通过脚本会从Docker hub网站拉取hadoop-build镜像,然后在镜像中添加本地用户信息和环境变量等,最后运行Docker镜像并挂载本地目录. docker跨平台的特性已经非常不错,最需要注意的一点在于:所有操作不要使用root用户,也不要使用s…
Gogs的Docker容器化部署流程遇到的问题   最近在学习CI/CD的一些方案,个人比较青睐容器化轻量级.CI方面一开始是想使用gitlab的,但是发现我自己买的服务器配置太低,内存根本不够(大写的尴尬).所以采用更轻量级的Gogs,我真的很懒,只有在遇到挫折了才会想着把它记下来,平时很多时候都是没有做笔记的习惯的(吱吱).这次之所以写这篇笔记,是因为部署Gogs过程遇到了几个小坑,浪费了我不少时间,所以希望能帮助到大家,不要走这样的坑~~言归正传 环境搭建过程 1. 安装部署gogs很简单…
阅前提醒 全文较长,建议沉下心来慢慢阅读,最好是打开Idea,点开Spring源码,跟着下文一步一步阅读,更加便于理解.由于笔者水平优先,编写时间仓促,文中难免会出现一些错误或者不准确的地方,恳请各位大佬在评论区留言指正.建议在阅读本篇文章之前,先看下我的另一篇博文 一图助你搞明白Spring应用上下文初始化流程! 从而对Spring应用上下文初始化过程有个大概了解. 如果各位小伙伴由于笔者描述不清,而不理解的地方也欢迎在评论区留言哦!该系列文章共有三篇,敬请期待~ ~ ~ 正文 一切的开始要从…
本文节选自<Spring 5核心原理> Spring IoC容器还有一些高级特性,如使用lazy-init属性对Bean预初始化.使用FactoryBean产生或者修饰Bean对象的生成.IoC容器在初始化Bean过程中使用BeanPostProcessor后置处理器对Bean声明周期事件进行管理等. 1 关于延时加载 我们已经知道,IoC容器的初始化过程就是对Bean定义资源的定位.载入和注册,此时容器对Bean的依赖注入并没有发生,依赖注入是在应用程序第一次向容器索取Bean时通过getB…