Java开发工具的历史变迁

JCreator

Jcreator是荷兰的Xinox Software公司开发的一个用于Java程序设计的集成开发环境(IDE),该公司成立于2001年;

官方网站:http://www.jcreator.com/

JBuilder

JBuilder是Borland公司开发的针对Java的集成开发工具,该工具是收费的;

Borland公司成立于1983年,总部位于美国加州;

JBuilder 当时在Java集成开发工具中风靡一时,但不久后也逐步被新的工具所打败;

2009年5月6日,英国软件商Micro Focus宣布以7500万美元现金收购Borland软件公司;

eclipse

Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的新一代Java集成开发环境;

2001年11月IBM将Eclipse贡献给开源社区,后来一直由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理,直到现在;

myeclipse

由美国Genuitec公司开发一款的基于Eclipse的Java开发集成环境,该公司成立于1997年;

MyEclipse Enterprise Workbench于2003年的推出,该工具是收费的;

官方网站:http://www.genuitec.com/

MyEclipse,是在eclipse基础上加上自己的插件开发而成的功能强大的企业级Java集成开发环境,主要用于Java、Java EE以及移动应用的开发;

MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源框架和技术支持相当不错;

netbeans

NetBeans是Sun公司(2009年被甲骨文收购)在2000年创立的开放源代码的供开发人员开发Java程序的集成开发环境;

NetBeans是一个始于1997年的一个大学学生计划,该计划后来发展成立了一家公司,进而推出一个商用版本的NetBeans;

1999年Sun公司收购了此公司,并于2000年6月将NetBeans作为开源项目对外发布;

Intellij IDEA

IntelliJ IDEA简称IDEA,它是 JetBrains 公司下的Java集成开发环境,在业界被公认为是最好的Java开发工具之一;

JetBrains是捷克的一家软件公司,该公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主,旗下开发了多款软件开发工具;

官方网站:https://www.jetbrains.com/

Intellij IDEA工具已经有很长的历史了,2001年1月发布IntelliJ IDEA 1.0版本,只是一直没有被大量使用;

IntelliJ IDEA以前是收费软件,不过在2009年以后开始推出了免费的社区开源版本;

目前IntelliJ IDEA有免费的社区版(功能相对较少),和收费的旗舰版(功能比较全面);

JetBrains下的产品

IntelliJ IDEA

主要是针对 Java 的集成开发工具;

AppCode

主要针对 Objective-C / Swift 的集成开发工具;

CLion

主要针对 C / C++ 的集成开发工具;

GoLand

主要是针对 Go 语言的集成开发工具;

PhpStorm

主要是针对 PHP 的集成开发工具;

PyCharm

主要是针对 Python 的集成开发工具;

RubyMine

主要是针对 Ruby 的集成开发工具;

WebStorm

主要是针对 JavaScript、HTML5、CSS3 等前端技术的集成开发工具;

Rider

主要是针对 .net 的集成开发工具;

DataGrip

主要是数据库可视化的连接和操作工具;

Idea的特点

IntelliJ IDEA 主要用于支持 Java 语言的开发工具,支持目前几乎所有的主流技术和框架,擅长于企业应用、移动应用和 Web 应用的开发;

IntelliJ IDEA 非常地人性化、智能化,可自我定制,开发效率极高;

Idea版本

IntelliJ IDEA 分为“旗舰版”和“社区版”;

旗舰版(Ultimate Edition)为收费版本,功能强大,有30天免费试用期;

社区版(Community Edition)为免费版本,功能较旗舰版少了很多,可一直免费使用;

一般地,IntelliJ IDEA 大版本为一年迭代一次,大版本下的小版本迭代时间不固定,快则一个月,慢则两至三月迭代一次;

目前最新版本为:IntelliJ IDEA 2018.2.4

Idea使用前置说明

1、由于Idea在亚洲没有设服务器,所以在使用idea过程中,比如访问插件库、更新版本等操作时可能出现一些问题,这是由于网络问题导致的;

2、Idea 对硬件的基础要求虽然不是很高,但在实际的开发中,特别是开发大型 Java Web 项目时,2G 内存基本上不够用,4G内存可以使用,就是会比较卡顿,最好是 8G 内存或是以上;

