在线问题反馈模块实战(二十):完结篇

338 阅读10分钟

👨‍🎓作者:bug菌
✏️博客:CSDN掘金infoQ51CTO
🎉简介:CSDN博客专家,C站历届博客之星Top50,掘金/InfoQ/51CTO等社区优质创作者,全网合计8w粉+,对一切技术感兴趣,重心偏Java方向;硬核公众号「 猿圈奇妙屋」,欢迎小伙伴们的加入,一起秃头,一起变强。
..
✍️温馨提醒:本文字数:1999字, 阅读完需:约 5 分钟

       嗨,家人们,我是bug菌呀,我又来啦。今天我们来聊点什么咧,OK,接着为大家更《springboot零基础入门教学》系列文章吧。希望能帮助更多的初学者们快速入门!

       小伙伴们在批阅文章的过程中如果觉得文章对您有一丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章点亮👍吧,您的点赞三连(收藏⭐+关注👨‍🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️

一、前言🔥

环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE

       如下,是bug菌我想跟大家分享一下自己昨天刚接到一个临时的需求,热乎着呢,想分享一下自己是如何面对临时需求并制定整个开发周期,其中包括从梳理业务到创建业务表再到实现业务逻辑形成闭环再到与前端对接,其中会穿插一些业务拓展及功能性拓展,这一条龙流程在线与大家一起见证,分享给刚入门的小伙伴,希望对你们有所帮助。

环境说明:idea2019.3 + springboot2.3.1.REALSE + mybati-plus3.2.0 + mysql5.6 + jdk1.8

       若小伙伴们在批阅文章的过程中觉得文章对您有一丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章点亮👍吧,您的点赞三连(收藏⭐️+关注👨‍🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️​

二、概述🔥

       ​非常的难以接受如今的这个结果,为什么呢?因为这个模块开发就此告一段落啦。说起来有跟着我纯手做这个项目的小伙伴,应该也会很不舍吧,突然在下一期,就看不到我这么系统性的教学文章了,说实在的,每一期都是围绕着业务点来展开论述并从代码逻辑角度上零隐藏代码教学;对于基础入门或者刚步入公司拧螺丝的小伙伴而言,这一模块化的系列文章,就显得非常有引导及训练意义了。

       据私下了解到,有很多小伙伴初入公司,开发组并不会给到你多少模块化的业务开发的,于是你每天要么就是碎片化的按需求文档写点简单的业务接口,要么就是改点接口bug、或者做点运维相关的杂活,对于这样,给人的成长与锻炼都是非常缓慢的,但又不得是小白的必经之路,这条路虽然艰辛,但我作为几年职场老人,其实想说,跟对人,能走不少弯路。

       所以对于初入职场的小伙伴而言,你们要做的就是让自己能在职场中快速成长起来,找到一个能跟随学习的人,多做事,少说话。即,我总结出来的这套业务模块开发教程,实际也就是为了帮助给到更多职场新人有锻炼的机会。

       我对该模块,也是实打实的在我的项目上切实存在且由我一人负责开发,虽然对于我在职场摸爬滚打了这么些年,早已是玩的透透的了。所以今天输出成教学文,我就是不想你们跟我一样,走了许多弯路,浪费了大好时光。

       如今的互联网行业,卷的不行,如今的高校大学生,培训机构等都是一等一的勤奋刻苦,出来都是顶一个在职场摸爬滚打的一到三年的职场者,谁不努力这个行业就淘汰谁!这就是现实,谁技术好就要谁,说到底这个行业就是吃硬实力的,你不够强,那你就等着被优化。

       上海这一长达几个月的疫情,很多中小型公司由于扛不住经济压力,裁员消息层出不穷,或者工资打折,有发三折的有发五折的,上海由此就出现了巨多无业游民,我的同事也是由于这一出目前已在面试找工作,听他说,很多公司都不招了,或者就是只完成kpi,走到hr面被随便找个理由就被pass了,这些都找谁理去。

       所以啊,对就业形式就越发的严峻,我们也要做好应对,迟早也会轮到自己头上,所以做好心理准备永远不会有错,我的同事们就是个前车之鉴,吸取教训,做好应对准备就好。

       对于如今的就业压力,很多的其他行业人员也纷纷半路出家,转到互联网行业,毕竟所谓的门槛不高且薪资感人,实现财富自由靠实力很容易实现,

       所以对于你们而言,遇对人很重要,如果没遇到的,那就暂时由我来当你们的引路人吧。

三、往期文章梳理🔥

        对于问题反馈模块实战开发,我完整的梳理了每一期的教学及链接地址,仅供参考:希望对大家能有所帮助。

       如上是整整二十期内容,每一期都是干货,对于一个模块的开发,如何一点一滴打造并测试部署上线,我再说一遍,这不是演习,是实战!

       若你们觉得只是需要了解其中某个知识点或者业务的话,也不反对,你就选择其中的几期进行学习就好,反正都已经完结啦;我只希望你们能有所收获,有所成长,也就不枉我苦心每天下班后给大家总结更新。

四、亮眼代码展示🔥

1️⃣片段1

        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();
        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("luoyong");
        gc.setOpen(false);
        gc.setFileOverride(true);// 是否覆盖同名文件,默认是false
        gc.setActiveRecord(true);// 不需要ActiveRecord特性的请改为false
        gc.setEnableCache(false);// XML 二级缓存
        gc.setBaseResultMap(true);// XML ResultMap 生成基本的resultmap
        gc.setBaseColumnList(true);// XML columList 生成基本的sql片段
        //实体属性 Swagger2 注解
        gc.setSwagger2(true);
        mpg.setGlobalConfig(gc);

2️⃣片段2

	/**
	 * 创建者 填充策略为插入自动填充
	 */
	@ApiModelProperty(value = "创建人")
	@TableField(value = "create_by",fill = FieldFill.INSERT)
	protected String createBy;

	/**
	 * 更新时间 填充策略为新增或更新自动填充
	 */
	@ApiModelProperty(value = "修改时间")
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
	@TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
	protected Date updateTime;

3️⃣片段3

        //创建父级目录
        if (!target.getParentFile().exists()) {
            target.getParentFile().mkdirs();
        }
        //如果存在,则说明重名
        if (target.exists()) {
            //命名重复,则文件名后拼接 “_时间戳”
            //获取当前时间戳
            long time = new Date().getTime();
            name = pathName + ConstantUtils.XHX + time + ConstantUtils.POINT + imageSuffix;
            path = directory + SEPARATOR + name;
            target = new File(path);
        } else {
            name = pathName + ConstantUtils.POINT + imageSuffix;
        }
        try (InputStream is = file.getInputStream()) {
            FileUtils.copyInputStreamToFile(is, target);
        }

4️⃣片段4

          byte[] data = null;
            try {
                FileInputStream input = new FileInputStream(file);
                data = new byte[input.available()];
                input.read(data);
                response.getOutputStream().write(data);
                input.close();
            } catch (Exception e) {
                System.out.println(e);
            }

5️⃣片段5

    private HttpServletRequest getRequest() {
        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = servletRequestAttributes.getRequest();
        return request;
    }

6️⃣片段5

       ...

... ...

五、文末🔥

        对于问题反馈模块实战开发,我完整的梳理了每一期的教学及链接地址,仅供参考:希望能对你们有所帮助。

       如上是整整二十期内容,每一期都是干货,对于一个模块的开发,如何一点一滴打造并测试部署上线,我再说一遍,这不是演习,是实战!是实战!是实战!

       若你们觉得只是需要了解其中某个知识点或者业务的话,也不反对,你就选择其中的几期进行学习就好,反正都已经完结啦;我只希望你们能有所收获,有所成长,也就不枉我苦心每天下班后给大家总结更新。

文末🔥

       如果还想要学习更多,小伙伴们可关注bug菌专门为大家创建的专栏《springboot零基础入门教学》,从无到有,从零到一!希望能帮助到更多小伙伴们。

我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

感谢认真读完我博客的铁子萌,在这里呢送给大家一句话,不管你是在职还是在读,绝对终身受用。
时刻警醒自己:
抱怨没有用,一切靠自己;
想要过更好的生活,那就要逼着自己变的更强,生活加油!!!