标签分类
当前位置:首页 > 程序设计电子书 > SSM框架电子书网盘下载
互联网轻量级SSM框架解密 互联网轻量级SSM框架解密
gaintxiao

gaintxiao 提供上传

资源
47
粉丝
22
喜欢
87
评论
14

    互联网轻量级SSM框架解密 PDF 原书扫描版

    SSM框架电子书
    • 发布时间:

    给大家带来的一篇关于SSM框架相关的电子书资源,介绍了关于SSM框架、Spring、Spring MVC、MyBatis方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小68.7 MB,李艳鹏编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.2,更多相关的学习资源可以参阅 程序设计电子书、等栏目。

  • 互联网轻量级SSM框架解密 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1uYg8mPDAaNaxNKb1dMlRUQ
  • 分享码:14m1
  • 互联网轻量级SSM框架解密 PDF

    这书为云时代架构系列丛书暨《分布式服务架构:原理、设计与实战》《可伸缩服务架构:架构与分布式数据库》以后的史无前例逆世大作!

    SSM是Spring、Spring MVC和MyBatis架构的组成,是现阶段Java行业应用十分普遍也十分平稳的开源系统Web架构。这书以SSM的关键编码分析为基本,攻克Java Web产品研发短板的拘束,选择Spring、Spring MVC和MyBatis架构中便于了解的版本号,深层次分析了在其中每个控制模块的保持,从编码中发掘常见的设计模式,为用户了解Spring系列产品架构的可拓展设计造型艺术出示了科学方法论和出色实践活动。这书Spring源代码分析篇应用场景Spring 4.3.2版本号,分析了Spring语义、Spring AOP和Spring事务管理的保持,并根据案例展现了架构圈套的防御性及学习培训架构原理的重要性。Spring MVC源代码分析篇应用场景Spring MVC 5.0版本号,这一版本号非常简单、关键清楚,有利于用户了解深入,这儿关键解读在其中的设计模式及可插下的设计理念。MyBatis源代码分析篇应用场景MyBatis 3.4版本号,协助用户对SQL語言、JDBC及统计数据浏览方法有更深层次的掌握,也可以见到加工厂、Builder、代理商、装饰设计者等设计模式在MyBatis中的很多运用。这书针对互联网技术从业人员,或是传统产业的IT技术工程师、系统架构师、技术性主管、技术主管,及其想深耕细作IT制造行业的专业技术人员常有较强的效仿性和实际意义。

    目录

    • 第1篇 深入剖析Spring源码
    • 第1章 Spring基础介绍 2
    • 1.1 Spring的核心结构 2
    • 1.2 Spring的领域模型 6
    • 第2章 Spring上下文和容器 7
    • 2.1 Spring上下文的设计 7
    • 2.2 Spring容器BeanFactory的设计 11
    • 2.3 Spring父子上下文与容器 13
    • 第3章 Spring加载机制的设计与实现 18
    • 3.1 Spring ApplicationContext的加载及源码实现 18
    • 3.2 Spring XML文件标签加载解析及自定义 27
    • 3.3 Spring注解的加载及自动注入 31
    • 第4章 Spring Bean探秘 45
    • 4.1 Spring Bean的定义和注册设计 45
    • 4.2 Spring Bean的定义模型 47
    • 4.3 Spring Bean的运行(获取、创建)实现 48
    • 4.4 Spring Bean的依赖注入的实现 59
    • 4.5 Spring Bean的初始化 70
    • 第5章 Spring代理与AOP 74
    • 5.1 Spring代理的设计及JDK、CGLIB动态代理 75
    • 5.2 Spring AOP的设计 82
    • 5.3 Spring AOP的加载和执行机制 83
    • 5.3.1 Spring AOP的加载及源码解析 83
    • 5.3.2 Spring AOP的创建执行及源码解析 88
    • 5.4 Spring事务管理设计及源码 101
    • 5.5 Spring事务传播机制 115
    • 第6章 Spring实战 118
    • 6.1 对Spring重复AOP问题的分析 118
    • 6.2 Spring Bean循环依赖的问题 125
    • 第2篇 深入剖析Spring MVC源码
    • 第7章 MVC简介 138
    • 7.1 MVC的体系结构和工作原理 138
    • 7.1.1 控制器 139
    • 7.1.2 视图 139
    • 7.1.3 模型 140
    • 7.2 Web MVC的体系结构和工作原理 140
    • 第8章 Spring Web MVC工作流 142
    • 8.1 组件及其接口 142
    • 8.1.1 DispatcherServlet 143
    • 8.1.2 处理器映射 143
    • 8.1.3 处理器适配器 144
    • 8.1.4 处理器与控制器 145
    • 8.1.5 视图解析器 145
    • 8.1.6 视图 146
    • 8.2 组件间的协调通信 146
    • 第9章 DispatcherServlet的实现 148
    • 9.1 深入剖析GenericServlet和HttpServlet 150
    • 9.1.1 HTTP和Servlet规范简介 150
    • 9.1.2 Servlet和GenericServlet详解 152
    • 9.1.3 HttpServlet详解 152
    • 9.2 深入剖析DispatcherServlet 159
    • 9.2.1 HttpServletBean详解 161
    • 9.2.2 FrameworkServlet详解 162
    • 9.2.3 DispatchServlet详解 166
    • 9.3 根共享环境的加载 182
    • 9.3.1 基于Servlet环境监听器的实现结构 182
    • 9.3.2 多级Spring环境的加载方式 189
    • 第10章 基于简单控制器的流程实现 194
    • 10.1 通过Bean名称URL处理器映射获取处理器执行链 194
    • 10.1.1 抽象处理器映射 196
    • 10.1.2 抽象URL处理器映射 199
    • 10.1.3 抽象探测URL处理器映射 209
    • 10.1.4 Bean名称URL处理器映射 210
    • 10.2 通过处理器适配器把请求转接给处理器 211
    • 10.2.1 简单控制处理适配器的设计 211
    • 10.2.2 表单控制器处理HTTP请求的流程 212
    • 10.3 对控制器类体系结构的深入剖析 214
    • 10.3.1 Web内容产生器 215
    • 10.3.2 抽象控制器类 217
    • 10.3.3 基本命令控制器 218
    • 10.3.4 抽象表单控制器 222
    • 10.3.5 简单表单控制器 229
    • 第11章 基于注解控制器的流程实现 230
    • 11.1 默认注解处理器映射的实现 230
    • 11.2 注解处理器适配器的架构设计 237
    • 11.3 深入剖析注解控制器的处理流程 238
    • 11.3.1 解析处理器方法 241
    • 11.3.2 解析处理器方法的参数 253
    • 11.3.3 绑定、初始化领域模型和管理领域模型 272
    • 11.3.4 调用处理器方法 278
    • 11.3.5 处理方法返回值和隐式模型到模型或视图的映射 281
    • 11.3.6 如何更新模型数据 286
    • 第12章 基于HTTP请求处理器实现RPC 288
    • 12.1 深入剖析RPC客户端的实现 289
    • 12.2 深入剖析RPC服务端的实现 299
    • 第13章 深入剖析处理器映射、处理器适配器及处理器的实现 311
    • 13.1 处理器映射的实现架构 311
    • 13.1.1 处理器映射实现类 312
    • 13.1.2 处理器映射抽象类 313
    • 13.1.3 对处理器映射类的代码剖析 315
    • 13.2 处理器适配器的实现架构 322
    • 13.3 深入剖析处理器 325
    • 13.3.1 简单控制器 325
    • 13.3.2 注解控制器 339
    • 13.3.3 HTTP请求处理器 342
    • 13.4 拦截器的实现架构 344
    • 第14章 视图解析和视图显示 353
    • 14.1 基于URL的视图解析器和视图 353
    • 14.1.1 内部资源视图解析器和内部资源视图 365
    • 14.1.2 瓦块视图解析器和瓦块视图 371
    • 14.1.3 模板视图解析器和模板视图 373
    • 14.1.4 XSLT视图解析器和XSLT视图 377
    • 14.2 更多的视图解析器 378
    • 14.2.1 Bean名称视图解析器 378
    • 14.2.2 内容选择视图解析器 379
    • 14.2.3 资源绑定视图解析器 383
    • 14.2.4 XML视图解析器 385
    • 第3篇 深入剖析MyBatis源码
    • 第15章 MyBatis介绍 388
    • 15.1 MyBatis的历史 388
    • 15.2 MyBatis子项目 389
    • 15.3 MyBatis的自身定位 389
    • 15.3.1 JPA持久化框架 390
    • 15.3.2 MyBatis的功能 390
    • 15.3.3 MyBatis与JPA的异同 390
    • 15.4 MyBatis的架构 391
    • 15.4.1 模块 391
    • 15.4.2 MyBatis的项目包 392
    • 第16章 构建阶段 394
    • 16.1 关键类 394
    • 16.2 关键时序 395
    • 16.3 构建的入口:SqlSessionFactoryBuilder和SqlSessionFactory 396
    • 16.4 配置(Configuration)和配置构造器(XmlConfigBuilder) 397
    • 16.4.1 XmlConfigBuilder的初始化 397
    • 16.4.2 完整的mybatis-3-config.dtd 399
    • 16.4.3 解析配置文件构建Configuration配置 399
    • 16.5 SQL简介 418
    • 16.6 SQL映射的构建 419
    • 16.6.1 通过XML定义的SQL Mapper 419
    • 16.6.2 Configuration类中与SQL Mapping相关的类 420
    • 16.6.3 XmlMapperBuilder是如何工作的 421
    • 16.6.4 映射注解器定义的SQL Mapper 438
    • 16.6.5 小结 440
    • 第17章 执行阶段 441
    • 17.1 关键类 441
    • 17.2 关键接口及默认实现初始化 442
    • 17.2.1 SqlSession及其关联类的构建过程 442
    • 17.2.2 StatementHandler语句处理器 446
    • 17.3 DQL语句是如何执行的 448
    • 17.3.1 查询接口 448
    • 17.3.2 关键时序 449
    • 17.3.3 程序执行查询的入口:DefaultSqlSession#selectList(statement) 450
    • 17.3.4 生成执行语句:getMappedStatement() 450
    • 17.3.5 执行器查询:Executor#query() 451
    • 17.3.6 JDBC执行语句:SimpleStatementHandler#query() 455
    • 17.3.7 结果集处理:DefaultResultSetHandler#handlerResultSets() 455
    • 17.4 DML语句是如何执行的 460
    • 17.4.1 操作接口 460
    • 17.4.2 关键时序 460
    • 17.4.3 程序执行更新的入口:DefaultSqlSession#update() 461
    • 17.4.4 执行器执行方法:Executor#update() 461
    • 17.4.5 SQL语句执行:SimpleStatementHandler#update() 464
    • 17.4.6 结果集主键逻辑:Jdbc3KeyGenerator#processAfter() 464
    • 17.5 小结 466
    • 第18章 专题特性解析 467
    • 18.1 动态SQL支持 467
    • 18.1.1 XmlScriptBuilder解析配置 467
    • 18.1.2 NodeHandler构建SqlNode树 468
    • 18.1.3 SqlNode处理SQL语句 471
    • 18.2 MyBatis的缓存支持 477
    • 18.2.1 本地缓存 478
    • 18.2.2 二级缓存 482
    • 18.3 结果集支持:Object、List、Map和Cursor 491
    • 18.4 自定义扩展点及接口 496
    • 第19章 作为中间件如何承上启下 498
    • 19.1 MyBatis与底层的JDBC 498
    • 19.1.1 java.sql.DataSource 498
    • 19.1.2 java.sql.Connection 499
    • 19.1.3 java.sql.Statement 500
    • 19.1.4 java.sql.Resultset 502
    • 19.2 MyBatis的主流集成方式 502
    • 19.2.1 mybatis-spring简介 502
    • 19.2.2 Spring对JDBC的支持 502
    • 19.2.3 mybatis-spring与Spring 504

    上一篇:iOS实战图形图像、动画和多媒体卷  下一篇:人工智能时代

    展开 +

    收起 -

    码小辫二维码
     ←点击下载即可登录

    SSM框架相关电子书
    学习笔记
    网友NO.642779

    Python中staticmethod和classmethod的作用与区别

    一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。 而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。 这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁。 既然@staticmethod和@classmethod都可以直接类名.方法名()来调用,那他们有什么区别呢 从它们的使用上来看 @staticmethod不需要表示自身对象的self和自身类的cls参数,就跟使用函数一样。 @classmethod也不需要self参数,但第一个参数需要是表示自身类的cls参数。 如果在@staticmethod中要调用到这个类的一些属性方法,只能直接类名.属性名或类名.方法名。 而@classmethod因为持有cls参数,可以来调用类的属性,类的方法,实例化对象等,避免硬编码。 要明白,什么是实例方法、静态方法和类方法: class Demo(object): def instance_method(self, your_para): """ this is an instance_method you should call it like the follow: a = Demo() a.instance_method(your_para) plus: in python, we denote 'cls' as latent para of Class while 'self' as latent para of the instance of the Class :param your_para: :return: """ print("call instance_method and get:", your_para) @classmethod def class_method(cls, your_para): """ this is a class_method you can call it like the follow: method1: a = Demo() a.class_method(your_para) method2: Dem……

    网友NO.369165

    vue+SSM实现验证码功能

    源码:https://github.com/HannahLihui/StudentManager-SSM/tree/master/SSM-git/StudentManager-SSM-master 1.前端有一个img引入,这里this.src=this.src+'?'就会调用映射到后台的checkCode el-form-item prop="code" img src="checkCode" alt="" width="100" height="32" class="passcode" onclick="this.src=this.src+'?'" el-input v-model="login.code" placeholder="请输入验证码" auto-complete="off"/el-input/el-form-item 2.后台返回一个图片 @RequestMapping(value="/checkCode") public void checkCode(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置相应类型,告诉浏览器输出的内容为图片 response.setContentType("image/jpeg"); HttpSession session = request.getSession(); //设置响应头信息,告诉浏览器不要缓存此内容 response.setHeader("pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expire", ); RandomValidateCode randomValidateCode = new RandomValidateCode(); try { randomValidateCode.getRandcode(request, response); } catch (Exception e) { e.printStackTrace(); } } 3.是通过RandomValidateCode生成随机字符串以及图片。下面这个代码可以直接用一下。来自: https://www.jb51.net/article/152255.htm public class RandomValidateCode {public static final String RANDOMCODEKEY = "randomcode_key";//放到session中的key private Random random = new Random(); private String randString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";/……

    网友NO.816171

    对于初学者如何理解 @classmethod 和@staticmethod

    staticmethod相当于一个定义在类里面的函数,所以如果一个方法既不跟实例相关也不跟特定的类相关,推荐将其定义为一个staticmethod,这样不仅使代码一目了然,而且似的利于维护代码。 子类调用方法隐形传入的参数为该对象所对应的类,调用过程中动态生成了对应的类的类变量。 理解classicmethod和staticmethod类是一种数据结构,可以创建对象。当调用类的时候就创建了一个类的实例对象。一旦对象被创建,python 就会检查是否实现了init()方法。如果init()已经被实现,那么它将被调用,实例对象作为第一个参数(self)被传递进去。 举个例子,定义一个存储日期信息的类Date,这里重新定义了初始化函数。 class Date(object): day = 0 month = 0 year = 0 def __init__(self, day=0, month=0, year=0): self.day = day self.month = month self.year = year def tellDate(self): print 'Today is %s-%s-%s'%(self.day,self.month,self.year) 如果我们需要调用tell Date方法,我们就必须先创建一个实例,或者使用Date().tellDate() date1 = Date()date1.tellDate() 如何直接使用类名调用函数呢? 使用@classmethod或@staticmethod都可以类名.方法名()调用函数 现在假设我们需要创建很多Date的实例,日期信息以字符串的形式从外部传入,格式为'dd-mm-yyyy'。需要做的事 将日期信息字符串parse成一个含有年月日三个变量的元组; 实……

    网友NO.333432

    SSM框架整合之junit测试的方法

    1:和junit一起使用的时候因为没有读取配置文件,所以老是报创建Bean失败,上网查了查,原来是先要读取spring的核心配置文件,这样机也能够启动IOC容器了, 可以先创建一个父类,在父类里面读取配置文件创建IOC容器,然后让子类继承他就可以了 BaseTest.java package com.carry.ssm.test;import javax.annotation.Resource;import javax.security.auth.PrivateCredentialPermission;import org.junit.Test;import org.junit.runner.RunWith;import com.carry.ssm.Services.TestServer;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;/** * 配置spring和junit整合,junit启动时加载springIOC容器 */@RunWith(SpringJUnit4ClassRunner.class)//告诉junit spring配置文件@ContextConfiguration("classpath:applictionContext.xml") //我是放在classpath下的,可以根据自己的路径改public class baseTest { } 2:写测试类 TestUnit.java package com.carry.ssm.test;import javax.annotation.Resource;import org.junit.Test;import com.carry.ssm.Model.User;import com.carry.ssm.Services.TestServer;import com.carry.ssm.Services.UserService;public class TestUnit extends baseTest{@Resourceprivate TestServer bean;@Resourceprivate UserService userService; //注意,这里要用接口,因为用到了spring的AOP /*@Test*/ /* public void inteceptorTest(){ bean.ttst(); } */ @Test public void getUser(){ User user=new User(); user.setUSER_NAME(……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明