3、Idea与eclipse在使用上有一些区别,我们需要转化思维,不能按照eclipse的方式去学习Idea;

4、由于我们一直以来习惯了eclipse,所以我们在学习idea的时候,可能有一段时间不适应,甚至产生放弃的念头,这也是正常的,坚持几天就好了;

Idea的下载安装

官方网站下载:https://www.jetbrains.com/

Idea的下载包有两种格式:一个是exe的安装版,一个是zip的解压缩版;

exe格式的安装版需要安装,而zip格式的解压缩版不需要安装,直接解压即可使用;

推荐使用zip的解压缩版,直接解压即可使用,方便;

Idea目录结构

Idea解压后的目录结构如下:

bin 是 IDEA 的可执行程序目录;

help 是 IDEA 的帮助文件目录;

jre32 是IDEA自带的32位JRE环境;

jre64 是IDEA自带的64位JRE环境,故IDEA可在未安装 JDK 的计算机上进行Java语言的开发;

lib 是IDEA依赖的库文件目录,里面有很多的 Jar 文件;

license 是 IDEA 的许可证文件目录;

plugins 是IDEA的插件目录;

redist 是IDEA中索引机制所依赖的redist库目录;

两个 .txt 说明文件和一个注册表文件;

Idea启动运行

如果电脑是32位,则双击idea.exe启动运行idea,如果是64位则双击idea64.exe启动运行;

1、让你选择是否导入已经存在的旧配置信息;

2、让你选择Idea的主题颜色;

3、设置支持的框架,可以自定义,没有选择的将不支持,但可以后面在插件一栏中再加上;

4、进入Idea创建Project界面;

命令 Create New Project 创建一个新项目;

命令 Import Project 导入一个已有项目;

命令 Open 打开一个已有项目;

命令 Check out from Version Control 可以通过服务器上的项目地址 Checkout Github 上面项目或是其他 Git 托管服务器上的项目;

注:Idea启动后默认会在C:\Users\电脑用户名\.IntelliJIdea2017.3用户目录下创建配置和缓存索引信息目录;

创建Project

通常第一次使用idea,我们会选择创建一个project;

第一次启动使用idea,这里创建的project实际上等价于创建一个工作空间,所以我们通常选择创建一个空的project;

Project与Mudoule

IntelliJ IDEA 是没有类似 Eclipse 的工作空间的概念(workspaces ),Idea最大单元就是 Project;

如果你想同时打开多个项目,IntelliJ IDEA 提供的解决方案是打开多个项目实例,也就是打开多个Idea,也就是启动多个idea,这样的话,当然不是很方便;

所以,我们要在一个idea中看多个项目,则通过创建一个空的project作为工作空间,然后在该空的project下创建多个module作为我们的项目工程;

Idea的界面介绍

菜单栏

工具条

导航条

左侧导航区域

中间编辑操作区域

右侧导航区域

底部导航区域

-----------------------------------idae 的应用-------------------------------------------

创建Java项目

建议在一个空的Project下创建我们的Java项目,也就是说我们在一个空的Project下创建一个Java module;

方式:在菜单栏File-->New-->Module-->Java

项目配置说明

.iml为模块module的配置文件;

.idea为工程Project的配置文件;

IntelliJ IDEA 是一个没有 Ctrl + S (保存)的 IDE,所以每次修改完代码你只管运行或调试即可,无需担心保存或者丢失代码问题;

虽然IntelliJ IDEA不需要按Ctrl + S 保存代码,但对于代码的错误检查也是实时的,无需担心代码编译问题;

如果需要整体编译项目,则需要手动build一下;

在菜单栏File-->project结构下设置sdk,紧接着还可以设置语言级别,java8还是java9等,当然sdk选择要和语言级别选择保持版本一致;

Idea字体编码设置

通过菜单中的 File -->Settings 进行设置(IntelliJ IDEA基本所有设置都在该菜单下);

字体设置

主题的字体一般不建议修改,主题就是指整个Idea工具;

代码开发的编辑器的字体建议修改,在Editor下的Font选项修改,建议18号字;

编码设置

文件编码及工程编码设置,在Editor下的File Encodings选项进行修改,建议全部改为UTF-8;

Java项目打jar包

