求教 Java 技术栈的进一步学习思路

查看 21|回复 0
作者:acctv2   
我是明年毕业的研究生,准备跨行转码农的。
之前有在 v2 提问过该选前端还是后端,大多数都推荐我学 Java 后端。现在有一些迷茫的地方。
当下的目标:尽可能找一份暑期实习,实验室不放人所以只能找暑期了。
目前的情况:
有在看 B 站上的 SSM 培训班视频,感觉讲的都很基础,理解也很轻松,但是看完后又总感觉收获有限,似乎就是学了一堆本来可以在文档中就能看到的内容,相当于带我整体性地过了一遍需要用到的文档,似乎自己这样看完后劣势依然很大,基本没有学到啥。然后力扣上的题也有在做,但是感觉时间还是比较有限,所以尽量在挑热门题做,先自己做题然后看看一些解题思路啥的,跟以前做题家时期模式一样。
迷茫的点:
[ol]
  • 培训班教学感觉一直在教工具的使用,并没有教一些抽象程度更高的内容(我想程序员群体应该明白我的意思),细节应该依赖于抽象,很显然我现在对抽象的理解不足。很多培训班的源码解析我也觉得是走过场地带你观光一遍 Spring 的实现细节,但是又不深入讲抽象,感觉意义不大。
  • 当然我不是说排斥工具的学习,我也希望自己能够熟练运用,但是看完了我自己还是没法熟练应用 Mybatis 和 Spring 框架,很多视频里提到的东西我也想不到应用场景,只是听视频里老师复读一遍文档,我也不想当文档抄录机,笔记都不怎么想做。
    [/ol]
    顺带再提一个我在看 Spring 框架时的一些问题:
    Spring AOP 默认使用的是 JDK 的动态代理,而这个是基于接口实现来进行代理的,因此在getBean()的时候只能用接口声明来获取代理后的 bean ,此时就没办法操作代理对象的原对象本身了,而只能调用实现的接口方法。
    那会不会有这样一种场景:我既希望某一个对象中部分方法被代理,又希望直接控制这个对象的字段或者未暴露在接口当中的方法呢?
    我自己想的答案是这样的:
    这种场景不符合开发的基本原则,因为面向接口编程本身不光是依赖倒置的实践,也是开闭原则的实践,相关的操作方法没有暴露在接口中意味着这些方法是闭合的,所以想要直接获取实现对象访问其中未暴露在端口中的方法,是不符合依赖倒置和开闭原则的。
    就是这些问题,主要想问前面的迷茫的地方,后面关于动态代理这个小问题有大佬回答就更好了。
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部