RabbitMQ消息队列

​ 上一章介绍了RabbitMQ的安装与配置,本章基于SpringBoot项目,介绍RabbitMQ的消息队列的简单使用。

消息队列

阅读全文

RabbitMQ的安装与配置

RabbitMQ 是一个在AMQP协议标准基础上完整、可复用的消息系统。采用 Erlang 实现的工业级消息队列。

rabbitmq.png

阅读全文

JVM 生命周期

JVM实例对应一个独立运行的Java程序(进程级别)。当启动一个Java程序时,一个JVM实例诞生;当程序关闭/退出时,这个JVM也随之消亡。如果一台机器上同时运行多个Java程序,将产生多个JVM实例。

  • JVM实例的诞生:启动Java程序,任何一个由main函数的class都可以作为JVM实例运行的起点。

阅读全文

MYSQL 定时任务

需要简单3步,此处记录下:

  • 开启数据库任务调度

  • 创建存储过程

阅读全文

JVM 内存结构(运行时数据区)

​ JVM类加载器将类数据的字节码.Class文件加载到内存,并对数据进行验证、准备、解析、初始化。最终加载到运行数据区。JVM运行时会分配好方法区和堆,每遇到一个线程,就会为其分配一个程序计数器、Java栈、本地方法栈。当线程终止时,程序计数器、Java栈、本地方法栈所占用的内存空间会被释放掉。
方法区、堆 是线程共享; 程序计数器、Java栈和本地方法栈 是非线程共享。GC只发生在线程共享的区域(大部分发生在堆上)

阅读全文

Windows 系统下关闭被占用端口的进程

查看端口被占用情况,然后直接根据进程号杀死进程即可。涉及命令:

  • netstat -ano : 查看所有端口号
  • netstat -ano|findstr 端口号 : 查看特定端口号使用情况
  • taskkill /pid 进程号 /f

阅读全文

JVM 类加载器

JVM 把描述类数据从Class文件加载到内存,然后经过校验、转换解析和初始化,最终形成能被JVM直接使用的Java类型,这就是JVM的类加载机制。

一般类从加载到内存 到 卸载出内存到整个过程分为 7 个阶段 : 加载、 验证、 准备、 解析、 初始化、 使用 和 卸载

阅读全文

Spring AOP 简单实践

本文介绍下Spring AOP的简单实例,功能很简单,给类或者方法添加日志功能。

准备

使用IDEA新建Maven项目,添加SpringBoot相关配置和依赖(或直接新建SpringBoot项目)。

阅读全文

MYSQL 给用户单个表权限

​ MySQl 创建用户,并给用户单独授权表权限(账号:wcs_wms ; 密码:xxx@yy; 数据库:siiri_aa_bb; 具体表:mm_nn_table; 权限类别:CURD ),具体如下:

1
2
3
4
5
6
-- 创建用户: 用户名 wcs_wms ,密码 xxx@yy
create user wcs_wms identified by 'xxx@yy';

-- 分配表权限:这里是CURD权限(读、插、更新、删除) 。对应事例数据库表 siiri_aa_bb.mm_nn_table
grant select, insert, update, delete on siiri_aa_bb.mm_nn_table to wcs_wms@'%';

阅读全文

Spring AOP

AOP(Aspect-Oriented Programming 面向切面编程)可以说是对OOP(面向对象编程)的补充和完善。OOP引入继承、封装和多态等概念来建立一种对象层次结构,来模拟公共行为的一个集合,定义从上到下的关系。当需要为分散的对象添加公共行为的时候(自左到右的横切性问题,比如日志功能),OOP显得无能为力。因为这些横切问题和我们的主业务功能毫无关系,而且往往水平地散布在代码的各个地方(这类散布在各处的无关代码被称为横切代码),在OOP中会导致大量代码重复,不利于重用,难以维护。

阅读全文