在菜单栏File-->Project Structure

1、配置Module的依赖,在右侧Dependencies下添加该Java项目依赖的第三方jar(如果没有不用添加);

2、配置Artifacts,在中间区域选择添加+符号-->从模块和依赖,选择模块和主类,选择拷贝到输出目录;

3、在菜单栏Build-->Build Artifacts... 选择刚才创建的Artifact,点OK将在输出目录下生成jar文件;

创建web项目

创建一个Module

选择Java Enterprise,选择Java EE8(或者Java EE 7/6),选择创建web.xml (此处有小bug,可能web.xml不能出现)

配置tomcat

在菜单栏 run-->Edit Configurations下设置,可以设置tomcat,端口,jvm等,可以配多个tomcat;

启动tomcat,点击绿色三角形箭头即可;

停止tomcat点击红色方形的按钮,停止按钮点击后有可能没有停止,通常会出现一个骷髅头表示没有停止,可以再点击一次;

有时候即使点了两次,Tomcat 容器也不一定能完全停掉,这时候很容易出现端口被占用,这时候你需要打开系统的资源管理器,手动 kill 系统上所有的 Java 进程;

Idea上的web部署

通常在开发的时候,我们的web项目部署到tomcat下调试运行,进行代码的开发,

idea开发web项目,并在idea工具中部署到tomcat下的步骤如下:

部署tomcat前,先配置好actifacts,

在菜单栏File -->project Structure-->Actifacts下选择添加+下的Web Application:Exploded -->From Module

在tomcat的Deployment下添加配置的Actifacts,并设置Application context

Idea打war包

打开Project Structure

配置Module的依赖,在右侧Dependencies下添加依赖的jar;

配置Artifacts,在菜单栏File -->project Structure-->Actifacts下选择添加+下的Web Application:Archive -->for xxx

在菜单栏Build-->Build Artifacts... 选择刚才创建的Artifact,点OK将在输出目录下生成war文件

Idea的索引与缓存

IntelliJ IDEA 首次加载项目的时候,都会创建索引,而创建索引的时间跟项目的文件多少成正比;在 IntelliJ IDEA 创建索引过程即使你编辑了代码也是编译不了、运行不起来的,所以建议等IntelliJ IDEA 创建索引完成后再操作;

IntelliJ IDEA 的缓存和索引主要是用来加快文件查询,从而加快各种查找、代码提示等操作的速度;

但是在某些特殊条件下,IntelliJ IDEA 的缓存和索引文件也是会损坏的,比如断电、强制关机等,当重新打开 IntelliJ IDEA,很可能 IntelliJ IDEA 会报各种莫名其妙错误;

遇到此类问题,通过File-->Invalidate Cache and Restart清除缓存即可解决,一般建议点击 Invalidate and Restart,这样会比较干净;

索引文件所在目录地址:C:\Users\当前登录的系统用户名\.IntelliJIdea14\system

如果不用上述方法也可以删除整个 system来清除索引和缓存,当 IntelliJ IDEA 再次启动项目的时候会重新创建新的 system 目录以及对应项目缓存和索引;

Idea删除项目

idea删除项目或模块是无法物理删除的,只是逻辑上的删除,

要真正删除则需要进入所在目录,在磁盘上手动删除;

Idea代码模板设置

IntelliJ IDEA 默认新建类自带的类注释格式一般不够友好或是规范,所以我们一般需要自己根据公司编码规范进行设置;

菜单栏File-->Settings-->Editor-->File and Code Templates 下进行设置;

选择不同的文件类型进行设置;

实时代码模板

在菜单栏File--Settings -->Editor 下的Live Templates下,比如输入sout即为System.out.println()打印;

还可以自定义实时代码模板;

maven设置

在File-->Build,Execution,Deployment -->Build Tools下可以设置maven;

可以指定 Maven安装主目录,maven的settings.xml位置和本地仓库位置;

创建maven项目

创建项目,可以选择不使用Maven提供的插件方式创建maven项目骨架,也可以选择使用比如xx-webapp,xxx-war的方式创建项目骨架;

maven项目编译和打包,在工作空间的右侧,展示maven projects区域,在lifecycle下展开双击对应的生命周期命令即能进行对应的操作;

