IntelliJ IDEA

好物推荐|下载超过 23w 次的 IDE 插件,让效率飞速提升

爷,独闯天下 提交于 2020-08-11 11:32:29
日常开发运维的过程中,我们总是会遇到各样重复性劳动而这些工作占据了我们大量时间。 我们一定都经历过这样的场景: 每一次产品迭代更新,都要一遍遍 「打包-上传-登录服务器-替换-部署-重启」 重复的类似工作; 在本地 IDE、云产品控制台、Git/SVN、Maven/Gradle、镜像仓库、ECS、容器等多个产品间来回切换; 研发过程中,想要找到一些提升效率的代码管理、自动化测试等等工具,需要自己在各种插件市场挨个踩雷,也不知道好不好用,耗时耗力; 日常遇到研发运维问题时,找不到相关社区/社群去帮助解决技术问题,可能一个微不足道的小问题就困扰了我们很久。 在结合对超过 1000 位开发者的需求调研后,我们为了帮助大家打造了这样的 IDE 插件工具-- Cloud Toolkit 去解决上述问题。Cloud Toolkit 作为阿里云发布的免费本地 IDE 插件,希望帮助开发者更高效地开发、测试、诊断并部署应用。而到现在 Cloud Toolkit 的下载量已超过 23w 人次,成为了众多开发者的共同选择,到底是什么让 Cloud Toolkit 深受开发者喜爱? 一键式部署,有效提升部署速度 8 倍以上 支持标准 SSH 协议,无需在一系列运维工具之间切换,只需在图形界面上选择目标服务器,即可实现应用快速部署。一键部署至任意服务器及云端(ECS、EDAS、ACK、ACR、小程序云等)

一张图搞懂Spring bean的完整生命周期

ぐ巨炮叔叔 提交于 2020-08-11 10:45:23
一张图搞懂Spring bean的生命周期,从Spring容器启动到容器销毁bean的全过程,包括下面一系列的流程,了解这些流程对我们想在其中任何一个环节怎么操作bean的生成及修饰是非常有帮助的。 Bean的完整生命周期所用到的组件大概可以分为以下几类: 1、Bean级别的接口 Bean自身定义的方法或者实现了接口的方法,即init-method和destroy-method指定的方法,还有实现了BeanNameAware,BeanFactoryAware,InitializingBean,DiposableBean等接口的方法。 2、容器全局后处理器接口 包括了BeanFactoryPostProcessor,InstantiationAwareBeanPostProcessor,BeanPostProcessor这两个接口,它们是容器全局级别的接口。 推荐去我的博客阅读更多: 1. Java JVM、集合、多线程、新特性系列教程 2. Spring MVC、Spring Boot、Spring Cloud 系列教程 3. Maven、Git、Eclipse、Intellij IDEA 系列工具教程 4. Java、后端、架构、阿里巴巴等大厂最新面试题 觉得不错,别忘了点赞+转发哦! 来源: oschina 链接: https://my.oschina.net/javaroad

Arthas | 定位线上 Dubbo 线程池满异常

我是研究僧i 提交于 2020-08-11 10:32:54
作者 | 徐靖峰 阿里云高级开发工程师 前言 Dubbo 线程池满异常应该是大多数 Dubbo 用户都遇到过的一个问题,本文以 Arthas 3.1.7 版本为例,介绍如何针对该异常进行诊断,主要使用到 dashboard / thread 两个指令。 推荐使用 Arthas 方式一: 推荐使用 IDEA 插件下载 Cloud Toolkit 来使用 Arthas Cloud Toolkit 是阿里云发布的免费本地 IDE 插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,可以将本地应用一键部署到任意服务器,甚至云端(ECS、EDAS、ACK、ACR 和 小程序云等);并且还内置了 Arthas 诊断、Dubbo工具、Terminal 终端、文件上传、函数计算 和 MySQL 执行器等工具。不仅仅有 IntelliJ IDEA 主流版本,还有 Eclipse、Pycharm、Maven 等其他版本。 方式二: 直接下载 Dubbo 线程池满异常介绍 理解线程池满异常需要首先了解 Dubbo 线程模型,官方文档: http://dubbo.apache.org/zh-cn/docs/user/demos/thread-model.html 。 简单概括下 Dubbo 默认的线程模型:Dubbo 服务端每次接收到一个 Dubbo 请求,便交给一个线程池处理,该线程池默认有

Hibernate 与 Mybatis 如何共存?打破你的认知!

