Spring bean生命周期方法的调用顺序

pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>tut</groupId> <artifactId>zero</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies> </project> 配置文件 application.yml threshold: 1000` 主程序类 package tut.zero; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application implements CommandLineRunner { @Autowired MyBean bean; public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override public void run(String... args) { bean.serve(); } } 用于观察bean生命周期方法调用顺序而自定义的bean package tut.zero; import org.springframework.beans.BeansException; import org.springframework.beans.factory.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; /** * 一个为了演示bean生命周期方

阅读全文

java多线程安全-Map

线程的定义 线程是操作系统调度的最小单元,也叫轻量级进程。它被包含在进程之中,是进程中的实际运作单位。同一进程可以创建多个线程,每个进程都有自己独立的一块内存空间。并且能够访问共享的内存变量。 线程包含的五种状态 1、新建状态(New): 线程对象被创建后,就进入了新建状态。例如: Thread thread =

阅读全文

Java反射教程

什么是反射 反射是:指程序可以访问、检测和修改它本身状态或行为的一种能力 反射是一种能力,所以给的定义就是说明了它能干嘛。 我们平时用反射主要做: - 获取类型的相关信息 - 动态调用方法 - 动态构造对象 - 从程序集中获得类型。 通过反射机制实例化对象 基础实体 package com.haojishu.entity; public class User { public Integer age; private String Username; private String addr; public User() { Sy

阅读全文

什么时候使用线程池

线程池 什么是线程池 提前创建若干个线程,如果有任务需要处理,线程池里的线程就会处理任务,处理完之后线程并不会被销毁,而是等待下一个任务。由于创建和销毁线程都是消耗系统资源的,所以当你想要频繁的创建和销毁线程的时候就可以考虑使用线程池来提升系统的性能。 什么时候使用线程池 多线程技术主要

阅读全文

Java反射教程

基础知识(小故事) 1、计算机的核心是CPU,他承担了所有计算任务,他就想一个工厂,时刻在运行。 2、假设工厂电力有限,一次只能提供给一个车间使用,也就是说,一个车间开工的时候,其他车间必须要停工。背后的含义就是,单个CPU一次只能运行一个任务。 3、进程就好比工厂的车间,他代表CPU

阅读全文

jsoup教程

jsoup 什么是Jsoup Jsoup是用于解析Html,就类似XML解析器用于XML. jsoup能用来做什么? 从URL,文件或字符串中刮取并解析HTML 查找和提取数据,使用DOM遍历或CSS选择器 操纵HTML元素,属性和文本 根据安全的白名单清理用户提交的内容,以防止XSS攻击 输出整洁的H

阅读全文

RabbitMQ安装教程

RabbitMQ对Erlang的版本有一定的要求(官方版本要求对应表) https://www.rabbitmq.com/which-erlang.html 查看Centos版本 lsb_release -a 根据版本下载对应的稳定安装包 https://www.erlang-solutions.com/resources/download.html 1、安装erlang // 安装erlang依赖 > yum install -y epel-release socat // 下载erlang rpm安装包 > wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_21.3.8.11-1~centos~7_amd64.rpm // 安装 > yum install esl-erlang_21.3.8.11-1~centos~7_amd64.rpm // 验证安装是否成功 > erl -version 2、安装rabbitmq //

阅读全文

安装elasticsearch

安装elasticsearch 下载elasticsearch wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.16.tar.gz 解压缩elasticsearch tar -zxf elasticsearch-5.6.16.tar.gz 拷贝到wwwroot目录 mv elasticsearch-5.6.16/ /data/wwwroot/ 新建专用程序账户 groupadd sulwan 把用户添加到专有群组 useradd -g sulwan sulwan -p 123456 切换到新用户 su sulwan 切换到程序目录 cd /data/wwwroot/elasticsearch-5.6.16/bin/ 编写pm2运行脚本 { "name": "elas", "script": "/bin/bash", "args": [ "/data/wwwroot/elasticsearch-5.6.16/bin/elasticsearch" ], "watch": false, "ignore_watch": [ "logs" ], "error_file": "./logs/elasticsearch-err.log", "out_file": "./logs/elasticsearch-out.log", "exec_interpreter": "", "exec_mode":

阅读全文

Redis开启远程

Redis开启远程 安装教程过于简单这里不再详述 Redis开启远程 编辑redis.conf [root@localhost ~]# vi /usr/local/redis/etc/redis.conf 注解端口监听 #bind 127.0.0.1 关闭protected-mode protected-mode no 设置Redis连接密码 requirepass 123456a 重启服务 service redis-server restart

阅读全文

vmware安装配置双网卡

Vmware安装配置双网卡 此处省略了安装Centos的步骤,请自行脑补 1、编辑虚拟主机配置 2、添加网卡 3、选择网卡,点击完成 4、设置网络适配器 5、生成网卡 6、编辑虚拟网络 7、获取权限 8、设置网关 9、填写IP 10、填写网段 11、查看环境IP 12、用远程工具连接后,配置网卡静态IP 安

阅读全文