前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云+社区年度征文】JAVA的两年半学习

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

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

背景

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

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

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

工作

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

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

  • 将有部分task数据依赖的接口实现ApplicationListener接口以及定义同一个ApplicationEvent事件实体。 eg:
代码语言:txt
复制
@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
复制
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
复制
@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
复制
1. 维护一个静态集合存储需要剔除的`task`名称,容器初始化的时候加载进去,在执行时候判断是否在此集合中。
2. 利用`instanceof`去判断当前task是否属于`ApplicationListener`,属于就剔除执行计划。

生活

目前一个人在飘~

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

20201214143318.jpg
20201214143318.jpg

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

学习

学习不能停!!!!

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

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

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

WechatIMG12.jpeg
WechatIMG12.jpeg

总结

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

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 工作
  • 生活
  • 学习
  • 总结
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档