maven的展开区域中还有一些功能按钮,比如可以查看jar包依赖关系等;

Idea插件的使用

IntelliJ IDEA 本身很多功能也都是通过插件的方式来实现的,IntelliJ IDEA 本身就开发了大量的插件集成到Idea工具中,也就是说Idea安装好之后就自带了很多优秀的插件;

官网插件库:https://plugins.jetbrains.com/

在菜单栏File -->Settings -->Plugins打开插件窗口;

IntelliJ IDEA 对插件进行了很好的分类:

All plugins 显示所有插件;

Enabled 显示当前所有已经启用的插件;

Disabled 显示当期那所有已经禁用的插件;

Bundled 显示所有 IntelliJ IDEA 自带的插件;

Custom 显示所有我们自行安装的插件,如果你自己装了很多次插件的话,这个选项会用得比较多;

启用的插件是被勾选的,如果要禁用一个插件,去掉勾选即可;

下面还有插件仓库,是idea官方提供的,可以下载安装,当然也可以从本地磁盘安装插件,浏览本地的插件文件进行安装,而不是从服务器上下载并安装;

由于插件仓库在国外,可能会出现显示不了插件列表,或是显示了插件列表,无法下载完成安装,这时候可以多试几次或者换个时间下载安装;

Idea安装MyBatis插件

MyBatis plugin插件,但这个插件是收费插件,不能直接使用;

Free Mybatis plugin,可以免费使用,可以用依稀这个插件;

IntelliJ IDEA配置Mybatis自动代码生成

配置一个插件:

<build>

<plugins>

<plugin>

<groupId>org.mybatis.generator</groupId>

<artifactId>mybatis-generator-maven-plugin</artifactId>

<version>1.3.6</version>

<configuration>

<!--配置文件的位置-->

<configurationFile>src/main/resources/GeneratorMapper.xml</configurationFile>

<verbose>true</verbose>

<overwrite>true</overwrite>

</configuration>

</plugin>

</plugins>

</build>

配置代码生成文件:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE generatorConfiguration

PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>

<!-- 指定连接数据库的JDBC驱动包所在位置,指定到你本机的完整路径 -->

<classPathEntry location="C:/Users/jimly/.m2/repository/mysql/mysql-connector-java/5.1.44/mysql-connector-java-5.1.44.jar"/>

<!-- 配置table表信息内容体,targetRuntime指定采用MyBatis3的版本 -->

<context id="tables" targetRuntime="MyBatis3">

<!-- 抑制生成注释,由于生成的注释都是英文的,可以不让它生成 -->

<commentGenerator>

<property name="suppressAllComments" value="true" />

</commentGenerator>

<!-- 配置数据库连接信息 -->

<jdbcConnection driverClass="com.mysql.jdbc.Driver"

connectionURL="jdbc:mysql://192.168.230.128:3306/p2padmin"

userId="root"

password="123456">

</jdbcConnection>

<!-- 生成model类,targetPackage指定model类的包名, targetProject指定生成的model放在eclipse的哪个工程下面-->

<javaModelGenerator targetPackage="com.bjpowernode.p2p.admin.model" targetProject="src/main/java">

<property name="enableSubPackages" value="false" />

<property name="trimStrings" value="false" />

</javaModelGenerator>

<!-- 生成MyBatis的Mapper.xml文件,targetPackage指定mapper.xml文件的包名, targetProject指定生成的mapper.xml放在eclipse的哪个工程下面 -->

<sqlMapGenerator targetPackage="com.bjpowernode.p2p.admin.mapper" targetProject="src/main/java">

<property name="enableSubPackages" value="false" />

</sqlMapGenerator>

<!-- 生成MyBatis的Mapper接口类文件,targetPackage指定Mapper接口类的包名, targetProject指定生成的Mapper接口放在eclipse的哪个工程下面 -->

<javaClientGenerator type="XMLMAPPER" targetPackage="com.bjpowernode.p2p.admin.mapper" targetProject="src/main/java">

<property name="enableSubPackages" value="false" />

</javaClientGenerator>

<!-- 数据库表名及对应的Java模型类名 -->

<table tableName="u_permission_info"

domainObjectName="PermissionInfo"

