我把Idea给改了,看看有没有你常用的功能,没有,你告诉我,我来改

news2024/9/21 15:02:26

改造的目标

时隔2个多月的研发,11月25日,终于把Idea插件BG-BOOM的1.1.0版本搞上线了,本次更新勇哥也是百忙之中挤时间,加班加点开发为粉丝,目的也主要是帮助大家提升开发效率,有更多摸鱼和内卷时间;好了,切回正题,本次带来更新的功能有点diao,希望大家喜欢并点赞:

  • 提高创建SpringBoot项目的效率

    • 一键生成启动类、配置文件

    • 自动导入springboot、springcloud、springcloudalibaba等起步依赖

  • 提高启动、找启动类、找配置文件的效率

    • 一键启、停全部微服务

    • 一键定位启动类

  • 提高大家对数据库表直观理解

    • 提供了ER图自动匹配逻辑主键

  • 提高JPA开发的效率

    • 一键拷贝JPA的controller、service、pojo、dao等代码

  • 提高Mariadb的使用

    • 直接在代码中,不用配置连接,一键打开Mariadb查询客户端

快速创建SpringBoot项目功能介绍

Idea自带创建工程功能的问题

一般在工作中,大多程序时通过Maven Archetype 来创建新项目和模块,这种基于骨架方式来创建项目有一些弊端:

  • 骨架的资源需要通过网络下载,如果网络抖动下载丢失资源了,整个项目就崩溃

  • 骨架的资源需要通过网络下载,如果网速,则创建过程可能需要1~2分钟

  • 骨架中默认包括的文件与实践开发的项目不符合,往往创建完成项目后,需要程序员手动删除

你是不是也是这样创建项目的呢?

你是这样创建项目的吗?

Bg-Boom是如何快速创建项目的

勇哥在插件中特制了一个项目创建的引导功能:

  • 创建时输入启动类的名称、勾选默认导入的springboot-starter,项目创建的时候就会自动创建启动类,导入勾选的starter;这样创建的项目:

    • 自动创建启动类;

    • 自动在pom.xml中入spring-boot的那些依赖

    • 自动创建application.yml配置文件,并设置基础属性

  • 创建的工程也是maven项目,但是项目不是基于骨架创建,因此不走网络下载资源,因此创建效率自然高效,稳定。

秀一波:

勇哥和粉丝是这样创建项目的,效率高呀!

快速启停SpringBoot项目功能介绍

Idea自带项目启动的问题

idea的项目启动如果是单体项目,是没什么问题的,但是如果是微服务或者模块较多的情况下,就会存在以下问题:

  • 第一次启动,需要一层一层的点击到启动类,让右键启动;如果启动的项目多、项目层级多,那么这是非常繁琐

  • 第N次启动,可以从快速启动下拉中、Services中启动,但是下拉选择和Services都是多层次设计,启动项目都要点击2次以上,对一项目多了,还是麻烦

开发10多年,这样启动项目,我早就烦了

Bg-Boom是如何一键启动所有项目的

勇哥在插件中特制了一个快速启动栏:

  • 自动扫描当前项目中的微服务(仅支持SpringBoot工程)

  • 扫描到的微服务,自动显示到快速启动栏中

  • 从快速启动栏中,你可以一键操作

    • 启动某个项目

    • 停止某个项目

    • 启动所有项目

    • 停止所有项目

    • 点击在浏览器中打开项目

    • 定位启动类

  • 如果快速启动栏中项目太多,也不需要担心,可以左右拖动,:)NICE

勇哥和粉丝专属IDEA 快速启动条

在Bg-Boom中通过ER图熟悉数据库

现在在工作中,基本上表与表之间都不会使用外键约束,而是使用逻辑外键,这样的话,在Navicat这些常规数据库中ER模型中是不会画出表与表之间的关系,阻碍了大家对于表关系的快速掌握。因此勇哥自行开发了一套基于逻辑外键的ER图模型:

  • 自动识别表中的逻辑外键(一般是以_id结尾的字段)

  • 可以动态显示/关闭逻辑外键关联线

  • 可以ER图保存为图片

  • 可以自有拖动位置、拖动调整大小

粉丝过1W,这个图源码我就免费公开,你敢不敢点个关注,赌一赌?

勇哥为此还写了横、竖两个刻度尺,帅不帅,刻度尺源码如下:给勇哥点个赞吧~~~,勇哥也需要你们的精神粮食

package com.madou.dbtool.uml.cantainer;

import javax.swing.*;
import java.awt.*;

/**
 * 刻度尺面板类
 */
public class RuleContainer extends JPanel implements ScaleFunction {

    // 背景颜色
    Color backgroudColor = Color.BLACK;
    // 刻度颜色
    Color fontColor = Color.WHITE;
    // 是否垂直
    boolean isVertical = false;
    // 左边距
    int left = 0;
    // 缩放比例,每走一格+-5
    int scale = 100;

    public RuleContainer() {
        this(false,0);
    }

