2024-10-28 12:35
230 次浏览
给大家推荐一个创作者内容变现平台:《原力推》创作者内容变现平台,网址:https://yuanlitui.com平台标语:你可以把创造的任何有趣/有价值的内容变成付费版,出售给有需要的人,把洞察转化为价值目前在公测阶段,招公测创作者进行使用。公测阶段零平台服务费(支付机构会收取0.38%支付手续费),公测结束后首批创作者会给到低服务费率,正式上线后新创作者按照正常费率进行收取。平台持证经营(增值电信业务许可证),资金全部托管到权威机构,平台无法挪用您的账户资金,由银行监管账户进行空中分账,安全、合法、合规。平台优势:一、费率低:1、原力推服务费+支付手续费仅5%。2、市面上的其他平台:8%-30%二、资金安全1、《原力推》和支付宝、微信、银行等第三方有资质的机构合作,使用空中分账功能,用户付的钱不过平台,直接打到用户账户,保障用户财产安全。2、平台持有《增值电信业务经营许可证》三、隐私安全: 所有用户敏感信息使用国家密码管理局颁布的国产商用密码标准算法进行加密存储,保障用户信息不会被泄露和破解四、开通简单: 同时支持支付宝和微信支付,且不需要自己使用支付宝和微信签约商家收款
2024-10-24 16:41
158 次浏览
今天是2024年10月24日,也是程序员日的14周年,祝大家程序员节快乐!同时感谢博客园在2010年发起国内程序员节的建议(详见博文 https://www.cnblogs.com/cmt/archive/2010/10/12/1848613.html ),在那之后,10月24日这一天逐步被越来越多人认同,于是就有了这样一个属于开发者的节日。
2024-05-23 09:21
887 次浏览
首先我们需要选择要安装Docker什么版本。当前有两个版本可供选择:社区版(Community Edition,CE)和企业版(Enterprise Edition,EE)。社区版(Docker CE)是免费的,企业版(Enterprise Edition,EE)收费,Docker EE包含Docker CE中的全部功能,还包括了商业支持以及与其他Docker产品的集成,比如Docker可信镜像库和通用控制面板。目前网络上的教程全部都是社区版的安装方法,包括本文章(其实我们没得选,企业版它收费啊...)CentOS安装方式1:自动安装(使用官方脚本)使用官网一键安装命令:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun或使用国内 daocloud 一键安装命令:curl -sSL https://get.daocloud.io/docker | sh安装方式2:手动安装卸载旧版本Docker如果系统已经安装了旧版本的Docker,请先执行卸载命令,然后再安装新版的Dockersudo yum remov
2023-04-12 18:31
3423 次浏览
AIGC/Gen-AI:OpenAI API:官方APIChatARKit:基于ChatGPT的AR开发包Point-E:3D点云生成式AIReplicate API:提供数千种云端AI模型,包括扩散模型、图像修复等Unity AI Command:在Unity编辑器中使用自然语言创建场景,基于chatgptDatabricks Dolly:Dtabricks的开源chatgpt替代品Stanford Alpaca:斯坦福基于Llama微调的指令型大模型。Code Alpaca:代码生成指令跟随模型,基于alpacallama.cpp:C++版本的Llama LLM推理器。simple-llama-finetuner:llama 7b LLM微调工具peft:大模型微调方法库llm-security:大模型安全问题汇编pyllama:hacked version of llama llmchatllama:基于llama和RLHF的chatbot开发库gpt4all:基于llama的gpt4平替,可以在个人PC上运行推理,webuipromptable:AI应用全栈开发库,支持LLM、
2023-02-23 17:28
2292 次浏览
提示Oracle数据库默认的字符集编码为US7ASCII,这个编码是不支持中文的,如果想要在数据库存储中文,就需要修改编码为ZHS16GBK或UTF-8编码和字符集是一个意思,只是叫法不一样而已前置条件修改字符集的前提是知道我们现在用的是什么字符集查询数据库字符集SELECT * FROM NLS_DATABASE_PARAMETERS where PARAMETER='NLS_CHARACTERSET';一般情况下我们都是将字符集修改为UTF-8或ZHS16GBK(GB18030)修改编码 1. 首先以SYSDBA的身份登录上去 sqlplus / as sysdba 2. 关闭数据库 shutdown immediate 3. 以mount(挂载方式)打开数据库 startup mount 4. 设置session -- 设置Oracle数据库为限制访问状态
ALTER SYSTEM ENABLE RESTRICTED SESSION;
-- 关闭Oracle数据库的Job Queue进程
ALTE
2023-01-29 15:35
2595 次浏览
字母^[A-Za-z]*$字母数字^[A-Za-z0-9]*$数字^\d*$大写字母^[A-Z]*$小写字母^[a-z]*$6个字母^\w{6}$6位数字^\d{6}$邮政编码^\d{4,6}$IP地址^((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}$链接^https?:\/\/\w+\.\w+\.\w+.*$车牌号^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]\w{4,9}$身份证号^\d{17}[\dX]$中国护照(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)
2023-01-17 10:24
3560 次浏览
ChatGPT注册教程最近爆火的ChatGPT你玩了吗?ChatGPT是将海量的数据结合表达能力很强的Transformer模型结合,从而对自然语言进行了一个非常深度的建模。可以应用在图像,QA,文本,Chat等场景,本次我们将讲述如何进行ChatGPT的注册,实现和当前最牛的人工智能对话。准备网络ChatGPT这个东西它在国外,所以我们要科学上网🪜据测试,香港的无法使用,新加坡是可以正常使用的(最好美国)注册邮箱网络准备好之后,我们就可以进入到注册页面了注册地址:https://chat.openai.com/auth/login首先是邮件认证,输入邮箱并设置密码,邮箱会收到验证邮件,我们点击邮件的Verify email address按钮就验证成功了验证手机号邮箱验证成功之后会进入绑定手机号的界面,但你会发现选了我们的county之后。。。无法使用这里必须要有一个国外的手机号才行...在座的各位,有国外手机号的不多吧这里推荐一个接码平台:https://sms-activate.org接码平台使用第一步、注册平台,很简单,只需要使用邮箱注册,这里就不列出来了第二步、充值,接码平
2022-12-24 21:26
2561 次浏览
1. 本网站为公益网站,不做盈利用途。2. 所有广告收入仅用于对服务器和网站的维护和支撑。3. 所有资料仅供个人学习,不能用于商业用途,请您自觉于下载后24小时内删除,请勿复制传播。4. 本站分享的文章、资源等均收集于互联网,仅供读者学习交流使用,版权归原作者所有。如有侵权,请您与站长联系,我们将及时处理!
2020-06-30 17:26
8602 次浏览
MQTT 是一种轻量级的、灵活的物联网消息交换和数据传递协议,致力于为 IoT 开发人员实现灵活性与硬件/网络资源的平衡。
Kotlin 是一门由 JetBrains 公司开发的编程语言,Kotlin 是基于 JVM 的,所以开发者可以很方便地用它来进行Android 开发,并且支持 Kotlin 和 Java 的混合编写。而早在 2017 年,Google 就宣布 Kotlin 成为官方开发语言。
本文主要介绍使用 Kotlin 语言在 Android 平台上使用 MQTT。
新建 Kotlin 项目
打开 Android Studio 新建一个项目,选择语言为 Kotlin,Android Studio 会自动创建 Kotlin 相关配置。若要配置现有项目,则可以参考 将 Kotlin 添加到现有应用。
添加依赖
打开项目的 build.gradle,添加 Eclipse Paho Java Client 和 Eclipse Paho Android Service 依赖到 dependencies 部分。
dependencies {
implementation 'or
2020-05-19 15:01
7615 次浏览
1. 使用技术Spring bootSpringSpring mvcMybatisPagehelpershirothymeleaflyear2. 系统功能用户信息管理理财产品管理网贷管理权限管理3. 项目截图4. 系统运行说明1、导入压缩包的sql文件2、修改finance/src/main/resources/application.yml配置文件中的数据库用户名和密码3、启动com.bjpowernode.finance.FinanceApplication4、启动后通过localhost:8080访问系统5、管理员用户为admin/123456
2019-12-19 11:06
4703 次浏览
升级到最新版本的Chrome(79.0)版本,发现开发者工具中Sources栏的JS代码,不高亮了,一片黑白。debugger时,鼠标移动到变量上,也不显示变量值,用起来非常不方便。站长几经折腾,以为是哪里的配置出了问题,后来google后发现升级Chrome后都有这问题。目前最好的解决版本,如果不想换浏览器的话,可以下载Chrome开发者版本使用,开发者版本下载链接:https://www.google.com/intl/zh-CN/chrome/dev/安装完成后再使用开发者工具,熟悉的味道回来了...
2019-12-13 16:40
3320 次浏览
堆内存划分为 Eden、Survivor 和 Tenured/Old 空间,如下图所示:对年轻代(包括 Eden 和 Survivor 区域)进行GC被称为 Minor GC,对老年代进行GC称为Major GC,而Full GC是对整个堆来说的,在最近几个版本的JDK里默认包括了对永生带即方法区的回收(JDK8中无永生带了),出现Full GC的时候经常伴随至少一次的Minor GC,但非绝对的。Major GC的速度一般会比Minor GC慢10倍以上。下边看看有那种情况会导致JVM进行Full GC及解决办法。1、System.gc()方法的调用 此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full GC,从而增加Full GC的频率,也即增加了间歇性停顿的次数。建议能不使用此方法就别使用,让虚拟机自己去管理它的内存,可通过通过-XX:+ DisableExplicitGC来禁止RMI调用System.gc()。2、老年代空间不足老年代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足
2019-12-13 11:11
4932 次浏览
自动装配是SpringBoot中一大特性,SpringBoot在程序初始化时可以根据classpath、property属性、context中实例、以及运行容器特征等各种动态条件,来按需初始化相应的bean,并注册到IOC容器中。Spring Boot四大核心: 1、自动配置:针对很多Spring应用程序和常见的应用功能,Spring Boot能自动提供相关配置。 2、起步依赖:告诉Spring Boot需要什么功能, 它就能引入需要的依赖库 3、Actuator:让你能够深入运行中的Spring Boot应用程序,一探Spring Boot程序的内部信息。 4、命令行界面:这是Spring Boot的可选特性,主要针对Groovy语言使用。本文将对自动装配的原理进行分析。@EnableAutoConfiguration讲解该注解表示开启Spring Boot自动配置功能,实现自动装配功能。@EnableAutoConfiguration 定义:在这个注解中,最重要的是它导入了一个类EnableAutoConfigurationImportSelector它是一
2019-11-19 16:43
3354 次浏览
2018最新BAT面试题,包含前端、Java、Python、大数据、PHP等
2019-11-13 16:33
3371 次浏览
面试题1、分布式事务了解吗?2、你们是如何解决分布式事务问题的?面试官心理分析只要聊到你做了分布式系统,必问分布式事务,你对分布式事务一无所知的话,确实会很坑,你起码得知道有哪些方案,一般怎么来做,每个方案的优缺点是什么。现在面试,分布式系统成了标配,而分布式系统带来的分布式事务也成了标配了。因为你做系统肯定要用事务吧,如果是分布式系统,肯定要用分布式事务吧。先不说你搞过没有,起码你得明白有哪几种方案,每种方案可能有啥坑?比如 TCC 方案的网络问题、XA 方案的一致性问题。面试题剖析分布式事务的实现主要有以下 5 种方案:XA 方案TCC 方案本地消息表可靠消息最终一致性方案最大努力通知方案两阶段提交方案/XA方案所谓的 XA 方案,即:两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问问各个数据库你准备好了吗?如果每个数据库都回复 ok,那么就正式提交事务,在各个数据库上执行操作;如果任何其中一个数据库回答不 ok,那么就回滚事务。这种分布式事务方案,比较适合单块应用里,跨多个库的分布式事务,而且因为严重依赖于数据库层面来搞定复杂的事务,效率
2019-10-30 20:18
12578 次浏览
《Spring Cloud微服务架构进阶》朱荣鑫等著《Spring Cloud微服务实战》翟永超著《Spring Cloud与Docker微服务架构实战(第2版)》周立著《Spring Cloud微服务:全栈技术与案例解析》 尹吉欢著
2019-09-24 16:33
6930 次浏览
我们通过java把下面的背景图和二维码以及文字“java菜市场-专注于技术干货的免费分享”合并成一张新的图片背景图片二维码图片public class Main {
/**
* 合成图片
*
* @param backgroundPath
* @param qrCodePath
* @param message
* @param outPutPath
* @throws IOException
*/
public static void overlapImage(String backgroundPath, String qrCodePath, String message, String outPutPath) throws IOException {
// 设置背景图片大小
BufferedImage backgroundImage = resizeImage(566, 230, ImageIO.read(new File(backgroundPat
2019-09-24 09:17
6077 次浏览
如果你想找的资源,在java菜市场中没有搜到,如IT相关的电子书、视频教程、考研资料等。都可以在这里留言,java菜市场帮你找。留言的电子邮箱请填写真实邮箱,以便接收回复通知!声明:java菜市场也是在网络上搜集资源,不代表所有留言的资源都能被找到。如果是19年、20年新出的书,基本上没有资源,感谢大家的理解和支持。可通过手机QQ扫描下方二维码加入java菜市场官方QQ群,期待你的加入。
2019-09-21 09:41
4363 次浏览
1、 meta标签的作用是什么2、 ReenTrantLock可重入锁(和synchronized的区别)总结3、 Spring中的自动装配有哪些限制?4、 什么是可变参数?5、 什么是领域模型(domain model)?贫血模型(anaemic domain model)和充血模型(rich domain model)有什么区别?6、 说说http,https协议7、"= ="和equals方法究竟有什么区别?8、&和&&的区别?9、.super.getClass()方法调用?10、10条SQL优化技巧11、10道经典java面试题_实习生必问!12、15个Java线程并发面试题和答案13、15个高级Java多线程面试题及回答14、2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据15、2018年java分布式相关最新面试题16、2018最新java技术面试题与答案17、23种经典设计模式都有哪些,如何分类?18、4个Spring常见面试题及答案解析19、58到家MySQL数据库开发规范20、9条改善Java性能的小建议21、9道常见的java笔试
2019-09-17 14:05
3055 次浏览
1、mysql -u root -p 登陆进MySQL;2、执行以下命令:GRANT ALL PRIVILEGES ON *.* TO 'your name'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;FLUSH PRIVILEGES;3、exit;
2019-09-16 18:08
2787 次浏览
本文通过探析JDK提供的,在开源项目中比较常用的Java SPI机制,希望给大家在实际开发实践、学习开源项目提供参考。1 SPI是什么SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。整体机制图如下:Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。系统设计的各个抽象,往往有很多不同的实现方案,在面向的对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。Java SPI就是提供这样的一个机制:为某个接口寻找服务实现的机制。有点类似IOC的思想,就是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要。所以SPI的核心思想就是解耦。2 使用场景概括地说,适用于:调用者根据实际使用需要,启用、扩展、或者替换框架的实现策略比较常见的例子:数据库驱动加载接口实现类的加载J
2019-09-07 20:19
2999 次浏览
1.使用 slf4j使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。实现方式统一使用: Logback 框架2.打日志的正确方式什么时候应该打日志?当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定为的。当你碰到if…else 或者 switch这样的分支时,要在分支的首行打印日志,用来确定进入了哪个分支经常以功能为核心进行开发,你应该在提交代码前,可以确定通过日志可以看到整个流程2.1 基本格式必须使用参数化信息的方式:logger.debug("Processing trade with id:[{}] and symbol : [{}] ", id, symbol);对于 debug 日志,必须判断是否为 debug 级别后,才进行使用:if (logger.isDebugEnabled()) { logger.debug("Processing trade with id: " +id + " symbol: " + symbol);}不要进行字符串拼接,那样会产生很多 String 对象,占用空间,
2019-08-30 11:25
3178 次浏览
站长之前整理了如何在阿里云CentOS服务器下安装SVN、Redis、MySQL、Nexus,都是站长一步步亲自安装,自测通过的。CentOS7下搭建配置SVN服务器CentOS7使用yum安装MySQLCentOS7安装Redis4.0.2及常见报错解决CentOS7安装maven私服Nexus有些小伙伴反映能安装成功,但是本机程序或浏览器访问会出现无法连接的情况,一般这种情况很多都是因为阿里云ECS服务器的安全组配置和服务器的防火墙原因导致。站长以SVN服务器的3690端口为例,介绍一下解决方案。1、打开阿里云控制台首页,打开云服务器管理控制台 -->网络与安全-->安全组2、点击安全组列表中的配置规则3、点击添加安全组规则4、在端口范围加入你要添加的端口,确定提交。可以同时添加多个端口,如果3690/3692,即可同时添加3690、3691、3692 3个端口5、配置服务器防火墙通过 firewall-cmd --list-all 命令,查询防火墙配置如果提示"FirewallD is not running",说明防火墙没有开启,可以通过 systemctl sta
2019-08-28 10:13
4422 次浏览
在进行多租户架构(Multi-tenancy)实现之前,先了解一下相关的定义吧:什么是多租户多租户技术或称多重租赁技术,简称SaaS,是一种软件架构技术,是实现如何在多用户环境下(此处的多用户一般是面向企业用户)共用相同的系统或程序组件,并且可确保各用户间数据的隔离性。简单讲:在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务。从定义中我们可以理解:多租户是一种架构,目的是为了让多用户环境下使用同一套程序,且保证用户间数据隔离。那么重点就很浅显易懂了,多租户的重点就是同一套程序下实现多用户数据的隔离。数据隔离方案多租户在数据存储上存在三种主要的方案,分别是:独立数据库即一个租户一个数据库,这种方案的用户数据隔离级别最高,安全性最好,但成本较高。优点:为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;如果出现故障,恢复数据比较简单。缺点:增多了数据库的安装数量,随之带来维护成本和购置成本的增加。共享数据库,独立 Schema多个或所有租户共享Database,但是每个租户一个Schema(也可叫做一个user)。底层库比如是:DB2、ORACL
2019-08-23 09:34
3349 次浏览
Arthas是什么鬼?Arthas是一款阿里巴巴开源的 Java 线上诊断工具,功能非常强大,可以解决很多线上不方便解决的问题。Arthas诊断使用的是命令行交互模式,支持JDK6+,Linux、Mac、Windows 操作系统,命令还支持使用 tab 键对各种信息的自动补全,诊断起来非常利索。这是它的官方网站:https://alibaba.github.io/arthas/index.htmlGithub地址:https://github.com/alibaba/arthasArthas能解决什么问题?让我们来看下 Arthas 的官方解释。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 1、这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 2、我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 3、遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 4、线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!5、是否有一个全局视角来查看系统的运行状况? 6、有什么办法可以监控到JVM的实
2019-08-02 14:19
4398 次浏览
1、进入要安装maven的目录,以/usr/local为例
cd /usr/local
2、下载maven3.3.9tar包
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
3、解压tar包
tar -zxvf apache-maven-3.3.9-bin.tar.gz
4、当前maven安装包所在目录为 /usr/local/apache-maven-3.3.9,可以根据需要移动到自己想要的位置
5、设置环境变量
vim /etc/profile
在profile文件末尾添加一下内容:
export M2_HOME=/usr/local/apache-maven-3.3.9
export PATH=$M2_HOME/bin:$PATH
6、使修改的profile文件立即生效:
source /etc/profile
7、输入mvn -v命令,显示一下内容,安装成功
Apache Maven 3.3.9 (bb52d8502b
2019-07-29 09:56
2734 次浏览
MySQL count(1) 真的比 count(*) 快么? 反正同事们都是这么说的,我也姑且觉得对吧,那么没有自己研究一下究竟?如果我告诉你他们一样,你信么?有 Where 条件的 count,会根据扫码结果count 一下所有的行数,其性能更依赖于你的 Where 条件,所以文章我们仅针对没有 Where 的情况进行说明。MyISAM 引擎会把一个表的总行数记录了下来,所以在执行 count(*) 的时候会直接返回数量,执行效率很高。在 MySQL 5.5 以后默认引擎切换为 InnoDB,InnoDB 因为增加了版本控制(MVCC)的原因,同时有多个事务访问数据并且有更新操作的时候,每个事务需要维护自己的可见性,那么每个事务查询到的行数也是不同的,所以不能缓存具体的行数,他每次都需要 count 一下所有的行数。那么 count(1) 和 count(*)有区别么?InnoDB handles SELECT COUNT(*) and SELECT COUNT(1) operations in the same way. There is no performance diffe
2019-07-25 10:49
11345 次浏览
阿里巴巴,一直都是程序员们非常向往的企业,这里汇聚了全国最顶尖的程序员,这里的技术大牛也一直很愿意和外界分享他们的经验心得,撰写了一系列技术博客、书籍等,本文,猿哥整理了近年来阿里巴巴技术大牛们撰写的那些书籍,涵盖Java、大数据、面试企业架构等方面Java系列1、《阿里巴巴Java开发手册》作者:杨冠宝,阿里巴巴集团高级技术专家,在阿里历任技术研发、架构师、部门主管等不同的角色本手册以开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约七个维度,每个条目下有相应的扩展解释和说明,正例和反例,全面、立体、形象地帮助到开发者的成长和团队代码规约文化的形成。2、《码出高效:Java开发手册》作者:杨冠宝,阿里巴巴集团高级技术专家,在阿里历任技术研发、架构师、部门主管等不同的角色;高海慧,阿里云资深开发工程师,先后在阿里巴巴集团B2B技术部和阿里云任职源于影响了全球250万名开发工程师的《阿里巴巴Java开发手册》,作者静心沉淀,对Java规约的来龙去脉进行了全面而彻底的内容梳理。《码出高效:Java 开发手册》以实战为中心,以新颖的角度全面阐
2019-07-25 09:33
8761 次浏览
从人工到自动化,从重复到创新,技术演进的历程中,伴随着开发者工具类产品的发展。阿里巴巴将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅的写代码。 由于开发者涉及的技术领域众多,笔者仅从自己熟悉的领域,以后端开发者的视角盘点平时可能用得到的工具。每个工具按照以下几点进行介绍:1. 工具名称和简介2. 使用场景一、Java 线上诊断工具 ArthasArthas 阿里巴巴2018年9月开源的一款Java线上诊断工具。工具的使用场景:1. 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?2. 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?3. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?4. 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!5. 是否有一个全局视角来查看系统的运行状况?6. 有什么办法可以监控到JVM的实时运行状态?Arthas支持JDK 6 ,支持Linux/Mac/Window
2019-07-22 15:11
4496 次浏览
前言今天给大家介绍一个新的ORM框架->JOOQ,可能很多朋友还没有听说过这个框架,码农哥之前也是一直在使用Mybatis框架作为Java工程中的持久层访问框架,但是最近的一些项目采用JOOQ框架开发后,码农哥表示再也不想用Mybatis了!为什么这么说呢?因为JOOQ在代码层面要比Mybatis简洁得多,而且性能也非常优异。相信大家都有过这样的体会,我们在项目工程中使用Mybatis进行数据库相关代码的编写时,为了提高工程效率,一般会在数据库模型设计完成后,一次性使用Mybatis代码插件(如:mybatis-generator),来生成Mybatis数据库访问的实体类代码以及XML、Mapper等映射代码,从而尽量以面向对象的方式来操作和访问数据库。而通过这样的方式,虽然在工程效率上提高了很多,但是从代码的简洁和优雅性上来说就会让人感觉特别的啰嗦,因为自动生成的代码并不完全都是你在项目中能够用得到的。所以,有些对代码有追求的同学就会以比较简洁的方式来手写SQL代码。如在@Mapper接口中编写这样的代码:@Select("select max(t.balance_id) fr