enableCountByExample="false"

enableUpdateByExample="false"

enableDeleteByExample="false"

enableSelectByExample="false"

selectByExampleQueryId="false"/>

</context>

</generatorConfiguration>

配置Maven运行

mybatis-generator:generate -e

Idea中的代码调试

F7:在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中

F8:在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内

F9:在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上

Alt + F8:在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果

查看所选对象的方法常用有三种方式:

选中对象后,使用快捷键 Alt + F8

选中对象后,拖动对象到 Watches

选中对象后,鼠标悬停在对象上 2 秒左右

Idea的搜索

类的搜索

在菜单栏的Navigate下的Class...

文件的搜索

在菜单栏的Navigate下的File...

全部搜索

在菜单栏的Edit-->Find--Find in path

在工具条最右侧的搜索图标按钮,点击打开;

连续按两次Shift键;

上面所有的搜索框被调出来后,按esc键取消;

Postfix Completion

后缀自动完成:

fori

100.fori

sout

new User().sout 即可打印出user对象

nn

判断多少不等于null, user.nn

return

user.return

查看类的方法和字段大纲

打开当前类,点击左侧的结构大纲即可查看;

查看类的方法调用层级

右键该方法,Find Usages 或者按快捷键:Alt + F7

Idea查看接口的实现类

点击接口左侧的绿色圆点, 出现的列表就是该接口被实现的类;

查看接口中方法的实现,也是点击接口方法前面的绿色圆点; (快捷键:Ctrl+Alt+B)

Idea自动导入包

在使用idea开发java项目的时候,经常需要导入jdk或者是第三方类库的类,我们知道,在Idea中导入第三方的类,通过 Alt + Enter快捷键,但是这样自己手工导入的话,非常麻烦,效率很低,Idea提供了更高效的方式;

在菜单栏File-->Settings-->Editor-->General-->Auto Import 下设置:

选项1,IntelliJ IDEA 将在我们书写代码的时候自动帮我们导入需要用到的包,但是对于那些同名的包,还是需要手动 Alt + Enter 进行导入;

选项2,IntelliJ IDEA 将在我们书写代码的时候自动帮我们优化导入的包,比如自动去掉一些没有用到的包;

Idea常用快捷键

Ctrl + Y 删除光标所在行 或 删除选中的行;

Ctrl + X 剪切光标所在行 或 剪切选择内容;

Ctrl + F 在当前文件中进行文本查找

Ctrl + R 在当前文件中关进行关键词替换;

Ctrl + C 复制

Ctrl + V 粘贴

Ctrl + Z 撤销

Ctrl + G 在当前文件跳转到指定的行

Ctrl + / 注释光标所在行代码,会根据当前不同文件类型使用不同的注释符号;

Ctrl +Shift + / 多行代码注释;

Alt + Insert 代码自动生成,如生成对象的 set / get 方法,构造方法,toString() 等;

Ctrl + Alt + L 格式化代码,可以对当前文件和整个包目录使用;

Ctrl + Shift + / 代码块注释;

Alt + Enter 导入引用的jar中的类;

ctrl +shift + alt +j 选中当前文件中的所有相同的词或字符,可直接对其进行一次性全部修改;

Shift + F6 重构代码,重命名等;

Shift + Tab 代码往前缩进;

Ctrl + Alt + O 优化导入的类,清理无用的导入;

Ctrl + Shift + U 对选中的代码进行大/小写交替转换;

