书籍很遗憾,虽然打造了一年半,终于写完了,但无法出版。一共626页,80万字符,25万汉字。
因为文笔不是很好,被编辑要求修改,我知道自己的文笔就是这样了,写写博客可以,但要达到电子工业出版社编辑的要求,我估摸着得精心修改2-3次。我放弃了可能出版的机会。
但是书名我还是要在这里告知大家一声:《SSM深入解析与项目实战》
我打算将书中内容以专栏的形式进行呈现给大家,帮助大家更好的学习Spring知识应用以及源码的阅读。
后续的话,每周会都进行专栏文章的发表和更新。
专栏文章中只会贴核心代码。
所有的代码在文章中github中都可以找到。
在专栏的后面,还有一个企业级项目的实战。
从数据库设计到项目架构一直到代码实现,让你体验一个完整项目的开发流程。
本书从Spring、Spring MVC和MyBatis的源码组件开始讲解,再到SSM的基础应用,逐步深入到SSM的核心特性以及最后的项目实战。通过对本书的学习,读者更加容易理解SSM框架的设计与思想,从而可以更好地运用到工作实战中去,更加容易的解决一些基于Spring的项目运行BUG。在以后学习中也能通过本书习得的学习方法更加快速地理解和掌握新技术。
本书是结合大量实例进行讲解的,按书中讲解和配套资源所示操作,保证所有实例均可运行。本书适合想学习SSM框架的Java技术爱好者,尤其是有一些基础,但不知道如何继续深入的Java开发人员,以及其他对Java感兴趣的计算机专业学习、开源项目爱好者等。
项目中所有的源码都可以在此链接的仓库中找到:https://github.com/chenhaoxiang/uifuture-ssm
首先在这里,我要感谢石老板(石雷,对标阿里P9/P10),在工作百忙之中,帮我对书籍进行了一些文字和专业性知识的更正。
另外还要感谢聂总(厉森彪,花名聂鹏,对标阿里P9/P10),也在帮我美化书中的文笔和更改可能有误的专业知识。
在此还要感谢一些专家,邀请到了出版时对书进行点评,但是却没有机会再找他们谈及此事。
——巴蔓
——吴建南
——徐雷
——杨冠宝
非常感谢以上四位大佬
本专栏的所有内容,由于是收费专栏,非常抱歉的告诉您,禁止转载文章。
下面是书的目录,不敢说把Spring的所有点都讲到了,但是我敢说,99.9%你要在企业开发中,应用到的Spring技术,本专栏都涉及了,还给你分析了源码!
希望能对你有所帮助。
1.1.1 如何学习Spring
1.1.2 IoC(Inversion of Control 控制反转)
1.1.3 AOP(Aspect Oriented Programing面向切面编程)
1.2 了解MyBatis
1.2.1 MyBatis简介
1.2.2 Hibernate简介
1.2.3 MyBatis和Hibernate的比较
1.5 Spring、Spring MVC、MyBatis框架运行流程
第2章 基本概念
2.1.1 对象的实例流程
2.1.2 双亲委派模型
2.1.3 类加载器的工作原理
2.1.4 自定义类加载器
2.2.1 什么是反射(Reflection)
2.2.2 类反射入门实例
2.2.3 通过类反射实现工厂方法
2.2.4 获取Class对象的三种方式
2.2.5 反射的应用场景与优缺点
2.3.1 理解动态代理
2.3.2 JDK动态代理
2.3.3 CGLIB动态代理
2.4.1 Windows系统安装Maven
2.4.2 IDEA中配置Maven
2.4.3 Maven中的一些常用命令
3.1.1 懒汉式单例类
3.1.2 饿汉式单例类
3.2.1 简单工厂模式(Simple Factory Pattern)
3.2.2 工厂方法模式(Factory Method Pattern)
3.2.3 抽象工厂模式(Abstract Factory)
3.4.1 策略模式的定义
3.4.2 策略模式的作用
3.4.3 模式结构
3.4.4 场景实例
3.5.1 策略模式与模板模式
3.5.2 场景实例
3.6.1 MVC中三大组件
3.6.2 MVC的优点
3.6.3 MVC实现
4.1.1 Spring MVC是什么
4.1.2 Spring MVC能做什么
4.2.1 运行流程
4.2.2 Handler和Controller的联系
4.3.1 DispatcherServlet(前端控制器)
4.3.2 HandlerMapping(映射处理器)
4.3.3 Handler(处理器)
4.3.4 HandlerAdapter(适配处理器)
4.3.5 ViewResolver(视图解析器)
4.3.6 View(视图)
5.1.1 使用IDEA构建Maven项目
5.1.2 进行配置项目依赖
5.1.3 项目日志配置
5.1.4 演示页面
5.1.5 Spring MVC配置类
5.1.6 Web配置类
5.1.7 Controller层开发
5.1.8 进行Tomcat启动
5.1.9 NoClassDefFoundError-jstl异常处理
5.1.10 页面演示
5.2.1 Controller注解
5.2.2 RequestMapping注解
5.2.3 ResponseBody注解
5.2.4 RequestBody注解
5.2.5 PathVariable注解
5.2.6 RestController注解
5.2.7 CookieValue注解
5.2.8 RequestParam注解
5.2.9 InitBinder注解
5.3.1 JSON和对象之间的转换
5.3.2 XML和对象之间的转换
5.4.1 编程式静态资源映射
5.4.2 XML配置静态资源映射
6.1.1 HandlerMapping的作用
6.1.2 HandlerMapping源码
6.1.3 HandlerMapping初始化
6.1.4 DispatcherServlet.properties文件内容
6.1.5 RequestMappingHandlerMapping分析
6.2.1 HandlerAdapter源码
6.2.2 HandlerAdapter初始化
6.2.3 RequestMappingHandlerAdapter分析
6.3.1 HandlerExceptionResolver源码
6.3.2 HandlerExceptionResolver初始化
6.4.1 ViewResolver源码
6.4.2 ViewResolver初始化
6.4.3 resolveViewName方法被调用过程
6.4.4 ViewResolverRegistry分析
6.5.1 RequestToViewNameTranslator接口被调用情况
6.5.2 RequestToViewNameTranslator初始化
6.5.3 DefaultRequestToViewNameTranslator分析
6.6.1 LocaleResolver初始化
6.6.2 AcceptHeaderLocaleResolver分析
6.6.3 SessionLocaleResolver分析
6.6.4 MessageSource国际化资源分析
6.7.1 ThemeResolver初始化
6.7.2 ThemeResolver源码
6.7.3 ThemeResolver实现类
6.7.4 ThemeSource主题资源分析
6.8.1 MultipartResolver源码
6.8.2 MultipartResolver初始化
6.8.3 CommonsMultipartResolver分析
6.9.1 FlashMapManager初始化
6.9.2 FlashMapManager源码
6.9.3 SessionFlashMapManager分析
7.1.1 Spring MVC中的转发方式
7.1.2 通过ViewResolver进行请求转发
7.1.3 通过ModelAndView对象进行请求转发
7.1.4 使用HttpServletRequest进行转发
7.1.5 Spring MVC中的重定向方式
7.1.6 通过ModelAndView实现重定向与传参
7.1.7 通过RedirectView对象实现重定向
7.1.8 转发与重定向中绝对路径
7.2.1 配置静态资源的缓存
7.2.2 使用GzipResourceResolver进行静态资源压缩的加载
7.2.3 GZIP一键压缩工具
7.3.1 文件的上传与零XML注册拦截器
7.3.2 使用ResponseEntity进行文件的下载
7.3.3 大文件的下载
7.4.1 主题的配置使用
7.4.2 使用SessionThemeResolver 来切换主题
7.4.3 使用Spring MVC内置拦截器进行主题切换
8.1.1 使用HandlerExceptionResolver接口进行全局异常处理
8.1.2 使用SimpleMappingExceptionResolver进行全局异常处理
8.1.3 使用ExceptionHandler注解进行全局异常处理
8.2.1 拦截器与过滤器的区别
8.2.2 Spring MVC中实现拦截器
8.2.3 使用DelegatingFilterProxy在过滤器中注入Bean
8.2.4 使用HandlerInterceptor接口实现拦截器
8.3.1 Spring MVC中JSON交互形式
8.3.2 应用实例
9.1.1 SqlSessionFactoryBuilder源码
9.2.1 XMLConfigBuilder构造函数
9.2.2 parse方法和parseConfiguration方法
9.2.3 loadCustomVfs方法
9.2.4 settingsElement方法
9.2.5 environmentsElement方法
9.2.6 typeHandlerElement方法
9.2.7 mapperElement方法
9.3.1 SqlSessionFactory源码
9.3.2 DefaultSqlSessionFactory分析
9.4.1 多个参数的select高级方法
9.4.2 带参数的增删改查方法
9.5.1 MapperAnnotationBuilder类中的parse方法
9.5.2 MapperAnnotationBuilder类中loadXmlResource方法
9.5.3 parseCache方法和parseCacheRef方法
9.5.4 MapperAnnotationBuilder类中的parseStatement方法
9.5.5 MyBatis中注解与XML标签的对应和描述
10.7.1 transactionManager 事务管理器
10.7.2 dataSource 数据源
11.1.1 sql元素
11.2.1 insert与update处理主键自动生成
11.2.2 insert多行数据获取所有对象的主键
11.2.3 通过insert获取自增长主键值的另一种方式
11.3.1 安全传参
11.3.2 字符串替换
11.4.1 高级结果映射
11.4.2 id与result元素
11.4.3 关联元素(association、collection)
11.4.4 关联的嵌套结果
11.4.5 集合(一对多查询)
11.4.6 集合嵌套查询与嵌套结果
11.4.7 鉴别器
11.6.1 缓存的属性
11.6.2 自定义缓存
11.7.1 一级缓存
11.7.2 二级缓存
11.8.1 cache元素定义
11.8.2 cache-ref元素定义
11.9.1 二级缓存的测试
11.9.2 二级缓存使用原则
12.6.1 多数据库厂商支持
12.6.2 动态 SQL 中的可插拔脚本语言
13.1.1 MBG会生成的代码
13.1.2 MBG依赖项
13.2.1 XML配置文件实例
13.3.1 使用Maven插件运行MBG
13.3.2 完整的MBG配置文件
13.3.3 MBG其他配置
13.4.1 方式一
13.4.2 方式二
13.4.3 总结
14.4.1 BeanFactory接口
14.4.2 ApplicationContext接口
14.7.1 Spring IoC快速入门案例
14.7.2 Spring容器通过XML和注解方式装配Bean
14.7.3 构造方法注入(constructor injection)
14.7.4 setter方法注入(setter injection)
14.7.5 接口注入(interface injection)
15.1.1 Bean的作用域
15.2.1 使用XML装配Bean
15.2.2 使用注解装配Bean
15.2.2 使用Java类装配Bean
15.3.1 使用构造器创建Bean实例
15.3.2 使用静态工厂方法创建Bean实例
15.3.3 调用实例工厂方法创建Bean实例
15.4.1 通过 context:property-placeholder 标签加载
15.4.2 通过 util:properties 标签加载
15.4.3 通过PropertyPlaceholderConfigurer类加载
15.4.3 通过PropertyPlaceholderConfigurer类加载
15.5.1 Conditional注解源码解析
15.5.2 演示Conditional注解
15.5.3 ConditionContext与AnnotatedTypeMetadata讲解
15.6.1 事件驱动模型
15.6.2 Spring中的事件驱动模型
15.6.3 Spring中的事件广播器
15.6.4:演示Spring的事件机制
15.7.1 使用注解配置定时器
15.8.1 SpEL的功能特性
15.8.2 SpEL基础
15.8.3 SpEL的原理以及接口
15.8.4 SpEL相关语法
15.9.1 context:annotation-config的作用
15.9.2 context:annotation-config源码分析
16.1.1 AOP相关概念
16.1.2 Spring AOP核心接口&类
16.2.1 XML方式演示Spring AOP实例
16.2.2 注解方式演示Spring AOP实例
17.1.1 什么是事务
17.1.2 事务的隔离模式
17.1.3 事务并发的问题
17.1.4 事务类型
17.2.1 Spring事务管理核心接口
17.2.2 Spring使用事务案例的准备
17.2.3 不使用事务进行转账模拟
17.2.4 编程式事务处理转账
17.2.5 声明式事务处理转账
17.3.1 Transactional注解的用法
17.3.2 Transactional 注解的实现原理
17.3.3 声明式事务实现大体分析
17.3.4 声明式事务实现具体分析
18.2.1 功能模块总分
18.2.2 前台模块
18.2.3 前台模块
19.1.1 创建Maven的Web项目
19.1.2 进行配置项目依赖
19.1.3 Spring、MyBatis整合配置
19.1.4 log4j配置与发送日志邮件
19.2.1 学习如何进行调试与查看源码
19.2.2 继承PropertySourcesPlaceholderConfigurer类进行解密处理
19.2.3 继承Properties类进行解密处理
19.3.1 集成MyBatis-Plus
19.3.2 自动生成DAO、Service等层代码
20.1.1 接入Redis
20.1.2 发送邮件配置
20.1.3 Controller层与Server层实现
20.1.4 利用Redis实现数字的原子性自增
20.2.1 用户名/邮箱登录
20.2.2 使用MapStruct进行Bean拷贝
20.2.3 退出功能
20.2.4 Redis实现Session共享
20.2.5 自动登录功能
20.3.1 全局异常捕获与日志输出
20.3.2 登录拦截功能
20.3.3 上传资源文件到本地
20.3.4 上传图片文件到阿里云OSS
20.3.5 资源的发表
20.4.1 增加用户IP记录
20.4.2 用户关注功能
20.4.3 用户收藏功能
20.5.1 简单的评论功能
20.5.2 评论分页功能
20.5.3 评论敏感词过滤
20.5.4 防止XSS攻击
20.6.1 专题资源分页数据
20.6.2 分类资源分页数据
20.6.3 标签资源分页数据
20.6.4 分类、专题、标签数据
20.7.1 交易结构设计
20.7.2 功能实现
20.7.3 管理员登录拦截实现
20.7.4 日志拦截器
20.7.5 总结
以上目录已经为全部写完的一个目录,你不需要担心订阅后文章不更新的情况。