阅读源码那些事

方法

看spring的源码的时候如果我们一直追究所有的细节那会让我们会越陷越深,掉入细节的无底洞,稍不留神脑回路跟不上就会蒙圈。

因此,我们要学会找源码中的关键部分看,弄懂主要流程和本次看源码的目的的那部分就行。

等我们对Spring整体有了一个很好的理解之后,再回头看之前不懂的代码就会豁然开朗。

心得

对于框架我们所配置和调用的,永远是浮在水面上的那一点点,不点进去,你永远不知道下边是一个怎样的庞然大物。封装的越好的框架,浮现出来的越少,隐藏的部分就越多。

比如SpringBoot,为什么能通过一个main方法就启动一个项目,web.xml呢,application.properties呢;SpringMVC为什么就需要一个@RequestMapping就能实现从URL到方法的调用;Shiro为什么仅需要@RequiresPermissions就能实现方法级别的权限控制。

学到的越多就越是感觉自己知道的越少,这是一个很矛盾却又真实存在的感觉。不说了该学习了,上面的最后一条方法级别权限控制下一篇写,时间待定,因为最近在项目中刚好遇到数据库优化相关问题,想先去看看MySQL。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Advanced C++ --- const function

上一篇介绍了const修饰的变量或者指针的含义,这篇我们介绍const修饰的函数以及函数参数含义。 首先我们看一个例子 class Dog{int age;string name; public:Dog(){age 3;name "dummy";}void setAge(const int &a){age a;a;} };int main(){Dog d;in…

slf4j、log4j日志报错排查

1、WARN Please initialize the log4j system properly 解法:只要在 src文件目录下建立配置文件log4j.properties即可 2、SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" 解法:这是因为sl4j和log4j的不兼容导致的&#…

无刷新三级联动查询

JQuery中国省市区无刷新三级联动查询(转):http://www.cnblogs.com/xiaoyu5062/archive/2012/07/30/2615359.html Ajax实现无刷新三联动下拉框(转):http://singlepine.cnblogs.com/articles/257954.html js特…

java.lang.NoClassDefFoundError: org/apache/shiro/authc/AuthenticationToken

使用ieda构建web工程项目,启动tomcat报错: java.lang.NoClassDefFoundError: org/apache/shiro/authc/AuthenticationToken maven经过不断的clean,compile、package都没有作用,最后发现是因为compile后生成了jar包 于是手动在pom…

iOS屏幕尺寸和分辨率了解

1、截至目前为止,主流的iOS设备屏幕有以下几种: --------------- iPhone ---------- -------- iPad ------------ 2、iOS设备屏幕分辨率:(ppi是像素密度单位【像素/英寸】,401ppi表示每英寸上有401个像素&#xff0…

“睡服”面试官系列第十七篇之Reflect(建议收藏学习)

目录 1. 概述 2. 静态方法 2.1Reflect.get(target, name, receiver) 2.2Reflect.set(target, name, value, receiver) 2.3Reflect.has(obj, name) 2.4Reflect.deleteProperty(obj, name) 2.5Reflect.construct(target, args) 2.6Reflect.getPrototypeOf(obj) 2.7Reflec…

java死锁检测

/*** author:cp* time:2021-2-24* Description: java死锁测试* 进程id查看命令:jsp 找到对应的进程id* 通过jstack 进程id 输出死锁信息** 如何定位死循环导致的其他线程阻塞等待:* linux下top命令查看cpu使用率较高的java进程&am…

div始终在底部

<style type"text/css">body{margin:0;padding:0; } html,body{height:100%;}div{width:100%;height:100px;background:#fc9;position:absolute;top:100%;margin-top:-100px}</style><div></div> 底部多高它的margin-top 就负多少。保证不留…

“睡服”面试官系列第十八篇之generator函数的语法(建议收藏学习)

目录 1简介 1.1基本概念 1.2yield 表达式 1.3与 Iterator 接口的关系 2. next 方法的参数 3. for...of 循环 4. Generator.prototype.throw() 5. Generator.prototype.return() 6. next()、throw()、return() 的共同点 7. yield* 表达式 8. 作为对象属性的 Generator…

微信撤回消息格式

<msg><fromusername>wxid_1zcdlm1cjhr522</fromusername><scene>0</scene><commenturl></commenturl><appmsg appid"" sdkver"0"><title>还好</title><des></des><action>…

MSSQL 2005数据库与SP4补丁安装

MSSQL 2005数据库与SP4补丁安装 Sql Server 2005 正确安装之前的win7配置&#xff1a; http://wenku.baidu.com/link?url6T3jzVnu2XY_sfqfe9ZqQ_6dUOdrZwHc83baWh6tgD2D4RBLnbFVoYn5hpq80v3G9ZmE1mQMzmSVWbm6VR26LlSGg3Pobl6B5VskugHjYF7 Sql Server 2005 的下载地址&#xff…

“睡服”面试官系列第十九篇之async函数(建议收藏学习)

目录 1. 含义 2. 基本用法 3. 语法 3.1返回 Promise 对象 3.2Promise 对象的状态变化 3.3await 命令 3.4错误处理 3.5使用注意点 4. async 函数的实现原理 5. 与其他异步处理方法的比较 6. 实例&#xff1a;按顺序完成异步操作 7. 异步遍历器 7.1异步遍历的接口 …

spring技术内幕——深入解析spring架构与设计原理

林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;说&#xff1a;“我从心底认为&#xff0c;优秀的程序员与平庸的程序员之间的区别&#xff0c;是在于认为自己的代码重要还是数据结构更加重要。平庸的程序员眼里只有代码&#xff0c;优秀的程序员则关注数据结构及之前的关…

python3 字符串方法

python3 字符串方法 1.capitalize() 将字符串的第一个字符改为大写 1 >>> si love cnblog 2 >>> s.capitalize() 3 I love cnblog 2.casefold() 将字符串所有字符改为小写 1 >>> (s.capitalize()).casefold() 2 i love cnblog 3.center(width) 将字…

重学算法第三期|数据结构与算法001

目录 强烈推荐一个数据结构可视化工具&#xff1a;https://www.cs.usfca.edu/~galles/visualization/Algorithms.html&#xff0c;点击B树即可模拟B树的动态插入过程&#xff0c;非常有利于理解 1、开篇词 2、为什么要学习数据结构与算法 3、如何抓住重点&#xff0c;系统高…

部署和调优 3.4 腾讯企业邮箱免费版 未完

浏览器输入腾讯的企业邮箱官网 exmail.qq.com 点右上角的 申请开通 最下面有个 免费版 填好基本信息 根据提示验证密保邮箱 转载于:https://www.cnblogs.com/wangshaojun/p/5079304.html