怎么看java源代码

怎么看java源代码妈的 开发快 7 年了 源代码一致不知道怎么看 由于自己不是计算机专业的 必要后只是简单的 java 培训了下 没有很好的编程功底 导致遇到很多问题 没有找到正确的处理方式 也怪自己懒 3 天打网两天晒鱼 自己就是那种遇到问题 解决了事的那种人 当然以前工作的确也太忙了 外包项目一直做 知道的挺多了 但是都不精 本着完成任务了事的态度 没有积累 看源代码基本上就是使用 crtl t 找进入 jar 包看下 但是如

 妈的,开发快7年了,源代码一致不知道怎么看,由于自己不是计算机专业的, 必要后只是简单的java培训了下,没有很好的编程功底,导致遇到很多问题,没有找到正确的处理方式,也怪自己懒,3天打网两天晒鱼,自己就是那种遇到问题,解决了事的那种人,当然以前工作的确也太忙了,外包项目一直做,知道的挺多了,但是都不精,本着完成任务了事的态度,没有积累;看源代码基本上就是使用crtl+t找进入jar包看下,但是如果遇到一个方法多个实现的时候,基本上都不知道,真正的实现类是那个了

      通过这段时间的总结:大体知道了一点,看源代码主要有几点:

           1、需要了解基本的java23设计模型,

           2、需要了解框架的真正实现类[   配置与运行结合看]

           3、多找一些源码包进行解析:如:tomcat的源码:https://tomcat.apache.org/download-90.cgi  

下面举一个例子:

shiro框架:

            如实现登录认证的那块:

   怎么看java源代码

import org.apache.shiro.SecurityUtils;

 首先要知道: subject真正的实现类:

 怎么看java源代码

 

subject = (newSubject.Builder()).buildSubject();

 怎么看java源代码

 

 怎么看java源代码

SecurityManager :是一个接口,需要找到对应的实现类: 

接口是什么,就是一种规范,这种规范使得框架可以嵌入到其他框架、软件中的一个规则

怎么看java源代码

SecurityManager 的实现类是DefaultWebSecurityManager; 注意是class ,不是interface【可以是abstract class,但是从设计模式中看的话,如果类继承了抽象类的话,可能该方法不是真正的方法(子类重写了)],


 怎么看java源代码

还记得最开始 Subject的创建吗:

—》DefaultSecurityManager中的

public Subject createSubject(SubjectContext subjectContext) { //create a copy so we don't modify the argument's backing map:  SubjectContext context = copy(subjectContext); 
 */ protected Subject doCreateSubject(SubjectContext context) { return getSubjectFactory().createSubject(context); } 
protected SubjectFactory subjectFactory;  /  * Default no-arg constructor.  */ public DefaultSecurityManager() { super();  this.subjectFactory = new DefaultSubjectFactory();  this.subjectDAO = new DefaultSubjectDAO(); }

最终得到Subject类的实现类:DefaultSecurityManager;

登录实现方法:

怎么看java源代码


该类的securityManager从配置文件(或java中找) DefaultSecurityManager:【—-】

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215991.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午12:49
下一篇 2026年3月18日 下午12:49


相关推荐

  • 基因的可变剪切_如何确认发现了可变剪切

    基因的可变剪切_如何确认发现了可变剪切什么是基因的可变剪切?有些基因的前体mRNA(pre-mRNA)通过不同的剪接方式(选择不同的剪接位点)产生不同的mRNA剪接异构体,这一过程称为可变剪接(或者选择性剪切)(AlternativeS

    2022年8月5日
    8
  • dubbo负载均衡策略和集群容错机制

    dubbo负载均衡策略和集群容错机制(1)dubbo负载均衡策略(1)dubbo负载均衡策略1)randomloadbalance默认情况下,dubbo是randomloadbalance随机调用实现负载均衡,可以对provider不同实例设置不同的权重,会按照权重来负载均衡,权重越大分配流量越高,一般就用这个默认的就可以了。2)roundrobinloadbalance还有roundrobinloadbalance,这个的话默认就是均匀地将流量打到各个机器上去,但是如果各个机器的性能不一样,容易导致性能差的机器

    2022年7月11日
    23
  • decode encode区别_python decode和encode

    decode encode区别_python decode和encode#-*-coding:utf-8importsys”’*首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb231…

    2022年10月7日
    9
  • springboot实战第四章-SpringMVC的文件上传配置

    springboot实战第四章-SpringMVC的文件上传配置

    2021年5月15日
    128
  • python 主函数传参_Python函数传参详解

    python 主函数传参_Python函数传参详解Python 中使用 def 来定义函数 依次是 def 函数名 括号 括号中的参数及结尾的冒号 另起一行缩进写函数体 函数的返回值用 return 语句返回 如 deffunc 参数 函数体 return 调用函数时会对传入的参数进行自动检查 包括参数的类型及参数的数量 如果不符合要求会抛出 TypeError 异常 参数的类型可分为 1 必选参数 2 默认参数 3 可变参数 4 关键字参数函数中的参

    2026年3月26日
    2
  • 深入理解select、poll和epoll及区别

    深入理解select、poll和epoll及区别问题 如果我们先前创建的几个进程承载不了目前快速发展的业务的话 是不是还得增加进程数 我们都知道系统创建进程是需要消耗大量资源的 所以这样就会导致系统资源不足的情况 那么有没有一种方式可以让一个进程同时为多个客户端端提供服务 接下来要讲的 IO 复用技术就是对于上述问题的最好解答 对于 IO 复用 我们可以通过一个例子来很好的理解它 例子来自于 TCP IP 网络编程 某教室有 10 名

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号