Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【云+社区年度征文】JAVA的两年半学习

【云+社区年度征文】JAVA的两年半学习

原创
作者头像
Montos
修改于 2020-12-15 02:23:12
修改于 2020-12-15 02:23:12
9040
举报
文章被收录于专栏:Java学习之道Java学习之道

背景

18年毕业于双非学校的计算机专业,随同班同学一起,从安徽来到了杭州搬起了砖,开始做起JAVA后端!!

2020年是不容易的一年,由于疫情影响,使得不少的小伙伴因为公司原因而不得不重新开始寻找工作。面对日益增加的计算机学生而言,这届应届生想必找工作更是难上加难。

就我而言,今年参与了几场线下的技术沙龙,聆听了大佬们对于技术的落地,规划等。在日常的写业务代码中也逐渐有了设计模式中的原型以及java中的多态概念等等。日常学习中也是不断的进行中。

工作

相信写JAVA的人数还是很多的!!!

目前从事的是业务开发(对于专门的中间件开发的小伙伴工作内容还是很好奇的?),大部分的时间都是围绕的业务开展,而非很多时间围绕在开发上。只要需求等等确定好之后,写代码还是很快的。顺便上下前两个月改造的一个task任务(之前所有的task都是并发的,但是现在有部分的task有数据依赖)。

  • 将有部分task数据依赖的接口实现ApplicationListener接口以及定义同一个ApplicationEvent事件实体。 eg:
代码语言:txt
AI代码解释
复制
@Component
public class BRunner implements IRunner, ApplicationListener<NoticeEvent> {
    @Autowired
    private ApplicationEventPublisher applicationEventPublisher;

