Code Monkey home page Code Monkey logo

spring5-samples's Introduction

《Spring5核心原理与30个类手写实战》

4个月销量破万,连续占据畅销榜

倾注十年Spring研究精华与见解

★本书几乎涵盖在Spring应用中可能遇到的所有问题,核心原理(IoC、DI、AOP、MVC)、高仿手写、数据访问等

★深度解析Spring 5的原理与新特性,从环境准备、顶层结构设计、数据访问等方面一步步推导出Spring设计原理

★通过本书你可以:

--看源码不再晕车,轻松找到入口。

--系统学习设计**,提高解决问题的效率。

--培养架构思维能力,自驱学习能力。

--用30个类提炼出Spring核心的精华**,并保证功能可用。

--从不一样的角度分析Spring经典高频面试题。

--了解Spring 5 的新特性。

--为深入了解Spring Boot做铺垫。

关于我

为什么说我来自文艺界?

  我自幼爱好书法和美术,长了一双能书会画的手,而且手指又长又白,因此以前的艺名叫“玉手藝人”。中学期间,曾获市级书法竞赛一等奖,校园美术竞赛一等奖,校园征文比赛二等奖。担任过学生会宣传部长,负责校园黑板报、校园刊物的编辑、排版、设计。   2008年参加工作后,做过家具建模、平面设计等工作,亲自设计了咕泡学院的Logo。做讲师之后,给自己起了一个跟姓氏谐音的英文名字“Tom”,江湖人称“编程界写字写得最好的、书法界编程最牛的文艺汤”。

我的技术生涯

  我的IT技术生涯应该算是从2009年开始的,在此之前做过UI设计,做过前端网页,到2009年才真正开始参与Java后台开发。在这里要感谢所有帮助过我入门编程的同事和老师。从2010年至2014年担任过项目组长、项目经理、架构师、技术总监,对很多的开源框架建立了自己的独特见解。我会习惯性地用形象思维来理解抽象世界。譬如:看到二进制0和1,我会想到《周易》中的两仪——阴和阳;看到颜色值用RGB表示,我会想到美术理论中的太阳光折射三原色;下班回家看到炒菜流程,我会想到模板方法模式;坐公交车看到学生卡、老人卡、爱心卡,我会想到策略模式;等等。大家看到的这本书,很多地方都融入了这种形象思维。

为什么写书?

  其实一开始我没想过要写书,写书的初衷主要是满足学员的诉求。大家认为我个人的学习方法、思维模式、教学方式通俗易懂,很容易让人接受,但是通过视频形式传播受众有限,学员建议我把这些宝贵的经验以纸质书的形式奉献给大家,这样定会给社会带来更大的价值。   借此机会,特别感谢责任编辑董英及电子社的团队成员为本书审稿纠错;感谢我老婆在无数个加班的夜晚给我默默的支持;感谢咕泡学院的学员给本书内容提出宝贵的修改意见。

随书资源下载

  1. 一步一步手绘Spring DI运行时序图.jpg
  2. 一步一步手绘Spring IOC运行时序图.jpg
  3. 一步一步手绘Spring AOP运行时序图.jpg
  4. 一步一步手绘Spring MVC运行时序图.jpg
  5. SpringMVC核心组件关系图.png
  6. SpringJDBC异常结构图.png

技术交流

关注公众号Tom弹架构

推荐《Netty 4核心原理与手写RPC框架实战》上架3个月销量突破10000册!

推荐《设计模式就该这样学》已全面开启预售!!!

spring5-samples's People

Contributors

gupaoedu-tom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spring5-samples's Issues

com.gupaoedu.demo.mvc.action.DemoAction.java

Line 18:
@GPAutowired private IDemoService demoService;

Line 23-24:
String result = demoService.get(name);
// String result = "My name is " + name;

This is not gonna work. demoService is state as an implement class of IDemoService, but you never initial demoService, get() method will not run.

And this lead to the demoService in this class will be null all the time. Which means the class you put into the mappings in your com.gupaoedu.mvcframework.v1.servlet.GPDispatcherServlet have this as null as well. And the invoke() method will throw null exception.

I am a new learner to spring. But I can't run your code so I tried to find out what happened. I think you have the same problem so that the line 24 is not used.

第5篇 spring数据访问 有代码吗?

这部分感觉有点绕,书上的代码跳来跳去的,看不太明白。。。
书上说完整代码让我们自行下载,所以书上只提供了部分代码,可是目前可供下载的代码里没有这一部分

orm实例代码无

花了一周多的时间看这本书,收获确实有,了解了整个过程,但是关于设计模式的运用还是没有讲的太清楚,以及orm的代码没有,在后半部分的学习中有点受阻,了解spring原理是够用的,很多细节也没有展开

别看了,没有一个书里例子跑的通的,代码一塌糊涂

各种跑不通各种有问题,就不说那pom.xml里头多的那些plugins都是些啥了。
本身改改吧,根据自己对spring的理解,还能跑,然后看到这个文件,我惊了,惊得都懒得打英文了
GPAdvisedSupport
里头pattern的regex的处理是个啥东西?你来匹配你的logAspect文件的regex又去匹配handler的名字?还是toString的名字?????

com.gupaoedu.mvcframework.v1.servlet.GPDispatcherServlet有bug

函数doScanner里获取url应该是:
URL url = this.getClass().getClassLoader().getResource(scanPackage.replaceAll("\.","/")); getResource使用的是相对路径,不是绝对路径。
函数init里for (String className : mapping.keySet()) {} 这个循环里有问题,因为循环里改动了mapping,往mapping里面放入对象,导致循环出现bug;应该在循环之前把mapping深拷贝一份,为tmpMapping。
如: Map<String,Object> tmpMapping = new HashMap<String, Object>();
for (String className : mapping.keySet()) {
tmpMapping.put(className, mapping.get(className));
}
循环的时候使用tmpMapping
for (String className : tmpMapping.keySet()) {}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.