Java中关于JDK8新特性的介绍及使用示例
前言JDK 8(Java Development Kit 8)引入了许多新的特性和改进,使得Java语言更加现代化和易于使用。以下是JDK 8的一些主要新特性:
Lambda表达式允许把函数作为参数传递给方法,简化代码编写,提高代码的可读性和可维护性。
1234567891011// 传统写法new Thread(new Runnable() { @Override public void run() { System.out.println("Hello, world!"); }}).start();// Lambda表达式new Thread(() -> System.out.println("Hello, world!")).start();
函数式接口只包含一个抽象方法的接口,称为函数式接口。可以用Lambda表达式来实现函数式接口。
例如,java.util.function包中的接口(如Function, Predicate, Consumer等)。
...
数据库设计规范
前言
制定规范的直接目的是约束设计行为,最终目的是确保设计的合理统一。
约定优先于配置(Convention Over Configuration)。数据库命名规范、数据库基本设计规范、数据库索引设计规范、数据库字段设计规范、数据库SQL开发规范、数据库操作行为规范
数据库规范库名规范
命名有意义,只能使用英文字母、数字、下划线,使用小写字母,长度32个字符以内
避免用MySQL的保留字如:call、group等
编码
采用 UTF8 编码。 只能是utf8或者utf8mb4
分库
名称:库通配名+编号(从0开始递增),比如:wenda_001
把一个数据库分成多个,建议做个读写分离,做分库会加大开发成本,不推荐使用。
采用分库策略的,库的数量不能超过1024
数据表表名
命名有意义,只能使用英文字母、数字、下划线,使用小写字母,表名不使用复数名词,长度32个字符以内
避免用MySQL的保留字如:call、group等
同一模块使用的表名尽量使用统一前缀。 模块前缀+表名,如师资系统采用”sz”作为前缀,渠道系统采用”qd”作为前缀等。
相关模块的表名与表名之间尽量体现jo ...
SpringBoot中如何使用RocketMQ消息队列
前言
使用RocketMQ首先确保已经启用RocketMQ消息队列。
如果没有启用或还没安装RocketMQ,可以先了解【RocketMQ在Linux下载安装及部署】
如果想先了解RocketMQ,可以先看下【你真的了解RocketMQ消息队列吗】
记得把防火墙的端口【9876、10911】放开
JAVA原生代码调用引入Maven依赖12345<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.9.4</version></dependency>
生产者123456789101112131415161718192021222324252627import org.apache.rocketmq.client.producer.DefaultMQProducer;import org.apache.rocketmq.client. ...
Maven在Linux下载安装及配置
介绍Maven是一个强大的项目管理工具和构建自动化工具,它是基于Java平台的项目管理和构建工具。Maven的主要目标是帮助开发人员更容易地管理和构建Java项目。
下载【官网下载地址】
下载最新版该篇文章以最新版【apache-maven-3.6.3-bin.tar.gz】为例
下载其他版本
上传安装新建maven文件夹,并上传安装包123456# 进入 /usr/local 文件夹cd /usr/local# 创建 maven 文件夹mkdir maven# 进入到 /maven 文件夹cd maven
将下载好的apache-maven-3.6.3-bin.tar.gz上传到/usr/local/maven路径下
解压1tar -zxvf apache-maven-3.6.3-bin.tar.gz
配置环境变量修改Maven配置进入profile文件,编辑配置
1vi /etc/profile
编辑内容如下1234# mavenexport MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3# pathexport PA ...
你真的了解RocketMQ消息队列吗
RocketMQ介绍RocketMQ消息队列(MQ),是一个开源的分布式消息和流平台,由阿里巴巴开发。它构建在Java虚拟机(JVM)之上,使用Java编写。RocketMQ旨在处理大量数据,并提供发布-订阅消息、消息过滤、容错和高可伸缩性等功能。
主要特点
发布-订阅消息模型:RocketMQ支持发布-订阅消息模式,生产者将消息发布到特定主题,而消费者则订阅这些主题以接收消息。
消息队列:RocketMQ中的消息存储在队列中,可以实现高效的消息传递和消费。
高吞吐量和低延迟:RocketMQ经过优化,具有高吞吐量和低延迟,适用于实时消息和流应用程序。
横向扩展性:RocketMQ可以通过添加更多的代理来实现水平扩展,以分发消息负载并提高容错性。
可靠性和容错性:RocketMQ提供消息复制和故障转移等功能,以确保在分布式环境中的消息可靠性和容错性。
消息过滤:RocketMQ支持基于类似SQL的语法的消息过滤,允许消费者指定选择消息的条件。
监控和管理:RocketMQ具有内置的监控和管理工具,用于跟踪消息传递、监视系统健康状况和管理资源。
适用场景
实时数据处理:RocketM ...
RocketMQ在Linux下载安装及部署
RocketMQ介绍RocketMQ消息队列(MQ),是一个开源的分布式消息和流平台,由阿里巴巴开发。它构建在Java虚拟机(JVM)之上,使用Java编写。RocketMQ旨在处理大量数据,并提供发布-订阅消息、消息过滤、容错和高可伸缩性等功能。
了解更多点击【你真的了解RocketMQ消息队列吗】
安装环境由于RocketMQ是基于Java开发的,所以需要安装一些环境
JDK环境,博主服务器用的是JDK8,安装步骤可以参考【Linux下安装JDK8】
Maven环境,博主用的Maven版本是maven-3.6.3,安装步骤可以参考【Maven在Linux下载安装及配置】
RocketMQ的安装下载不想花时间看完该博客的,也可以参考官方的简单的安装流程【官方流程】
接下来就由博主分享自己的安装经验 👉🏻 👉🏻 👉🏻
方式一:普通Linux下安装下载RocketMQ【RocketMQ 官方网站】
下载最新版的二进制包
创建RocketMQ文件夹123cd /usr/localmkdir rocketmq
上传服务器把从官网上下载的二进制zip包上传到/usr/ ...
Java中关于抛出异常的几个关键点
前言编写代码过程中,使用事务回滚很常见,但关于事务回滚有几个很基础的问题
事务错误示范1234567@Transactionalpublic String checkDemo(String id) throws Exception{ if (id == null){ throw new Exception("ID不能为空"); } return "success";}
上述代码中,直接抛出了Exception异常,这种事务是无法控制住的,无法进行回滚。
进入@Transactional注解,其中有一个rollbackFor()回滚,官方文档中规定了只会对运行时异常和错误进行回滚。
如果仅仅抛出一个Exception受检异常,是无法进行回滚的。
正确示范想实现事务回滚,必须要符合官方文档中规定的方式
例如:在注解中声明一下回滚异常类型,或抛出RuntimeException异常
方式一:注解规定类型代码中虽然使用了Exception异常,但是在注解中声明了方法中需要回滚的异常类型,所以下 ...
一文理解NAS协议
前言NAS是网络附加存储(Network-Attached Storage)的缩写,是一种将硬盘存储设备连接到计算机网络上的设备。它的主要意义在于提供了一种高效、安全、可靠、低成本的数据存储和共享方案。
背景上来看,随着互联网技术的快速发展和普及,人们对数据存储和共享的需求日益增长。传统的存储方式,如硬盘、U盘等,存在容量小、易丢失、不便于共享等问题。而NAS作为新兴的存储方式,通过网络连接,可以大幅度提高存储容量、安全性和使用便利性,逐渐成为企业和家庭用户的首选存储方案。
除此之外,NAS还具有多种功能,如文件共享、数据备份、流媒体服务等,可以满足不同用户的需求,并且使用起来非常简单,只需要在局域网内接通电源和网络即可。
什么是NAS协议NAS (Network Attached Storage) 协议是一种用于网络存储设备的通讯协议,它允许用户通过局域网或互联网连接到存储设备并访问和管理其中的数据。NAS 协议有多种实现方式,包括 NFS、CIFS/SMB、FTP、HTTP 和 iSCSI 等。它是一种基于文件级别的存储方案,可以提供高效的数据共享和备份,并支持多用户同时访问。 ...
SpringBoot中如何使用Filter、Interceptor和Aop拦截REST服务
前言在SpringBoot中使用REST服务时,往往需要对Controller层的请求进行拦截或者获取请求数据和返回数据,就需要过滤器、拦截器或者切片。
执行请求的处理顺序:过滤器(Filter)> 拦截器(Interceptor)> 切片(Aspect)
过滤器(Filter)过滤器(Filter):对HttpServletRequest处理,也可以对HttpServletResponse进行后处理,无法获取请求方法的信息。
方式一:注解方式项目启动类,需要加上 @ServletComponentScan 注解TestFilter 使用注解的方式过滤,在class上面加上 @Component
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.http.HttpSer ...
Linux下安装NodeJS
前言Nodejs,一个能在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境
通俗来讲就是,Nodejs提供了一个可以让javascript代码运行在服务端的环境。
下载安装包官网地址:Download | Node.js
指定其他版本下载【Download Dist | Node.js】
我这里下载的是:【node-v20.11.1-linux-x64.tar.xz】
解压安装12345# 创建node文件夹mkdir /usr/local/node# 解压node安装包tar -xvf node-v20.11.1-linux-x64.tar.xz -C /usr/local/node
配置软连接直接允许全局使用node、npm命令
12ln -s /usr/local/node/node-v20.11.1-linux-x64/bin/node /usr/local/bin/ln -s /usr/local/node/node-v20.11.1-linux-x64/bin/npm /usr/local/bin/
查看ndoe版本123npm - ...