    public RuleContainer(int left) {
        this(false,left);
    }

    public RuleContainer(boolean isVertical, int left){
        this.setLayout(null);
        this.setBackground(Color.RED);
        this.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
        this.left = left;
        this.isVertical = isVertical;
        if(this.isVertical){
            this.setPreferredSize(new Dimension(20, -1));
        }else {
            this.setPreferredSize(new Dimension(-1, 20));
        }
    }

    public void drawX(Graphics graphics){
        int width = this.getWidth();
        int height = this.getHeight();
        int index = 0;
        int count = 0;
        double postion = left;
        int screenResolution = Toolkit.getDefaultToolkit().getScreenResolution();
        int step = (int) Math.round((screenResolution/25.4)/(scale/100F));
        Font font = Font.getFont("微软雅黑");
        graphics.setColor(fontColor);
        graphics.setFont(font);
        if(isVertical){
            if(scale<101) {
                height = (int) (height/(scale/100F));
            }
            while (postion<height){
                if(count%10==0){
                    graphics.drawLine(width/2,(int) postion,width,(int) postion);
                    graphics.drawString(""+index++, 0,(int) postion-1);
                }else{
                    if(count>0&&count%5==0){
                        graphics.drawLine(width * 3 / 5, (int) postion, width, (int) postion);
                    }else {
                        graphics.drawLine(width * 4 / 5, (int) postion, width, (int) postion);
                    }
                }
                postion+=step;
                count++;
            }
        }else{
            if(scale<101) {
                width = (int) (width / (scale / 100F));
            }
            while (postion<width){
                if(count%10==0){
                    graphics.drawLine((int) postion,height/2,(int) postion,height);
                    graphics.drawString(""+index++, (int) postion-3,height/2);
                }else{
                    if(count>0&&count%5==0){
                        graphics.drawLine((int) postion,height*3/5,(int) postion,height);
                    }else {
                        graphics.drawLine((int) postion,height*4/5,(int) postion,height);
                    }
                }
                postion+=step;
                count++;
            }
        }

    }

    @Override
    protected void paintComponent(Graphics graphics) {
        graphics.setColor(backgroudColor);
        graphics.fillRect(0,0,getWidth(),getHeight());
        drawX(graphics);
    }

    public static void main(String[] args) {
        JFrame jFrame = new JFrame("刻度尺");
        jFrame.setLayout(new BorderLayout());
        jFrame.setPreferredSize(new Dimension(600,600));
        RuleContainer scalePanel = new RuleContainer(false,30);
        jFrame.add(scalePanel,BorderLayout.NORTH);
        scalePanel = new RuleContainer(true,0);
        jFrame.add(scalePanel,BorderLayout.WEST);
        jFrame.setVisible(true);
        jFrame.pack();
    }

    @Override
    public void scale(int step) {
        scale+=step;
        if(scale<20){
            scale=20;
        }
        if(scale>500){
            scale=500;
        }
        applyZoom();
    }

    private void applyZoom() {
        setPreferredSize(new Dimension((int) (scale/100F * getWidth()), (int) (scale/100F * getHeight())));
        validate();
        repaint();
    }

    @Override
    public void reset() {
        scale=100;
        scale(0);
    }
}

在Bg-Ber中一键拷贝JPA代码

勇哥在插件增加了数据库客户端,在数据库客户端中新增了SQL逆向生成JPA代码的功能:

  • 生成Controller

  • 生成Service

  • 生成ServiceImpl

  • 生成Dao

  • 生成Pojo

代码自动生成演示:

认真看,你们还有Mybatis-plus的代码拷贝,不够,粉丝可以继续提

在Bg-Boom中使用Mariadb客户端

Mariadb客户端依旧继承Mysql客户端的牛逼设计:

  • 自动识别代码中的POJO类,并增加打开查询客户端的功能菜单和按钮

  • 在查询客户端中自动生成JPA、Mybatis-plus相关代码

  • .........等等,此处省略N个功能描述 

不用配置数据源,自动识别的,速度比DataGrip快

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/61383.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计SSM晋中学院教室管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

QT中怎么设置定时器/周期任务/定时触发任务

Qt中定时器的使用有两种方法&#xff0c;一种是使用QObject类提供的定时器&#xff0c;还有一种就是使用QTimer类。 其精确度一般依赖于操作系统和硬件&#xff0c;但一般支持20ms。下面将分别介绍两种方法来使用定时器。 QObject类提供的定时器 QObject中的定时器的使用&am…

Makefile 详解

文章目录1.什么是Makefile2.Makefile文件命名规则3.编写Makefile4.Makefile 的工作原理5.Makefile中的变量6.模式匹配7.函数1.什么是Makefile 一个工程中的源文件不计其数&#xff0c;按期类型、功能、模块分别放在若干个文件中&#xff0c;MakeFile文件定义了一系列的规则来制…

HIN应用调研总结

