
正文
阿里巴巴java代码检测 阿里巴巴java编程手册
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
只有java有在线诊断工具吗
Arthas 是Alibaba开源的Java诊断工具。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
是否有一个全局视角来查看系统的运行状况?
有什么办法可以监控到JVM的实时运行状态?
怎么快速定位应用的热点,生成火焰图?
Arthas支持jdk6+,多种系统版本,采用命令行交互模式,同时提供丰富的tab自动补全功能,进一步方便我们进行问题的定位和诊断
1.2、快速安装
1.2.1、Linux下按
下载arthas-boot.jar,在使用java -jar方式启动即可。
命令
**注意:**在进行第二条命令之前,先运行一个Java程序在内存之中,否则会报错
2、快速入门
2.1、attach一个进程
目标:
1、执行一个jar包
2、通过arthas来attach来追踪
3、进行常用的命令操作
如果端口号被占用,也可以通过命令换成另一个端口号执行。
总结:
1、启动进程
2、启动arthas-boot.jar,进入启动的进程
3、不但可以通过命令行的方式来操作arthas也可以通过浏览器来访问arthas
2.2、常用命令接触
1、dashboard仪表板
2、通过thread命令来获取到arthas-demo进程的Main Class
3、通过jad来反编译Main Clas
4、wathch具体方法
2.2.1.、dashboard仪表板
在这里插入图片描述
2.2.2、通过thread命令来获取到arthas-demo进程的Main Class
在这里插入图片描述
2.2.3、通过jad反编译Main Class
在这里插入图片描述
2.2.4、watch监视
demo.MathGame primeFactors:
demo.MathGame:包名+类名
primeFactors:方法名
returnObj:返回参数的表达式
2.2.5、退出arthas
如果只是退出当前的连接,可以用quit或者exit命令。Attach到目标进程上的arthas还会继续运行,端口会保持开放,下次连接时可以直接连接上。
如果想完全退出arthas,可以执行stop命令
在这里插入图片描述
2.3、基础命令1
1、help:查看所有帮助信息
2、cat:显示文本文件内容
3、grep:匹配查找,和linux中的grep类似,但只能用于管道命令
在这里插入图片描述
4、pwd:显示当先目录的目录地址
5、cls:清屏
2.4、基础命令2
1、session:查看当前会话信息
在这里插入图片描述
2、reset:重置增强类,将被arthas增强过的类全部还原,arthas服务端关闭时会重置所有增强过的类
在这里插入图片描述
在这里插入图片描述
3、version:输出当前目标Java进程所加载 的Arthas版本号
4、quit:退出当前Arthas客户端,其他Arthas客户端不受影响。
5、stop:关闭Arthas服务端,所有Arthas客户端全部退出。
6、keymap:Arthas快捷键列表及自定义快捷键
7、history:和linux系统作用一样 打印命令历史
3、JVM相关命令
1、dashboard
在这里插入图片描述
2、thread 线程相关:查看当前jvm的线程堆栈的信息
在这里插入图片描述
3、jvm 虚拟机相关
4、sysprop 系统属性相关
5、sysenv:查看当前jvm的环境属性
在这里插入图片描述
6、vmoption:查看、更新vm诊断相关的参数
7、getstatic:方便的查看类的静态属性
语法:getstatic 类名 属性名
8、ognl
在这里插入图片描述
3.1、反编译 jad
比如编译string类
–source-only : 只显示源码
只反编译指定的方法
xx 就是方法名
3.2、内存编译mc
内存编译器,编译.java文件生成.class
在这里插入图片描述
在这里插入图片描述
4、Arthas进阶
4.1、目标
类与类加载器
monitor、watch、trace、stack等核心命令的使用
火焰图的生存
arthas实战案例
4.2、dump
将已加载的字节码文件保存到特定的目录下,logs/arthas/classdump/
在这里插入图片描述
举例:
在这里插入图片描述
4.3、classloader
获取类加载器的信息
作用:
将jvm中所有的classloader的信息统计出来,并可以展示继承树,urls等。
让指定的classloader去getResources,打印出所有查找到的resources的url。
在这里插入图片描述
4.4、monitor
监控指定类中方法的执行情况
作用:
在这里插入图片描述
在这里插入图片描述
4.5、watch(重要)
观察到指定方法的调用情况
作用:
方法执行数据观测,方便观测到指定方法的调用情况
能观察到的范围:返回值、抛出异常、入参。通过编写OGNL表达式进行对应变量的查看
在这里插入图片描述
在这里插入图片描述
只查看第一个参数小于0的情况
在这里插入图片描述
文章知识点与官方知识档案匹配
Java技能树首页概览
89145 人正在系统学习中
打开CSDN,阅读体验更佳
java应用线上诊断神器--Arthas_linyb极客之路的博客
c、保存好/tmp/UserServiceImpl.java之后,使用mc(Memory Compiler)命令来编译,并且通过–classLoaderClass参数指定ClassLoader mc--classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader/tmp/UserServiceImpl.java-d/tmp ...
继续访问
java线上诊断工具,Java线上诊断神器Arthas-1_Skogkatt的博客-CSDN...
Arthas 是Alibaba 开源的一款线上诊断工具,相比Java 自带的jinfo, jmap,jstat 等工具更方便(起码不用记那么多参数),而且利用字节码增强技术,可以很好的对线上的问题进行定位以及解决,不用再为生产或者测试环境无法debug而感到无能为力。...
继续访问
最新发布 Arthas常用命令
arthas指令大全
继续访问
Arthas在线java进程诊断工具 在线调试神器
Arthas在线java进程诊断工具 在线调试神器 tag: java 诊断 堆栈 在线调试 耗时 死锁 arthas 阿里巴巴 Arthas 是 Alibaba 开源的Java诊断工具,深受开发者喜爱。 官网文档: 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在.
继续访问
Java在线诊断利器之Arthas_Java老K的博客
Arthas是阿里在2019年9月份开源的一款java在线诊断工具,能够分析、诊断、定位java应用问题,例如:jvm信息、线程信息、搜索类中的方法、 跟踪代码执行、观测方法的入参和返回参数等等。 Arthas最大的特点是能在不修改代码和不需要重新发布的...
继续访问
java线上诊断神器 --Arthas__小鱼塘的博客_java网络诊断
java线上诊断神器 --Arthas 最近在工作中用到的一个非常很好的线上诊断,分析问题的神器,再次记录一下: 官方文档:简介 | arthas GitHub 地址:GitHub - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas...
继续访问
Arthas使用教程(8大分类)
1、基础命令。2、JVM相关。3、类与类加载器。4、option全局选项。5、项目中使用案例。
继续访问
Arthas介绍
这篇文章为大家推荐一个为Java应用程序排查问题的非常好用的工具:Arthas,首先声明一下,这边文章并不是教大家如何使用,它只是一个搬运工,在Arthas的github上已经有非常详细的使用教程了。 Arthas(阿尔萨斯)是阿里巴巴开源的Java诊断工具,深受开发者喜爱 当你遇到以下类似问题而束手无策时,Arthas统统可以帮你解决 某个类是从哪个jar包加载的,为什么会报各种类相关的Exc...
继续访问
Arthas - Java线上诊断工具_是良辰的博客
java -jar arthas-boot.jar 启动之后就可以看到一个java程序列表,像我这就是只有一个java程序在跑,就是当前根目录下面的app.jar 选择1,即可对app.jar进行监控诊断。 PS:如果是虚拟机,直接在应用服务器上面执行上面的命令,如果是docke...
继续访问
java线上诊断工具Arthas-实战案例_小姐姐修灯泡吗的博客
首先我就来简单介绍下他的作用:(粘贴官网)Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪Java代码;实时监控JVM状态。 Arthas 支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的...
继续访问
arthas 使用教程
arthas安装使用 首先是安装,说白了其实把他当成一个工具来用就行了,你什么服务需要在线进行性能情况的一个监测和性能的瓶颈排查。第三步启动arthas-boot.jar,启动的时候要注意你需要监测的java是启动的可以用jps-l命令查看你的java服务。第二步把jar包上传到你需要进行java性能监测的服务器上。线上正式环境把他当成一个排查慢问题的工具还是很好用的。以上就是启动服务了下面开始介绍常用的一些排查命令。...
继续访问
Arthas
Arthas.md 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,...
继续访问
Java线上问题诊断工具Arthas_星光Starsray的博客
java -jar arthas-boot.jar //启动 当看到控制台出现arthas的标志,表明启动成功!注意此时已经进入控制台,主要是arthas的命令使用。 [root@xxptweb01 arthas]# java -jar arthas-boot.jar
继续访问
【Java】性能问题诊断利器Arthas --常用命令示例_叹了口丶气的博客-C...
Arthas 是一款阿里开源的 Java 线上诊断工具,功能强大,可以在不修改代码或者重启服务的情况下快速定位线上问题。 官方文档:Arthas官网 二、安装 从官网下载 Arthas 全量包安装(因为快速安装可能因网络原因下载失败),然后用 java -jar 方...
继续访问
Java诊断工具Arthas使用说明
Arthas 是Alibaba开源的Java诊断工具,Arthas支持JDK 6+,支持Linux/Mac/Windows,支持命令行交互模式、 Tab 自动补全功能,方便进行问题的定位和诊断。
继续访问
JVM性能调优篇07-阿里巴巴Arthas工具详解
阿里巴巴Arthas工具详解
继续访问
Arthas 是Alibaba开源的Java诊断工具
Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行...
继续访问
JVM之GC 调优工具 Arthas 实战使用(二)
Arthas 是 Alibaba 开源的 Java 诊断工具,深受开发者喜爱。Arthas 支持 JDK 6以上版本,支持 Linux/Mac/Windows,而且这些环境的命令都一样,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进行问题的定位和诊断 官方文档参考 一、下载和安装 不需要安装,就是一个 jar 包 curl -O
继续访问
Arthas详解
文章目录概述安装快速安装使用`arthas-boot`(官网推荐)使用`as.sh`全量安装把Arthas安装到基础镜像里卸载使用命令详解基础命令helpcatechogrepbase64teepwdclsversionhistorykeymap后台异步命令相关快捷键会话相关quitstopsessionresetjvm相关dashboardthreadjvmsyspropsysenvvmoptionperfcounterloggergetstaticognlmbeanheapdumpvmtoolclass
继续访问
Arthas基础
Arthas:快速入门
继续访问
Arthas入门到精通
Arthas是Alibaba开源的一款Java诊断工具,方便开发者在线排查问题,无需重启,同时可以跟踪Java代码,实时监控JVM状态,目前Arthas仅支持JDK6+,支持Linux/Mac/Windows,采用命令行交互模式,具有 Tab 自动补全功能,便于开发者进行快速定位和诊断问题。 离线全量下载(如果服务器没有外网可以采用这种情况)
继续访问
阿里Java诊断工具 arthas - 介绍及指令大全
一、arthas Arthas` 是Alibaba开源的Java诊断工具,深受开发者喜爱。 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到
继续访问
java诊断神器 arthas(阿尔萨斯)
java诊断神器 arthas(阿尔萨斯) 官网地址: 1、快速开始 1.1、windows版本安装 # 命令行输入 curl -0 --output arthas-boot.jar # 启动arthas 注意:启动前已经要有java进程运行,否则无法进入 java -jar arthas-boot.jar --telnet-por
继续访问
帮助定位Java方法优化之arthas端口被占用解决的办法
另起一个端口号 启动arthas命令的后面加上端口号的相关参数 java -jar arthas-boot.jar --telnet-port 端口号 --http-port -1 关闭占用端口的服务 先进入占用端口的服务,然后输入stop将它停掉就可以了 注:请再每一次使用之后使用stop命令退出,这样也省掉一些不必要的麻烦!!! ...
继续访问
Java 诊断工具之 Arthas
Arthas 是 Alibaba 开源的 Java 诊断工具。Ta 可以动态跟踪 Java 代码,实时监控 JVM 状态,可以在不中断程序执行的情况下轻松完成 JVM 相关问题排查工作。支持 JDK 6+,支持 Linux/Mac/Windows。
继续访问
Arthas-java在线调试工具的使用
一、arthas能干什么? 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到JVM的实时运行状态? 怎么快速定位应用的热点,生成火焰图? 怎样直接从JVM内查找某个类的实例? Arthas支持JDK 6+
继续访问
Java线上诊断工具Arthas
概述 Arthas是一个开源的线上诊断工具,可以实时查看线上代码运行情况,详情参考Arthas 命令列表 jad命令(获取已加载类的源码) //主要用来看已经加载了类的源码,一般用于动态加载的class的源码比较方便 [arthas@773]$ jad com/example/jvm/Hello ClassLoader: +-sun.misc.Launcher$AppClassLoader@18b4aac2 +-sun.misc.Launcher$ExtClassLoader@362d9..
继续访问
java 线上诊断命令
java
学习
相关问答
Q1: java如何检测源码二次倒卖
1、可以使用源代码监测软件进行检测,它能够快速扫描整个源码,并检测其中的可疑字符串,如果发现有任何可疑的字符串,就会发出警告。
2、源代码文件也可以使用特征哈希技术进行比对,它可以检测出源代码文件是否与其他文件相同,如果发现有不一致的情况,就可以判断是二次倒卖。
3、可以使用版权保护工具,它可以防止源代码被倒卖或者盗版,同时也可以追踪被倒卖的源码,以便及时发现二次倒卖的行为。
Q2: idea 有没有spring boot插件
转自:IntelliJ IDEA必装插件以及SpringBoot使
IntelliJ IDEA必装插件
有不知道怎么安装的吗?File--settings打开设置面板,找到plugins,输入想要安装的插件回车即可。plugins面板
1.背景图片
目前,IDEA支持设置背景图片。这对于广大程序员来说无疑是个好功能。整日对着枯燥的代码实在是会让人疲乏。要是可以设置一张美女图片的话。。。
设置方法:
Ctrl+Shift+A(或者help - find action)调用弹窗后输入Set Background Image。
在里面设定要设置为Image的图片,透明度调到15左右,保存即可。
效果如图:
2.Maven Helper
日常开发中,可能经常会遇到jar包冲突等问题,就需要通过查看maven依赖树来查看依赖情况。这种方式不是很高效,这里推荐一个插件,安装之后,直接打开pom文件,即可查看依赖数,还能自动分析是否存在jar包冲突。
一旦安装了Maven Helper插件,只要打开pom文件,就可以打开该pom文件的Dependency Analyzer视图(在文件打开之后,文件下面会多出这样一个tab)。
进入Dependency Analyzer视图之后有三个查看选项分别是:
Conflicts(冲突)
All Dependencies as List(列表形式查看所有依赖)
All Dependencies as Tree(树结构查看所有依赖),并且这个页面还支持搜索。
3.FindBugs-IDEA
FindBugs很多人都并不陌生,Eclipse中有插件可以帮助查找代码中隐藏的bug,IDEA中也有这款插件。
使用方法很简单,就是可以对多种级别的内容进行finbugs。
分析完之后会有一个视图进行提示,详细的说明是哪种问题。
4.阿里巴巴代码规约检测
检测JAVA代码中存在不规范得位置然后给予提示,阿里巴巴规约插件包含三个子菜单:编码规约扫描、关闭试试检测功能。
安装好此插件即可自动在不规范位置给与提示。
5.GsonFormat
Java开发中,经常有把json格式的内容转成Object的需求,比如项目开始时,合作方给你提供了一个json格式request/response,这时候你就需要将其定义成一个Java类,GsonFormat这款插件可以实现该功能。
6.Lombok plugin
在Java中,我们经常会定义很多JavaBean,这些Bean需要有getter、setter、toString、equals和hashCode等方法。
通常情况下,我们可以使用IDEA的快捷键生成这些代码,但是自动生成的代码后,如果bean中的属性一旦有修改,需要重新生成,给代码维护增加了一定的负担。
有一款很好的插件,可以帮助开发者节省这部分工作。那就是Lombok。
只要在IDEA中安装了该插件,只需要在JavaBean中添加一行注解代码,插件就会自动帮我们生成getter、setter、toString、equals和hashCode等方法。
当然,这些方法不止在IDE中的代码调用中需要用到,在真正线上部署的时候也需要有,所以,还需要使用maven引入一个lombok的包。
@Data class Wechat {
private String id;
private String desc; }
我们在Wechat类上面添加了@Data注解,插件就自动帮我们添加了getter/setter和toString方法。
7.String Manipulation
字符串日常开发中经常用到的,但是不同的字符串类型在不同的地方可能有一些不同的规则,比如类名要用驼峰形式、常量需要全部大写等,有时候还需要进行编码解码等。这里推荐一款强大的字符串转换工具——String Manipulation。
它强大到什么程度,看下他的功能列表你就知道了:
安装好插件后,选中需要处理的内容后,按快捷键Alt+m,即可弹出工具功能列表。
很好很强大的一款字符串处理工具。
8.Mybatis plugin
目前ORM框架中,Mybatis非常受欢迎。但是,同时给很多开发带来困扰的就是Mybatis需要很多xml的配置文件,有的时候很难去进行修改。
这里推荐一款神器,可以让你像编辑java代码一样编辑mybatis的文件。
Intellij Idea Mybatis插件主要功能:
提供Mapper接口与配置文件中对应SQL的导航
编辑XML文件时自动补全
根据Mapper接口, 使用快捷键生成xml文件及SQL标签
ResultMap中的property支持自动补全,支持级联(属性A.属性B.属性C)
快捷键生成@Param注解
XML中编辑SQL时, 括号自动补全
XML中编辑SQL时, 支持参数自动补全(基于@Param注解识别参数)
自动检查Mapper XML文件中ID冲突
自动检查Mapper XML文件中错误的属性值
支持Find Usage
支持重构从命名
支持别名
自动生成ResultMap属性
(图源:)
但是这款插件是收费的,但是不影响他确实是一个很实用,可以很大程度上提升开发效率的插件。读者可以考虑使用Free Mybatis plugin(这款插件我没用过,具体是否好用有待考证)。
9.Key promoter X
对于很多刚刚开始使用IDEA的开发者来说,最苦恼的就是不知道快捷键操作是什么。
使用IDEA,如果所有操作都使用鼠标,那么说明你还不是一个合格的程序员。
这里推荐一款可以进行快捷键提示的插件Key promoter X。
Key Promoter X 是一个提示插件,当你在IDEA里面使用鼠标的时候,如果这个鼠标操作是能够用快捷键替代的,那么Key Promoter X会弹出一个提示框,告知你这个鼠标操作可以用什么快捷键替代。
当我使用鼠标查看一个方法都被哪些类使用的时候,就会提示:
记住这个快捷键以后,就可以使用快捷键代替鼠标啦。
10.activate-power-mode
最后,介绍一款程序员很好的在妹子面前装X的插件——activate-power-mode 。
安装了这款插件之后,你写代码的时候,就会附加一些狂拽炫酷屌炸天的效果
11.ignore
git提交时过滤掉不需要提交的文件,很方便,有些本地文件是不需要提交到Git上的。
12.CamelCase
将不是驼峰格式的名称,快速转成驼峰格式,安装好后,选中要修改的名称,按快捷键shift+alt+u。
13.CodeGlance
在编辑区的右侧显示的代码地图。
14.Material Theme UI
这是一款主题插件,可以让你的ide的图标变漂亮,配色搭配的很到位,还可以切换不同的颜色,甚至可以自定义颜色。默认的配色就很漂亮了,如果需要修改配色,可以在工具栏中Tools-Material Theme然后修改配色等。
15.Background image Plus
这是一款可以设置idea背景图片的插件,不但可以设置固体的图片,还可以设置一段时间后随机变化背景图片,以及设置图片的透明度等等。
16.### Rainbow Brackets
彩虹颜色的括号 看着很舒服 敲代码效率变高
SpringBoot | 番外:使用小技巧合集
设置网站图标
原来我们在使用tomcat开发时,设置网站图片时,即icon图标时,一般都是直接替换root包下的favicon.ico替换成自己的,或者在网页的头部设置link的ref为icon然后设置其href值。而在SpringBoot中,替换图片也是很简单的,只需要将自定义图片放置在静态资源目录下即可,即默认有static、public、resources、/META-INF/resources或者自定义的静态目录下即可。
目录结构:
允许跨域访问
CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing)。它允许浏览器向跨源(协议 + 域名 + 端口)服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。
简单来说,跨域问题是可以通过nginx来解决的,或者通过jsonp(只支持get请求)来解决。而SpringBoot中也提供了配置方法。
0.利用@CrossOrigin注解,可放至在类上或者方法上。类上代表整个控制层所有的映射方法都支持跨域请求。
@CrossOrigin(origins = "", maxAge = 3600) @RestController public class demoController{
@GetMapper("/")
public String index(){
return "hello,CORS";
} }
1.配置全局CORS配置。官网也有给出实例,具体如下:
@Configuration public class MyConfiguration {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**").allowedOrigins("");
}
};
} }
独立Tomcat运行
讲解了这么久,一般上我们都是通过jar包的方式进行启动的应用的。所以部署在独立的tomcat时,需要如何解决呢?其实也简单,只需要将项目打包方式修改为war包,然后修改下启动类配置即可。
0.修改pom打包方式为war,同时排除了内置的tomcat。
packagingwar/packaging !-- 排除内置的tomcat --
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-tomcat/artifactId
scopecompile/scope
/dependency !-- 若直接有使用servlet对象时(这是废话,⊙﹏⊙‖∣),需要将servlet引入,本例是没有的~ --
dependency
groupIdjavax.servlet/groupId
artifactIdjavax.servlet-api/artifactId
scopeprovided/scope
/dependency
1.改造下启动类,使其继承SpringBootServletInitializer,同时覆盖configure方法。
@SpringBootApplication @Slf4j public class ChapterApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(ChapterApplication.class, args);
// new SpringApplicationBuilder().sources(ChapterApplication.class).web(false).run(args);
//之后这里设置业务逻辑 比如挂起一个线程 或者设置一个定时任务。保证不退出
//不然它就是一个启动类,启动后就停止了。
log.info("jar,chapter启动!");
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
log.info("外部tomcat,chapter启动!");
return application.sources(ChapterApplication.class);
} }
2.maven打包成war(mvn clean install),然后放入tomcat中,启动运行即可。
其实这样设置的话,在开发时直接运行启动类也还是可以直接运行的,方便.
启动不设置端口
对一些定时任务服务项目,其本身只是提供一个定时调度功能,不需要其他服务调用,只是去调度其他服务。像这样的服务,正常也就不需要设置端口了。这时候SpringBoot也是支持的。只需要改下启动方式:
new SpringApplicationBuilder().sources(ChapterApplication.class).web(false).run(args);
//之后这里设置业务逻辑 比如挂起一个线程 或者设置一个定时任务。保证不退出
//不然它就是一个启动类,启动后就停止了。
或者修改配置文件的属性:
spring.main.web-environment=fals
最后效果,是不是没有看见端口了:
启动完成前进行业务逻辑
利用CommandLineRunner或者ApplicationRunner可实现在SpringApplication的run()完成前执行一些业务逻辑
0.修改启动类,实现CommandLineRunner接口,ApplicationRunner类似,只是run的入参不同而已。
@Override
public void run(String... args) throws Exception {
log.info("CommandLineRunner运行");
}
运行应用,注意查看控制台输出:
当然,直接申明一个bean也是可以的。
rConfig {
@Bean
public CommandLineRunner runner(){
return new CommandLineRunner() {
public void run(String... args){
log.info("CommandLineRunner运行2");
}
};
}
}
若多个时,可设置@Order来确定执行的顺序。
动态修改日志级别
通过org.springframework.boot.logging.LoggingSystem提供的api即可。
loggingSystem.setLogLevel(null, LogLevel.DEBUG);
如,默认时是info模式,未修改时,debug模式是不会输出的。
动态设置后:
热部署
前面讲了这么多章节,因为功能都很单一,所以一般上都是直接重启服务来进行更新操作。但当服务功能一多,启动速度缓慢时,还是配置个热部署比较方便。在SpringBoo中,只需要加入一个spring-boot-devtools即可。
dependencies
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-devtools/artifactId
optionaltrue/optional
/dependency
/dependencies
题外话:这里的optionaltrue/optional是表示依赖不会传递,依赖了此项目的需要额外引入此包,若需要使用的话。
若不生效,可试着在打包工具spring-boot-maven-plugin下的configuration加入forktrue/fork看看,具体配置项如下:
plugin
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-maven-plugin/artifactId
configuration
forktrue/fork
/configuration
/plugin
自定义启动Banner
看烦了自带的Banner,动手修改一个属于自己的Banner,提现逼格的时候到了~哈哈,以下是官网给的配置指南:
文字形式
其实,替换很简单,只需要在classpath路径下创建一个banner.txt即可。具体的一些变量官网也有给出,具体如下:
现在我们就定制一个自己的Banner。
_ _ _ _ __ _
| | | | | | | |/ / | |
| |__ ___ | | | | ___ ___ | ' / ___ _ __ __ _ | |
| '_ / _ | | | | / _ / _ | / _ | '_ / _` | | |
| | | | | __/ | | | | | (_) | _ | (_) | | . | (_) | | | | | | (_| | |_|
|_| |_| ___| |_| |_| ___/ ( ) ___/ |_|_ ___/ |_| |_| __, | (_)
|/ __/ |
|___/ ${AnsiColor.BRIGHT_RED} Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
题外话:手输字符画是不太现实的,大家可通过一些网站进行快速生成。可自行搜索下,网上一搜一大把。
图片形式
若觉得使用文字不够酷炫,当然也可以将图片设置为启动的banner。目前支持的图片格式有gif、png、jpg。使用也很简单,只需要命名为banner即可。
如将头像放入目录中,最后的效果如下:
当然,若图片是有色彩的,也是可以的,对于太复杂的图片显示效果就不佳了,如下。
原图:
原图
banner效果图:
原图
banner效果图:
Q3: Java程序员都用哪些idea插件?常用的?
界面UI相关的插件
1、BackgroundImagePlus
这款插件可以设置IDE的背景,可以设置成自己喜欢的图片,设置透明度等。让你在编程开发的同时也能赏心悦目。
2、MaterialThemeUI
这款插件可以设置不同的主题背景,包括文件、文件夹图标,代码样式等。
代码编辑相关的插件
1、CodeGlance
这款插件强烈推荐,是一款代码编辑区略缩图插件,可以迅速定位到代码,超级好用。
2、GenerateAllSetter
这款插件会根据new关键词,为所有的类生成所有Setter方法,并生成默认值。提高工作效率。
3、GsonFormat
这款插件可以把json格式的内容转成Object,也是非常实用。
4、CheckStyle-IDEA
这款插件通过检查对代码编码格式,命名约定,Javadoc,类设计等方面进行代码规范和风格的检查。
数据库方面的插件
1、MybatisLogPlugin
这款插件在开发的时候,会把Mybatis的脚本直接输出在console中,非常方便检查sql语句。
除了这些之外,还有其他的一些插件
阿里代码规约检测:AlibabaJavaCodingGuidelines
快捷键提示工具:KeypromoterX
代码注解插件:Lombok
代码生成工具:CodeMaker
代码质量检查工具:SonarLint
单元测试测试生成工具:JUnitGenerator
Mybatis工具:FreeMybatisplugin
字符串工具:StringManipulation
Redis可视化:Iedis
K8s工具:Kubernetes
中英文翻译工具:Translation
彩虹颜色括号:RainbowBrackets
Q4: idea阿里巴巴规范插件报错
等级调到Inspactions。idea是阿里巴巴所研发的代码规范插件,idea阿里巴巴规范插件报错等级调到Inspactions即可,规范基于《阿里巴巴Java开发手册》,在IntelliJ IDEA的插件管理中直接搜索Alibaba Java Coding Guidelines即可。
关于阿里巴巴java代码检测和阿里巴巴java编程手册的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







