containerx:Spring的初学者掌握其核心原理-源码

上传者: 42137022 | 上传时间: 2021-03-23 20:06:52 | 文件大小: 363KB | 文件类型: ZIP
集装箱x 简介 :high_voltage:一个迷你型Java依赖注入框架,代码量小,实现了依赖注入和AOP。适合Spring源码的初学者掌握核心原理。 极少使用其他的第三方jar包。 架构思路 自己写一个Spring框架?博主,你在开玩笑吗?通过研究了Spring源码的核心思想,自己用写一个小框架,加载类似的Beans.xml配置,并把bean都以单例方式注册到容器中,并用InvocationHandler来实现AOP这个,就是核心思想,而且完全可行。只不过没有Spring原始那样处理其他的细枝末节。 容器的本质是什么?-ConcurrentHashMap! 键是bean的名称,值就是那个单例bean。有没有感觉豁然开朗?这样可以实现带依赖注入功能的容器。 InvocationHandler,还有Proxy.newProxyInstance()...灵光一闪,是不是有实现AOP的思路了? 实现的功能 sette

文件下载

资源详情

[{"title":"( 41 个子文件 363KB ) containerx:Spring的初学者掌握其核心原理-源码","children":[{"title":"containerx-develop","children":[{"title":"containerx","children":[{"title":"src","children":[{"title":"main","children":[{"title":"java","children":[{"title":"io","children":[{"title":"github","children":[{"title":"flylib","children":[{"title":"containerx","children":[{"title":"beans","children":[{"title":"container","children":[{"title":"BeanContainer.java <span style='color:#111;'> 601B </span>","children":null,"spread":false},{"title":"BeanRegistry.java <span style='color:#111;'> 598B </span>","children":null,"spread":false},{"title":"BeanGenerator.java <span style='color:#111;'> 2.01KB </span>","children":null,"spread":false}],"spread":true},{"title":"model","children":[{"title":"BeanElement.java <span style='color:#111;'> 616B </span>","children":null,"spread":false},{"title":"PropertyElement.java <span style='color:#111;'> 360B </span>","children":null,"spread":false}],"spread":true},{"title":"factory","children":[{"title":"XmlBeanFactory.java <span style='color:#111;'> 2.63KB </span>","children":null,"spread":false},{"title":"BeanFactory.java <span style='color:#111;'> 124B </span>","children":null,"spread":false}],"spread":true},{"title":"parser","children":[{"title":"xml","children":[{"title":"BeanValidation.java <span style='color:#111;'> 592B </span>","children":null,"spread":false},{"title":"DefaultDocumentLoader.java <span style='color:#111;'> 4.56KB </span>","children":null,"spread":false}],"spread":false}],"spread":true}],"spread":true},{"title":"aop","children":[{"title":"model","children":[{"title":"AspectElement.java <span style='color:#111;'> 1.11KB </span>","children":null,"spread":false},{"title":"AspectListElement.java <span style='color:#111;'> 570B </span>","children":null,"spread":false}],"spread":true},{"title":"constant","children":[{"title":"AopTagName.java <span style='color:#111;'> 197B </span>","children":null,"spread":false}],"spread":true},{"title":"proxy","children":[{"title":"AopBeanProxy.java <span style='color:#111;'> 1.71KB </span>","children":null,"spread":false}],"spread":true},{"title":"util","children":[{"title":"XmlUtil.java <span style='color:#111;'> 1.55KB </span>","children":null,"spread":false}],"spread":false},{"title":"parser","children":[{"title":"AopConfigParser.java <span style='color:#111;'> 1.45KB </span>","children":null,"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"LICENSE <span style='color:#111;'> 1.05KB </span>","children":null,"spread":false},{"title":"pom.xml <span style='color:#111;'> 3.14KB </span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 235B </span>","children":null,"spread":false}],"spread":true},{"title":"containerx-demo","children":[{"title":"src","children":[{"title":"main","children":[{"title":"resources","children":[{"title":"beans.xml <span style='color:#111;'> 1.16KB </span>","children":null,"spread":false}],"spread":true},{"title":"java","children":[{"title":"io","children":[{"title":"github","children":[{"title":"flylib","children":[{"title":"containerx","children":[{"title":"demo","children":[{"title":"service","children":[{"title":"DemoServiceImpl.java <span style='color:#111;'> 376B </span>","children":null,"spread":false},{"title":"DemoService.java <span style='color:#111;'> 110B </span>","children":null,"spread":false}],"spread":true},{"title":"aspect","children":[{"title":"DemoAspect.java <span style='color:#111;'> 541B </span>","children":null,"spread":false}],"spread":true},{"title":"model","children":[{"title":"Person.java <span style='color:#111;'> 348B </span>","children":null,"spread":false}],"spread":false},{"title":"app","children":[{"title":"ContainerxDemoApp.java <span style='color:#111;'> 1.19KB </span>","children":null,"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"LICENSE <span style='color:#111;'> 1.05KB </span>","children":null,"spread":false},{"title":"pom.xml <span style='color:#111;'> 1.95KB </span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 235B </span>","children":null,"spread":false},{"title":"bin","children":[{"title":"src","children":[{"title":"main","children":[{"title":"resources","children":[{"title":"beans.xml <span style='color:#111;'> 1.15KB </span>","children":null,"spread":false}],"spread":true},{"title":"java","children":[{"title":"org","children":[{"title":"flylib","children":[{"title":"containerx","children":[{"title":"demo","children":[{"title":"service","children":[{"title":"DemoServiceImpl.class <span style='color:#111;'> 1.17KB </span>","children":null,"spread":false},{"title":"DemoService.class <span style='color:#111;'> 542B </span>","children":null,"spread":false}],"spread":false},{"title":"aspect","children":[{"title":"DemoAspect.class <span style='color:#111;'> 1018B </span>","children":null,"spread":false}],"spread":false},{"title":"model","children":[{"title":"Person.class <span style='color:#111;'> 1.56KB </span>","children":null,"spread":false}],"spread":false},{"title":"app","children":[{"title":"Main.class <span style='color:#111;'> 2.47KB </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"pom.xml <span style='color:#111;'> 813B </span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 43B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"LICENSE <span style='color:#111;'> 1.05KB </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 6.99KB </span>","children":null,"spread":false},{"title":"pom.xml <span style='color:#111;'> 1024B </span>","children":null,"spread":false},{"title":"alipay.png <span style='color:#111;'> 205.79KB </span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 235B </span>","children":null,"spread":false},{"title":"wechat.png <span style='color:#111;'> 124.90KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明