怎么看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的创建吗:

this.securityManager.createSubject(this.subjectContext);

—》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:【—-】

今天的文章怎么看java源代码分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/5411.html

(0)
编程小号编程小号

相关推荐

发表回复

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