Java IDE的历史变迁及idea的使用的更多相关文章

  1. Java内存模型的历史变迁

    转自:http://www.csdn.net/article/2015-05-20/2824722-Java 摘要:本文通过介绍Java的新/旧内存模型,来展示Java技术的历史变迁. 本文通过介绍J ...

  2. 【高软作业2】:Java IDE调研分析

    一 序言 随着软件项目开发需求的增多,拥有一款优秀的.顺手的IDE(Integrated Development Environment)对程序员来说显得格外重要.本文就Java程序开发,选择了3款I ...

  3. JAVA IDE IntelliJ IDEA使用简介(一)—之界面元素

    (注:简介基于IDEA的版本为:11.0,下载地址:http://www.jetbrains.com/idea/) 打开IDEA,(当第一次打开的时候出现的是一个欢迎页面,随便创建一个project来 ...

  4. Java - IDE

    JDK安装及环境变量配置 下载安装对应版本的JDK 控制面板--->系统--->属性--->高级系统设置--->环境变量 新建系统变量JAVA_HOME 变量名:JAVA_HO ...

  5. 最好的Java IDE之争:Eclipse PK IntelliJ IDEA

    话说,好马配好鞍,一个好的工匠,必定要有一套好的工具才能打造出最好的工艺给大家.之前,Plumbr团队里的所有成员都使用Eclipse编辑器,而如今,大家都成为IntelliJ IDEA用户.那么,到 ...

  6. Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件

    原文:转:Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件 2011-04-30 12:50 很多人不知道怎么用 IntelliJ IDE ...

  7. JVM基础系列第2讲:Java 虚拟机的历史

    说起 Java 虚拟机,许多人就会将其与 HotSpot 虚拟机等同看待.但实际上 Java 虚拟机除了 HotSpot 之外,还有 Sun Classic VM.Exact VM.BEA JRock ...

  8. 总结java IDE (eclipse)快捷键

    Eclipse快捷键 10个最有用的快捷键:Eclipse中10个最有用的快捷键组合:一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码 ...

  9. Java IDE选择,常用Java IDE排行榜

    Java IDE众多,java开发主要用.最多用.国内较流行.本人常用的java IDE如下: 开发java大项目的IDE一般都用eclipse或netbeans(几乎我所在的公司都是在用eclips ...

随机推荐

  1. AESUtil_1

    package com.tebon.ams.util;import org.apache.commons.codec.binary.Base64;import javax.crypto.Cipher; ...

  2. JS 选择结构语句与循环结构语句

    笔记整理自:廖雪峰老师的JS教程 选择结构 与Java使用一致. 需要注意的 JavaScript把null.undefined.0.NaN和空字符串''视为false,其他值一概视为true. 循环 ...

  3. IAAS, SAAS, PAAS

    原文是Pizza‐as‐a‐Service: a detailed view,用来类比Cloud Service Models.出处来自于Data Sovereignty and the Cloud ...

  4. MATLAB 机器人学工具箱(Robotics Toolbox )sl_drivepoint 模型 consecutive zero crossings 问题

    操作环境 工具箱:Robotics Toolbox for MATLAB 版本 10.2.1 作者 Peter Corke MATLAB版本:R2018a 操作系统:win10 问题 sl_drive ...

  5. Linux基础入门笔记

    今天带来Linux入门的一些基础的笔记,科班出身的同学们,Linux已经成为了必修课了,下面我带来关于Linux的相关入门知识以及Linux简单的介绍! Linux内核最初只是由芬兰人林纳斯·托瓦兹( ...

  6. 联邦学习:按Dirichlet分布划分Non-IID样本

    我们在<Python中的随机采样和概率分布(二)>介绍了如何用Python现有的库对一个概率分布进行采样,其中的dirichlet分布大家一定不会感到陌生.该分布的概率密度函数为 \[P( ...

  7. 员工管理系统+字符编码+Python代码文件操作

    员工管理系统+字符编码+Python代码文件操作 1.员工管理系统 1.1  debug 代码调试 1.先使用鼠标左键在需要调试的代码左边点击一下(会出现一个红点)2.之后右键点击debug运行代码 ...

  8. SpringCloud微服务实战——搭建企业级开发框架(三十七):微服务日志系统设计与实现

      针对业务开发人员通常面对的业务需求,我们将日志分为操作(请求)日志和系统运行日志,操作(请求)日志可以让管理员或者运营人员方便简单的在系统界面中查询追踪用户具体做了哪些操作,便于分析统计用户行为: ...

  9. NTFS格式下的Alternate Data Streams

    今天我写点NTFS的交换数据流以及其带来的安全问题(Alternate Data Stream/ADS) =============================================== ...

  10. Java全栈学习路线、学习资源和面试题一条龙

    肝了一个月,终于把Java学习路线.面试题资源和电子书资源都整理好了. Java 从基础到微服务的学习路线,其中还包括科班知识.学习建议.后续的学习引导和相应的学习资源(视频.书籍.网站),还整理了J ...