整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

IDEA 2021首个大版本发布,Java开发者感动哭了(附新亮点演示)

欲善其事,必先利其器!

就在不久之前,Java领域的开发神器IntelliJ IDEA终于迎来2021年的一个重要的大版本更新:IntelliJ IDEA 2021.1

现如今大量的Java开发者深度依赖着这款开发软件,正如网上的段子所言:“可以毫不夸张地说,多少Java程序员离开了IDEA就不会写代码了(狗头)”,由此可见其使用的广泛程度。

新版本一出来,我也迫不及待地想尝试一番。当然,主力开发机我是不敢乱升级的,所以这两天,我在一台平时用来做测试的老开发本子上更新了全新的IDEA。

软件启动界面打开的那一瞬间,我就知道事情并不简单。


全新的启动页面

更新后,全新的启动页面更加花里胡哨了。

软件启动速度也是非常之快,就我这多年苦练的火箭般手速,都差点没截来下面这张启动页面图。


Space集成

JetBrains提供的Space这个功能不知道大家有没有听说过,讲白了就是一套集成的团队协作环境,可以提供包括构建交付、聊天协作、团队管理以及项目管理等在内的一整套协作一体化解决方案。

最新的IDEA 2021.1把Space环境给无缝地集成进来了,现在属于开箱即用的状态,软件的右上角就有快捷入口:


支持WSL 2

这个功能相信对于很多依赖Windows系统以及WSL功能的用户来说,简直是喜大普奔!

以前WSL就算再好用,但是你的IDE并没有和它打通,多少总是一个遗憾。

这下好了,二者直接打通了,IDEA支持WSL 2。你可以直接在新版IDEA 2021.1中运行并开发WSL 2中的Java项目,包括Gradle类型项目和Maven类型等项目均支持。


Run Targets

Run Targets这个功能的意思有点类似于上面刚聊过的WSL 2。它允许开发者直接在远程主机甚至在Docker容器上运行和调试项目。

所以到目前为止,新版IDEA 2021允许开发者可以在本地、WSL 2、SSH远程主机、Docker等目标上运行项目,可以说贼香了!


支持Java 16

这也算是一个比较重磅的更新。

近两年来,Java版本的发布速度也是快如老狗,我还在用Java 8,它都淦到Java 16了。

关于Java 16的新特性,我还准备写篇文章来详细聊一聊呢,包括比如:

  • Records特性转正
  • instanceof模式匹配转正
  • jpackage转正
  • Unix域套接字通道
  • 弹性Metaspace
  • ZGC
  • 矢量API
  • 外部链接API
  • ...

这次IDEA 2021版的一个很重要的更新就是加入了对Java 16的基本支持,注意是基本支持。

除此之外IDEA还新增了几项检查机制,典型比如更加智能的数据流分析检查。

链式构造方式的优化格式设置等等。

目的都是为了帮助提升可读性,进一步提升用户体验。


Code With Me

Code With Me是一项用于协作开发与结对编程的服务,可以实Host-Guest模式的“手摸手”(滑稽)结对编程和群体编程。

目前,新版IDEA开箱即用地支持了Code With Me功能,同时它还具有音频通话和视频通话功能,可以满足随时随地的沟通需求,这操作简直骚到爆。

版本控制

版本控制这一块目前做了不少的更新,包括可以更快地完成PR的创建提交,支持PR模板。

变更提交至代码库前的自定义代码检查配置。

以及支持自定义Git提交模板等等。


其他用户体验提升

IDEA内置HTML网页预览

以前在IDEA中预览网页得跳到外部浏览器,而现如今IDE的编辑器内部就支持Built-in级别的网页预览,只需要在右上角点那个IDEA小图标即可激活,而且可以编辑网页源码时做到同步更新和预览。

Windows版本任务栏增强

在Windows平台的新版IDEA上,可直接在任务栏(或开始菜单)上右键快捷呼出最近使用的项目。

搜索时自定义外部依赖项

讲白了,就是使搜索范围更易于自定义,我们可以直接在设置中进行Scope定义,自行选择External Dependencies的范围是否包含。

窗口拆分优化

当你对编辑器里的多个文件进行垂直窗口拆分时,双击某个Tab就可以将当前文件窗口最大化,再次双击Tab则会还原。


当然除了这些之外,新版IDEA还新增了很多更新和增强,比如:对Kotlin、Scala、JavaScript等语言的开发优化、对常见框架与技术的优化和支持、对Kubernetes和Docker的更新支持和改进、数据库工具的更新支持等等,由于时间有限,在此就不一一赘述了,有需要的可以按需细究。

最后,让我们一起大喊一句:“IDEA,yyds!”

作者:dulk
来源:www.cnblogs.com/deng-cc/p/6416332.html

、项目配置的理解

IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行。最近公司正好也是用之前自己比较熟悉的IDEA而不是Eclipse,为了更深入理解和使用,就找来各种资料再研究一下,这里整理后来个输出。

1.1 Project

  1. Project name:定义项目的名称;
  2. Project SDK:设置该项目使用的JDK,也可以在此处新添加其他版本的JDK;
  3. Project language level:这个和JDK的类似,区别在于,假如你设置了JDK1.8,却只用到1.6的特性,那么这里可以设置语言等级为1.6,这个是限定项目编译检查时最低要求的JDK特性;
  4. Project compiler output:项目中的默认编译输出总目录,如图黄色部分,实际上每个模块可以自己设置特殊的输出目录(Modules - (project) - Paths - Use module compile output path),所以这个设置有点鸡肋。

