介绍 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 应用范围 后端接口设计时是需要考虑登录认证,除了注册、登录和注销等特殊操作外,其他的请求都需要进行校验是否登录、
[Oracle数据库]中的Sequence是一种特殊的数据库对象,可以生成一组等间隔的数值,常用于为表中的行自动生成序列号。也常用于主键自增的情况。 下面我将以小白的视角带大家介绍下Oracle数据库序列Sequence: 一、创建简单序列 创建简单序列语法: create sequence序列名称 注意:我们在刚建立序列后,无法提取当前值,只有先提取下一个值时
可以简单的这样理解:一个公司比喻成一台服务器,数据库是这个公司中的一个部门。 1.SID:一个数据库可以有多个实例(如RAC),SID是用来标识这个数据库内部每个实例的名字, 就好像一个部门里,每个人都有一个自己的名字。 2.SERVICE_NAME:是这个数据库对外宣称的名字,外面的人要想连接我这个数据库, 你就在客户端的连接串里写上service_name。它就像一个部门的名字,这个部门的名称
配置日志打印sql方式一,设置mybatis日志输出类#输出查询结果,注意,这个类实现是用system.out输出的,打印到了控制台上。 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl #不输出查询结果,设置这个类,还需要设置dao所在包级别=debug #mybatis.configuratio
查询[Oracle数据库版本]有几种方法,以下是一些常用的方法 通过SQL_Plus或者其他数据库客户端工具查询版本信息: 使用SQL_Plus或者其他数据库客户端工具连接到Oracle数据库,然后执行以下SQL语句: SELECT * FROM v$version; 这条SQL语句将返回Oracle数据库的版本信息,包括数据库版本号、版本名称、以及其他相关信息。 通过SQL
oracle导出数据时出现Table xx contains one or more CLOB columns错误,这个是说表里面有多个clob类型,不能导出 PLSQL导出方式有三种,第一种导出.dmp文件,它是二进制文件,通用性比较好,可以跨平台使用。第二种导出.sql文件,它的好处在于可以看见sql语句,适合数据量小的情况,而且不能有大字段内容(blob、clob、long)。第三种导出.
[PLSQL]调整SQL字体 在PLSQL工具中编写SQL语句,字体太小(如下图所示),如何把字体调大一些? 1、工具 菜单栏中找到“工具(T)” 2、首选项 选择“工具(T)”下的“首选项(P)” 3、用户界面 选择“用户界面”下的“字体” 4、编辑器 选择“编辑器”下的“选择…” 5、调整字体 根据自己的需求调整字体的大小、风格等内容 6、确定 (1)调整完毕后,点击“确定”进行保存
Oracle的三种分页指的是在进行分页查询时,使用三种不同的方式来实现分页效果,分别是使用rownum、使用offset和fetch、使用row_number() over() 1、使用rownum rownum是oracle中一个伪劣,它用于表示返回的行的序号。使用rownum进行分页查询的方法是在select语句中加入where子句,并在where子句中子句中指定rownum的取值范围,例如
要查看数据库中所有表,可以使用以下两个方法之一: 使用PL/SQL Developer工具: 在PL/SQL Developer中连接到数据库。 在左侧的“对象浏览器”窗口中,展开数据库连接。 展开“表”节点,即可查看所有表。 使用SQL查询: 在PL/SQL Developer的SQL窗口中输入以下查询语句: SELECT table_name FROM all_tables; 执行该查询,即
1.关联分析2对比分析 3聚类分析 4留存分析 5帕累托分析 6象限分析 7.ABtest 8漏斗分析 9路径分析
Eclipse插件的安装总结最近在做eclipse插件开发的项目,由于刚刚接触,一开始对Eclipse平台中插件的安装方式并不是了解,踩过了一些坑,也总结了一点经验。在此,做一个关于Eclipse插件安装方式的小小总结——插件的八种安装方法。希望可以帮助到新学Eclipse插件开发的朋友。文章目录Eclipse插件的安装总结前言一、通过jar包安装二、通过plugins文件和features文件安
tomcat下载 下载可以直接上官网,找对应型号的下载,注意windows 和 Linux 还有多少位,别下错了,不然对应不上是安装不成功的。目录介绍启动方式注意是 .bat文件,这是windows下的批处理文件,windows可以识别运行的文件,下面停止同样访问方式首先打开一个浏览器,然后如下前面的localhost为当前计算机,也就是本地访问停止方式eclipse手动配置tomcat2.3.4
下载单纯学习使用,算法题等 使用SE版本即可 如果需要web开发 只能选择EE版本eclipse刚打开的弹窗首先一定要确认你的JDK环境配置已经完成。刚开始使用eclipse的时候,刚加载完会推出一个框来,上面写着有关 WorkSpace 的一个框,点击那个框的中的白条输入框 ,这个是让你选择你的工作空间,就是你之后写的东西你要放到哪个盘的哪个文件夹下面。选好之后,如果让你选择JDK的安装路径,你
原生的Eclipse没有lombok插件,即使项目引入了lombok依赖也无法正常使用@Data等常用标签。下面介绍一下如何手动为Eclipse添加lombok插件,具体操作步骤如下:(1)打开Download地址,点击页面中间的超链接下载最新版本的lombok.jar文件。如果想要下载旧版本,可以点击页面左侧的“older versions”超链接,进入旧版本列表页面。图1 lomb
Eclipse常用快捷键Eclipse生成get和set方法快捷键光标放在类里面,即在大括号里面,编辑状态Eclipse自动修改错误快捷键光标放在错误行Eclipse自动生成方法注释快捷键光标放在方法名上Eclipse一键导包快捷键光标放在类里面,即在大括号里面,编辑状态Eclipse new一个类后自动对对象定义光标放在类后面Eclipse new一个类后自动对对象定义光标放在类后面Eclips
文章目录1、gitlab介绍和安装1.1、gitlab介绍1.1.1、概念1.1.2、gitlab与github的区别1.1.3、gitlab的优势1.1.4、gitlab主要服务构成1.1.5、gitlab的工作流程1.2、准备工作1.3、安装1.3.1、配置yum源1.3.2、更新本地缓存1.3.3、安装gitlab1.3.4、修改拉代码的地址1.3.5、刷新配置1.3.6、启动gitlab2
如果当前同时运行的线程数量达到最大线程数量并且队列也已经被放满了任务时,ThreadPoolTaskExecutor 定义一些策略:ThreadPoolExecutor.AbortPolicy: 抛出 RejectedExecutionException来拒绝新任务的处理。ThreadPoolExecutor.CallerRunsPolicy: 调用执行自己
Apache Kafka® 是 一个分布式流处理平台. 这到底意味着什么呢?我们知道流处理平台有以下三种特性:可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。可以储存流式的记录,并且有较好的容错性。可以在流式记录产生时就进行处理。Kafka适合什么样的场景?它可以用于两大类别的应用:构造实时流数据管道,它可以在系统或应用之间可靠地获取数据。 (相当于message
一、什么是MVCC?mvcc,也就是多版本并发控制,是为了在读取数据时不加锁来提高读取效率和并发性的一种手段。数据库并发有以下几种场景:读-读:不存在任何问题。读-写:有线程安全问题,可能出现脏读、幻读、不可重复读。写-写:有线程安全问题,可能存在更新丢失等。mvcc解决的就是读写时的线程安全问题,线程不用去争抢读写锁。mvcc所提到的读是快照读,也就是普通的select语句。快照读在读写时不用加
SpringBoot在缓存方面也提供了一些优秀的解决方案,帮助我们解决缓存穿透、缓存击穿、缓存雪崩等问题。一、Redis缓存Redis是一个高性能的键值对存储数据库,也是一个基于内存的数据结构存储系统,同时也支持持久化数据存储。Redis提供了丰富的数据结构,包括字符串、哈希、列表、集合、有序集合等。在缓存方面,Redis最大的优点就是支持数据的持久化存储,同时也具有很好的性能和扩展性。二、缓存穿
1、利用 guava 的 ThreadFactoryBuilderThreadFactory threadFactory = new ThreadFactoryBuilder() .setNameFormat(threadNamePrefix + "-%d") .setDaemon(true)
/** * 用给定的初始参数创建一个新的ThreadPoolExecutor。 */ public ThreadPoolExecutor(int corePoolSize,//线程池的核心线程数量 int maximumPoolSize,//线程池的最大线程数 long keepAliveT
import java.text.SimpleDateFormat; import java.util.Random; public class ThreadLocalExample implements Runnable{ // SimpleDateFormat 不是线程安全的,所以每个线程都要有自己独立的副本 private static final ThreadLocal<Simple
Microsoft Windows [版本 10.0.22621.1848] (c) Microsoft Corporation。保留所有权利。 C:\Users\1>docker run -itd --name=fe --env FE_SERVERS="FE:172.17.0.2:9010" --env FE_ID=1 -p 18830:8030 -p 19830=9030 --ip=1
幂等性是什么?幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。接口为什么要实现幂等? 前端重复提交选中的数据,后台只产生对应这个数据的一个反应结果。一、幂等常用思路token机制 当客户端请求页面时,服务器会生成一个随机数token,并且将to
乐观锁一般会使用版本号机制或 CAS 算法实现,CAS 算法相对来说更多一些,这里需要格外注意。#版本号机制一般是在数据表中加上一个数据版本号 version 字段,表示数据被修改的次数。当数据被修改时,version 值会加一。当线程 A 要更新数据值时,在读取数据的同时也会读取 version 值,在提交更新时,若刚才读取到的 version
uniqueInstance 采用 volatile 关键字修饰也是很有必要的, uniqueInstance = new Singleton(); 这段代码其实是分为三步执行:为 uniqueInstance 分配内存空间初始化 uniqueInstance将 uniqueInstance 指向分配的内存地址但是由于 JVM 具有指令重排的特性,执行顺序有可能变成 1->3->2。指
public class DeadLockDemo { private static Object resource1 = new Object();//资源 1 private static Object resource2 = new Object();//资源 2 public static void main(String[] args) { ne
在使用 java.util.stream.Collectors 类的 toMap() 方法转为 Map 集合时,一定要注意当 value 为 null 时会抛 NPE 异常。@Data class Person { private String name; private String phoneNumber;
如果看过 HashSet 源码的话就应该知道:HashSet 底层就是基于 HashMap 实现的。(HashSet 的源码非常非常少,因为除了 clone()、writeObject()、readObject()是 HashSet 自己不得不实现之外,其他方法都是直接调用 HashMap 中的方法。HashMapHashSet实现了 Map 接口实现 Set 接口存储键值对仅存储对象调用 put
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号