    @Override
    public void run() {
        System.out.println("this is BRunner"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        try {
            Thread.sleep(10_000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        NoticeEvent noticeEvent = new NoticeEvent(this,"C");
        applicationEventPublisher.publishEvent(noticeEvent);
    }

    @Override
    @Async
    public void onApplicationEvent(NoticeEvent noticeEvent) {
        if ("B".equalsIgnoreCase(noticeEvent.getMessage())){
            this.run();
        }
    }
}
代码语言:txt
AI代码解释
复制
public class NoticeEvent extends ApplicationEvent {

    private String message;

    public NoticeEvent(Object source, String message) {
        super(source);
        this.message = message;
    }

    public NoticeEvent(Object source) {
        super(source);
    }

    public String getMessage() {
        return message;
    }
}
  • 作为数据来源主体进行发布消息改造。 eg:
代码语言:txt
AI代码解释
复制
@Component
public class ARunner implements IRunner {

    @Autowired
    private ApplicationEventPublisher applicationEventPublisher;


    @Override
    public void run() {
        System.out.println("this is ARunner"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        try {
            Thread.sleep(10_000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        NoticeEvent noticeEvent = new NoticeEvent(this,"B");
        applicationEventPublisher.publishEvent(noticeEvent);
    }
}
  • 因为项目启动的时候是利用schedule进行执行多个task任务的,我们需要将"消费者"部分从启动的时候剔除(这里剔除的方法有好几种了,我这里简单说下最简单的)。
代码语言:txt
AI代码解释
复制
1. 维护一个静态集合存储需要剔除的`task`名称,容器初始化的时候加载进去,在执行时候判断是否在此集合中。
2. 利用`instanceof`去判断当前task是否属于`ApplicationListener`,属于就剔除执行计划。

生活

目前一个人在飘~

生活中就很多有趣的东西了,让我们自己去尝试其中。例如骑行,打球,泡温泉等等(上一张图)。

20201214143318.jpg
20201214143318.jpg

也没想着很急找个女票什么的,这个还是随缘吧,这么一看我好像还是很佛系的,目前想着让自己的生活变得更加充实起来。

学习

学习不能停!!!!

入了这行,就知道这行需要学习的东西很多很多很多,尤其一些新的技术推广开来的时候,我们就要投入其中去学习。

分享下我近期再看的书籍,目前除了技术的书籍之外,我还在看着一些能够增长文化学识的书籍,算是陶冶情操吧。

同时我们也是需要多往云上发展(Serverless是趋势),我们要学会使用一些云产品(云服务器云数据库消息队列 CKafka等等),以便于我们更好的接触云服务的界限。

WechatIMG12.jpeg
WechatIMG12.jpeg

总结

相信每个小伙伴都会对着未来的自己进行合理的规划,该如何去做,如何去学习等等。其实我想表达:这些东西都不难去想,都不难去规划,最难的是贵在坚持!

让我们去始终如一的去坚持枯燥的日子是很难的,但是唯有这样,我们才会更有希望变成我们想象中的那样,我们才可以变得更好,让我们一起加油吧!!!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring Boot中使用监听器(六)
大家好,我是默语,一个专注于技术分享的博主。今天我们将深入探讨 Spring Boot中使用监听器 的各个方面。通过这篇文章,您将了解如何在Spring Boot项目中使用和自定义监听器,以便更好地处理各种事件。本文包含丰富的代码示例和详细的解释,确保您能够全面掌握监听器的使用技巧。让我们一起来学习吧!💡
默 语
2024/11/20
2030
高级码农设计的程序能解耦,是多么重要的一件事情!
摔杯为号、看我眼色行事、见南面火起,这是在嘎哈么?这其实是在通过事物传播进行解耦引线和炸弹,仅仅是这样的一个解耦,它放到了多少村夫莽汉,劫了法场,篡了兵权!
小傅哥
2021/07/08
6360
高级码农设计的程序能解耦,是多么重要的一件事情!
spring event发布及监听实例
spring-context-4.3.11.RELEASE-sources.jar!/org/springframework/context/event/SimpleApplicationEventMulticaster.java
code4it
2018/09/17
5520
Spring 源码学习 14:initApplicationEventMulticaster
上一篇介绍了国际化的使用以及初始化消息源的源码,接下来接着往下阅读,将进入 initApplicationEventMulticaster 、onRefresh 和 registerListeners 的相关操作逻辑。
程序员小航
2021/01/12
9350
Spring 源码学习 14:initApplicationEventMulticaster
如何做到业务优雅解耦?
在现代应用程序中,各个组件之间的通信是至关重要的。想象一下,你的应用程序中的各个模块像是一个巨大的交响乐团,每个模块都是一位音乐家,而Spring事件机制就像是指挥家,将所有音乐家协调得天衣无缝。
架构狂人
2024/03/06
1630
如何做到业务优雅解耦?
试试使用Spring Event组合@Async注解,轻松实现代码的解耦和异步
在我们写代码的时候,通常需要考虑到代码的耦合性,因为低耦合的代码有利于我们后续的维护和迭代,而Spring Event可以说是一个降低代码耦合度的神器,配合@Async注解更是能够轻松实现异步。今天我们就一起来了解一下Spring Event。
Java进阶之路
2022/11/18
1.4K0
面试官来了:说说你对Spring事件发布&监听源码的理解?
之前做个数据统计的需求,就是用的Spring事件发布与监听机制(用于采集基础数据),今天做个小小的总结。
后台技术汇
2022/05/28
3920
面试官来了:说说你对Spring事件发布&监听源码的理解?
记一次使用spring事件机制失效排查修复
在日常业务开发中过程,我们有时候为了业务解耦,会利用spring的机制,就是利用spring提供的ApplicationListener、ApplicationEventMulticaster等核心API来实现。(注: 我这边列的是核心底层API接口,正常我们会用监听事件用@EventListener,发布事件用 applicationContext.publishEvent()或者applicationEventPublisher.publishEvent())
lyb-geek
2024/04/02
1840
记一次使用spring事件机制失效排查修复
SpringBoot事件监听机制及观察者模式/发布订阅模式
在GoF的《设计模式》中,观察者模式的定义:在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。如果你觉得比较抽象,接下来这个例子应该会让你有所感觉:
烂猪皮
2023/09/04
9510
SpringBoot事件监听机制及观察者模式/发布订阅模式
向Spring框架学习设计模式
设计模式是大师们总结的编码范式,用于提升代码的扩展性以及优雅性。对于一个研发人员来说,能否写出一手让人点赞的代码,很大程度上取决于我们对于设计模式的落地使用。那么对于一些初学者来说,怎么才能以最快的方式来学习和理解设计模式呢?个人觉得比较好的方式是通过优秀的开源框架来进行学习,这些开源框架中大量使用了设计模式来进行功能扩展。本文主要分析下最常用的Spring框架中蕴含了哪些设计模式以及设计思想。
慕枫技术笔记
2023/03/20
2250
向Spring框架学习设计模式
Spring 应用之观察者设计模式
观察者模式是一种对象行为型设计模式,表示的是一种对象与对象之间具有的依赖关系。当一个对象发生改变的时候,这个对象所依赖的对象也会做出反应。
happyJared
2019/10/14
1K0
Spring框架 SpringEvent
Spring的事件(Application Event)其实就是一个观察者设计模式,一个 Bean 处理完成任务后希望通知其它 Bean 或者说 一个Bean 想观察监听另一个Bean的行为。
郭顺发
2023/07/07
2450
【死磕 Spring】----- ApplicationContext 相关接口架构分析
在前面 30 多篇博客中都是基于 BeanFactory 这个容器来进行分析的,BeanFactory 容器有点儿简单,它并不适用于我们生产环境,在生产环境我们通常会选择 ApplicationContext ,相对于大多数人而言,它才是正规军,相比于 BeanFactory 这个杂牌军而言,它由如下几个区别:
用户1655470
2019/03/06
1.2K0
【死磕 Spring】----- ApplicationContext 相关接口架构分析
Spring事件
事件是框架中被忽视的功能之一,但也是非常有用的功能之一,并且像Spring中的许多其他能力一样,事件发布是ApplicationContext上下文提供的功能之一。
叔牙
2020/11/19
7960
Spring事件
Spring中都用到的设计模式
IoC(Inversion of Control,控制翻转) 是Spring 中一个非常非常重要的概念,它不是什么技术,而是一种解耦的设计思想。它的主要目的是借助于“第三方”(Spring 中的 IOC 容器) 实现具有依赖关系的对象之间的解耦(IOC容易管理对象,你只管使用即可),从而降低代码之间的耦合度。IOC 是一个原则,而不是一个模式,以下模式(但不限于)实现了IoC原则。
乔戈里
2019/05/28
9270
深入理解Spring的事件通知机制
Spring作为一个优秀的企业级应用开发框架,不仅提供了众多的功能模块和工具,还提供了一种灵活高效的事件通知机制,用于处理组件之间的松耦合通讯。本文将详细介绍Spring的事件通知机制的原理、使用方法以及示例,希望对大家深入理解Spring框架有所帮助。
xindoo
2023/03/19
6.3K0
后端思维篇:如何抽一个观察者模板
本文是后端思维专栏的第五篇哈,我的整个后端思维专栏都是跟日常工作相关的哈。今天跟大家聊聊什么是观察者模式,如何应用到工作实践中,以及如何抽取一个观察者模板。
捡田螺的小男孩
2023/02/24
4110
后端思维篇:如何抽一个观察者模板
Spring 事件驱动模型
Spring4.2之后,ApplicationEventPublisher自动被注入到容器中,采用 Autowired 即可获取。
BUG弄潮儿
2021/06/25
1.5K0
Spring 事件驱动模型
掌握 Spring 之事件处理
1 前言2.1 Spring 标准事件处理2.1.1 注解驱动的事件侦听引入 @EventListener事件的传递2.1.2 侦听器优先级2.2 自定义事件2.2.1 自定义 Application Event2.2.2 自定义 Publisher2.2.3 自定义 Listener2.2.4 异步事件处理2.3 Spring Boot 事件与侦听3 结语4 参考
闻人的技术博客
2019/09/19
1.3K0
Spring | 事件监听器应用与最佳实践
在复杂的软件开发环境中,组件之间的通信和信息交流显得尤为重要。Spring框架,作为Java世界中最受欢迎的开发框架之一,提供了一种强大的事件监听器模型,使得组件间的通信变得更加灵活和解耦。本文主要探讨Spring事件监听器的原理、使用方法及其在实际开发中的应用,希望为广大开发者提供实用的参考。
kfaino
2023/09/25
2.1K0
Spring | 事件监听器应用与最佳实践
相关推荐
Spring Boot中使用监听器(六)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档