1.2 Modules

1.2.1 增删子项目

一个项目中可以有多个子项目,每个子项目相当于一个模块。一般我们项目只是单独的一个,IntelliJ IDEA 默认也是单子项目的形式,所以只需要配置一个模块。

(此处的两个项目引入仅作示例参考)

1.2.2 子项目配置

每个子项目都对应了Sources、Paths、Dependencies 三大配置选项:

  • Sources:显示项目的目录资源,那些是项目部署的时候需要的目录,不同颜色代表不同的类型;
  • Paths:可以指定项目的编译输出目录,即项目类和测试类的编译输出地址(替换掉了Project的默认输出地址)
  • Dependencies:项目的依赖

1.2.3 增删框架(Web部署-1)

每个子项目之下都可以定义它所使用的框架,这里重点说明一下Web部分的设置。

1.3 Libraries

这里可以显示所添加的jar包,同时也可以添加jar包,并且可以把多个jar放在一个组里面,类似于jar包整理。

这里默认将每个jar包做为了一个单独的组(未测试,待定)。

1.4 Facets

官方的解释是:

When you select a framework (a facet) in the element selector pane, the settings for the framework are shown in the right-hand part of the dialog.

(当你在左边选择面板点击某个技术框架,右边将会显示这个框架的一些设置)

说实话,并没有感觉到有什么作用。

1.5 Artifacts(Web部署-2)

项目的打包部署设置,这个是项目配置里面比较关键的地方,重点说一下。

先理解下它的含义,来看看官方定义的artifacts:

An artifact is an assembly of your project assets that you put together to test, deploy or distribute your software solution or its part. Examples are a collection of compiled Java classes or a Java application packaged in a Java archive, a Web application as a directory structure or a Web application archive, etc.

即编译后的Java类,Web资源等的整合,用以测试、部署等工作。再白话一点,就是说某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式。某个module有了 Artifacts 就可以部署到应用服务器中了。

jar:Java ARchive,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便分发Java平台应用软件或库;

war:Web application ARchive,一种JAR文件,其中包含用来分发的JSP、Java Servlet、Java类、XML文件、标签库、静态网页(HTML和相关文件),以及构成Web应用程序的其他资源;

exploded:在这里你可以理解为展开,不压缩的意思。也就是war、jar等产出物没压缩前的目录结构。建议在开发的时候使用这种模式,便于修改了文件的效果立刻显现出来。

默认情况下,IDEA的 Modules 和 Artifacts 的 output目录已经设置好了,不需要更改,打成war包的时候会自动在 WEB-INF目录下生成classes,然后把编译后的文件放进去。

你可能对这里的输出目录不太理解,之前不是配置过了文件编译的输出目录了吗?为什么这里还有一个整合这些资源的目录呢?它又做了哪些事呢?

其实,实际上,当你点击运行tomcat时,默认就开始做以下事情:

  • 编译,IDEA在保存/自动保存后不会做编译,不像Eclipse的保存即编译,因此在运行server前会做一次编译。编译后class文件存放在指定的项目编译输出目录下(见1.2.2);
  • 根据artifact中的设定对目录结构进行创建;
  • 拷贝web资源的根目录下的所有文件到artifact的目录下(见1.2.3);
  • 拷贝编译输出目录下的classes目录到artifact下的WEB-INF下(见1.2.2);
  • 拷贝lib目录下所需的jar包到artifact下的WEB_INF下;
  • 运行server,运行成功后,如有需要,会自动打开浏览器访问指定url。

在这里还要注意的是,配置完成的artifact,需要在tomcat中进行添加:

all-admin-web

前言

该项目为前后端分离项目的前端部分,后端项目mall地址:传送门。

项目介绍

mall-admin-web是一个电商后台管理系统的前端项目,基于Vue+Element实现。 主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等功能。

项目演示

项目在线演示地址:http://39.98.190.128/index.html

项目布局

src -- 源码目录
├── api -- axios网络请求定义
├── assets -- 静态图片资源文件
├── components -- 通用组件封装
├── icons -- svg矢量图片文件
├── router -- vue-router路由配置
├── store -- vuex的状态管理
├── styles -- 全局css样式
├── utils -- 工具类
└── views -- 前端页面
 ├── home -- 首页
 ├── layout -- 通用页面加载框架
 ├── login -- 登录页
 ├── oms -- 订单模块页面
 ├── pms -- 商品模块页面
 └── sms -- 营销模块页面

搭建步骤

  • 下载node并安装:https://nodejs.org/dist/v8.9.4/node-v8.9.4-x64.msi;
  • 该项目为前后端分离项目,访问本地访问接口需搭建后台环境,搭建请参考后端项目传送门;
  • 访问在线接口无需搭建后台环境,只需将config/dev.env.js文件中的BASE_API改为http://39.98.190.128:8080即可;
  • 克隆源代码到本地,使用IDEA打开,并完成编译;
  • 在IDEA命令行中运行命令:npm install,下载相关依赖;
  • 在IDEA命令行中运行命令:npm run dev,运行项目;
  • 访问地址:http://localhost:8090 即可打开后台管理系统页面;
  • 如果遇到无法运行该命令,需要配置npm的环境变量,如在path变量中添加:C:\Users\zhenghong\AppData\Roaming\npm。

https://github.com/macrozheng/mall-admin-web