折月煮酒 提交于 2020-08-11 10:07:37
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 很长一段时间,网上有很多关于Hibernate与Mybatis孰优孰劣的争论,两个阵营的人谁也不能说服谁,每个人的理由都很有道理。 今天,我分享的主题是:在一个项目中同时使用Hibernate和Mybatis两个ORM框架。 作为一个开发者,没有必要花费过多的时间去证明技术无用论,当你开始指责某个框架垃圾,另外一个框架最好时,隐性的暴露出你对某个框架没有深入的研究,无知的指责对于技术的提升没有任何的帮助。 框架本身没有对错一说,只有适合和更适合项目的选择。任何框架都有自身的能力范围,就拿Hibernate和Mybatis这两个ORM框架来说。 Hibernate封装了很多有用的API给开发者,降低了操作数据库的难度和复杂度,同时也减少了模板代码的数量,但Hibernate留给开发者可操作的空间相对Mybatis少了很多。 Mybatis框架使用起来很灵活,开发者可以自定义查询语句,但增加了模板代码的数量,看起来没有Hibernate那么便捷。 两种框架在便捷与灵活两个指标上做出了取舍与妥协,这不能说是框架的错。对于一个框架而言,需要有自身专注的领域和设计愿景,不可能面面俱到。 使用任何一种技术框架,都需要贴合现实的业务需求以及自身的技术能力

SpringBoot下实现热部署

人盡茶涼 提交于 2020-08-11 09:02:45
前提: 1. SpringBoot框架已经搭好。 2. IDEA。 1. pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> dependency放到dependencies下,plugin放到plugins下(build -> plugins) 2. application.yml spring: devtools: restart: enabled: true exclude: WEB-INF/** 3. 设置IDEA Mac: 1) IntelliJ IDEA -> Preferences -> Build,.... -> Compiler -> Build project automatically。 2)

Eclipse Gradle 构建多模块项目

醉酒当歌 提交于 2020-08-11 09:00:01
注意:   1.Eclipse不如IDEA智能,Eclipse建立的Gradle Project项目在目录级别上是同级的;   2.user-web模块如果要引用user-service模块,直接引用是找不到的,找到上一级目录引用,示例代码 project(':user-service').projectDir = new File(settingsDir, '../user-service');   3.user-parent模块中subprojects中闭包是用个对user-parent中所有include进来的子模块生效的;   4.学习Gradle之间适当了解Groovy语言,并且多看Gradle官方文档;   5.这里无法传源码,要源码加群。 来源: oschina 链接: https://my.oschina.net/u/4415385/blog/4299633

快乐就队——Alpha冲刺问题总结&事后诸葛亮

寵の児 提交于 2020-08-11 08:54:20
设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 答:主要是提供一个一站式通知发布、接收平台以及简单的备忘录功能,详见需求规格说明书。 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?) 答:后端功能基本完成,错误处理待完善。前端还有部分功能没完成,以及界面布局需要优化。 和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的? 答:在进度管理和工作安排上有提高,体现在贡献度的计算有公式可依。 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么? 答:目前还没有给小组外的用户测试使用,但我们觉得离目标更近了。 有什么经验教训? 如果历史重来一遍, 我们会做什么改进? 答:在制定Alpha阶段的计划时,我们对于工作量的估计过于理想,出现了一些偏差,导致项目没能完成预期的任务。在改进上我们会完善前后端的错误处理。 计划 是否有充足的时间来做计划? 答:有比较充足的时间做计划。 团队在计划阶段是如何解决同事们对于计划的不同意见的? 答:开会讨论解决,没有出现比较大的不同意见。 你原计划的工作是否最后都做完了? 如果有没做完的,为什么? 答:前端有个别模块功能没有完成,是因为冲刺前工作细化不够到位。

JVM 异常表及 try-catch-finally 字节码分析

牧云@^-^@ 提交于 2020-08-11 07:23:31
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 作为一个“有经验”的 Java 工程师,你一定知道什么是try-catch-finally代码块。但是你知道 JVM 是如何处理异常的吗?今天我们就来讲讲异常在 JVM 中的处理机制,以及字节码中异常表。 希望在这之后,不会有人再将下面这张表情包发给你…… 环境介绍 jdk 1.8.0_151 IntelliJ IDEA 及 jclasslib 插件 字节码中的 try-catch Talk is cheap, show you my code! 反编译后的字节码 首先我编写了第一段测试代码,这里有一个 try-catch 代码块,每个代码块中都有一行输出,在 catch 代码块中捕获的是 Exception 异常。 然后在命令行中先定位到这个类的字节码文件目录中,执行主方法后敲下javap -c 类名进行反编译,或者直接在编译器中选择Build Project,然后打开 jclasslib 工具就可以看到这个类的字节码。 我选择了第二个方法,主方法的字节码如下图: 可以看到0~3行是 try 代码块中的输出语句,12~17行是 catch 代码块中的输出语句。然后重点来了。 第8行的字节码是8 goto 20,这是什么意思呢?没错,盲猜就能猜到