文章目录1. 代码安全iDev: enhancing social coding security by cross-platform user identification between GitHub and stack overflow【A】2. API推荐Group preference based API recommendation via heterogeneous information network【A】3.Andorid恶意软件检测Out-of-…

SSM甜品店系统计算机毕业论文java毕业设计选题源代码

&#x1f496;&#x1f496;更多项目资源&#xff0c;最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 计算机毕业设计java毕设之SSM甜品店系统-IT实战营_哔哩哔哩_bilibili项目资料网址: http://itzygogogo.com软件下载地址:http://itzygogogo.com/i…

中英双语多语言外贸企业网站源码系统 - HanCMS - 安装部署教程

随着跨境独立站的流行&#xff0c;中英双语的公司官网越来越受到重视。 此项目是基于开源CMS开发出的中英文双语外贸企业网站内容管理系统&#xff0c;命名HanCMS HanCMS 汉CMS中英双语多语种外贸网站系统&#xff0c;是一个轻量级的网站系统&#xff0c;访问速度极快&#xff…

[附源码]计算机毕业设计小太阳幼儿园学生管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

威伦触摸屏TK6060IP简单例子

详情见以下链接 https://download.csdn.net/download/weixin_39926429/87242438

[附源码]Python计算机毕业设计SSM教务管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

基于连续小波变换的厄尔尼诺海平面周期变化数据集分析

基于连续小波变换的厄尔尼诺海平面周期变化数据集分析1. 厄尔尼诺海平面周期变化数据集介绍2. 基于连续小波变换的信号分析2.1 原始信号读取可视化2.2 傅里叶变换结果可视化2.3 小波变换结果可视化参考资料后记1. 厄尔尼诺海平面周期变化数据集介绍 这些数据是通过国际热带海洋…

文件上传的multipart/form-data属性,你理解了吗

form表单经常用于前端发送请求&#xff0c;比如&#xff1a;用户填写信息、选择数据、上传文件&#xff0c;对于不同的场景&#xff0c;上传数据的格式也会有些区别。 action action 表示该请求的 url 地址&#xff0c;定义在form上&#xff0c;请求的URI&#xff0c;可以写完…

【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)

觉得有帮助请点赞关注收藏~~~ 一、文本向量化 文本向量化&#xff1a;将文本信息表示成能够表达文本语义的向量&#xff0c;是用数值向量来表示文本的语义。 词嵌入(Word Embedding)&#xff1a;一种将文本中的词转换成数字向量的方法&#xff0c;属于文本向量化处理的范畴。 …

Linux操作系统~基于systemV共享内存的进程间通信

目录 一.进程间通信有哪些方式 二.什么是systemV 三.共享内存-双向通信-大致实现思路 四.4个函数about共享内存 1.shmget函数-创建 ftok函数 ​编辑 e.g. ipcs/ipcrm指令&#xff08;ipc资源会被回收吗&#xff09; 2.shmctl函数-删除/释放 3.shmat函数-挂接 4.shmdt…

汽车以太网简史

一、为啥需要新车载总线 在一个行业中&#xff0c;当一种新技术被开发和启用时&#xff0c;影响该技术成功的因素有很多。其中最重要的是该技术带来的益处以及自身成本。 第一个吃螃蟹的 2004年宝马决定从2008年起在其开始量产&#xff08;SOP&#xff09;的汽车中引入一个中…

c++ 指针

目录 1.指针的基本概念 2.定义指针&#xff0c;使用指针 3.指针所占的内存空间 4.空指针和野指针 4.1空指针 4.2野指针 5.const修饰指针 5.1常量指针 5.2指针常量 5.3const既修饰指针又修饰常量 6.指针和数组,利用指针访问数组 6.1概述 6.2使用数组名和下表访问 6.3使用…

【LIN总线测试】——LIN主节点数据链路层测试

系列文章目录 &#x1f4d2;【LIN总线测试】——LIN主节点物理层测试 &#x1f4d2;【LIN总线测试】——LIN从节点物理层测试 &#x1f4d2;【LIN总线测试】——LIN主节点数据链路层测试 &#x1f4d2;【LIN总线测试】——LIN主节点网络管理测试 &#x1f4d2;【LIN总线测试】…

Docker consul的容器服务更新与发现

1&#xff09;什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的&#xff0c;不保障高可用性&#xff0c;也不考虑服务的压力承载&#xff0c;服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构&#xff0c;起初…

一软一硬:记录我的工作电脑两次出现性能问题的分析思路和解决过程

作为一个程序员&#xff0c;每天工作中糟心的事情之一&#xff0c;莫过于自己用来编码的计算机&#xff0c;运行速度忽然变得奇慢无比。尤其像我这种年过四旬仍然在一线从事编码工作的老程序员来说&#xff0c;只有靠不断提高单位时间的产出效率&#xff0c;来弥补和年轻程序员…

网课搜题接口

网课搜题接口 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&#xff09; 题库…

【leetcode】 盛最多水的容器

一、题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾…