阿里开发规范文档_华为阿里等技术专家15年开发经验总结:SSM整合开发实战文档...

ef70a3ee24af2318e0158aae149c72f5.png

前言

Spring自2002年诞生至今,已有近20年的历史,虽然几经变迁,但始终在继续发展和精进。Spring目前由Pivotal维护和开发。

Pivotal是PaaS(平台即服务)的领导者,也是消息中间件RabbitMQ的缔造者。12306的流量销峰平台Gemfire,也是该公司的手笔。另外,其与知名的NoSQL数据库Redis也渊源颇深。

Spring简化了应用系统的开发,IoC和AOP是它的两大核心理念。IoC容器用来管理组件和注入依赖,AOP进一步降低了模块的耦合性,提高了重用性和开发效率。Spring从最初搭配Structs开发Java Web应用,到Spring MVC的横空出世和成熟,始终保持着良好的扩展性和兼容性。除了默认支持的第三方库之外,其他库也容易实现与Spring的整合,这其中就包括MyBatis。相比Hibernate的全自动ORM框架,MyBatis更加灵活和有弹性,其性能也更容易得到提升。

本文从实战入手,在使用框架开发的基础上,对框架的原理和实现机制做了深入探讨和呈现,让读者知其然也知其所以然。“上士闻道,勤而行之”,技术学习最快捷的方式是在理解的基础上进行实战,在实战的基础上提升对框架的掌握度和理解度,从而实现对框架会用、用对及精用的目标。

因为本文包含的内容实在是太多了,每一章都有更加细化的内容,所以只能把部分知识点拿出来给大家做一个介绍,希望能够得到大家的理解与喜欢!!

目录

0bcc71dfbf90eed482554adc597b069f.png

主要内容

第1篇 Spring核心框架(第1~6章),本篇首先对Spring框架的发展史、体系和生态进行介绍,从宏观上整体俯瞰Spring,然后对Spring的核心框架进行了介绍,具体包括IoC/DI概念浅析、容器配置与初始化、Bean实例化的多种方式、Bean配置属性、依赖注入及前置依赖和循环依赖配置、容器扩展点等。本篇还对Java注解、Spring容器注解及Java代码配置等进行了介绍,另外还介绍了Java测试框架及Spring测试框架等内容。

第1章Spring概述;

1fee26212eada0699c975c0959d770f7.png

第2章Spring loC容器初探;IoC容器是Spring最核心的概念和内容。它替代了传统的new方式初始化对象,通过读取在XML文件中配置的Bean定义,自动创建并管理容器的Bean实例及其生命周期;最重要的是可以在Bean的定义中进行依赖对象的配置,并根据依赖配置自动注入相关依赖,降低对象之间的耦合程度,以达到解耦的效果。Spring提供了多种依赖注入方式,包括构造函数注入和设置值注入等。

为了更好地理解Spring IoC的概念,本章首先对组件、容器、框架及Bean的相关概念、控制反转和依赖注入等概念做简单的介绍,然后再对Spring容器核心进行介绍。

98ab60700ad218f2be9e72644b6e8cd8.png

第3章Web项目环境搭建与项目创建;一门开发语言或一个应用框架的最直观和最快速的学习方法就是搭建好环境,写一个入门的Hello World示例。本章首先从搭建开发环境入手,紧接着创建一个Maven Web的项目(项目名称为ssmi),随后将此Web项目配置成基于Spring框架的项目,进行初步的容器配置,最后以一个简单的实例演示初始化容器和从容器获取Bean的操作。

本书其他章节的代码示例都包含在ssmi项目中,按照章节进行区分。本章中提到的软件工具在本书的配套资源中可以找到。

08beab60d644f151c1433463dd2b2a48.png

第4章Spring loC容器进阶;本章在第2章初步介绍Bean和依赖配置的基础上,将进一步介绍Bean实例化的多种配置方式,以满足更多的Bean初始化场景。除了id和class属性之外,可以设置Bean的更多属性定义Bean的特性和行为,包括作用域属性(scope)、懒加载属性(lazy-init)、初始化和销毁方法(init-method、destroy-method)等。

Bean的依赖注入类型除了一般的Java对象类型之外,也可以是简单类型或集合类型,同一个Bean注入多个依赖,可以指定匹配的规则和顺序。本章最后将介绍容器和Bean的扩展点,用于在Bean的不同生命周期进行功能的扩展。

d7ae28d07747fff8df96ee0d300973b0.png

第5章基于注解和代码的配置;使用XML文件配置是Spring最早的配置方式,大中型项目依据功能或不同的命名空间拆分成多个配置文件,每个配置文件的配置内容都可能比较多,导致配置文件的维护工作量大,也容易出错。

从Spring 2.5开始,在以XML文件作为主要配置的同时,可以将某些配置以注解的方式在代码中直接配置,极大地减少了配置的烦琐度,提高了配置的效率,Java开发人员也更容易熟悉和适应。从Spring 3.0开始可以完全脱离XML文件,使用Java代码的方式进行容器和框架的配置。

6dc3d716ed8d6161fbb2e8284a3db997.png

第6章Spring测试;

0e541f3194e2267a15cdd837dc7ea871.png

第2篇 Spring MVC框架(第7~10章),本篇首先从HTTP和Java Web开始讲起,对Spring MVC的技术细节进行了剖析,包括中央控制器、处理器映射器、处理器适配器及视图解析器等;然后在此基础上对Spring MVC的配置和注解开发进行了介绍,并对MVC项目的类型转换、数据绑定、数据验证和MVC异常处理进行了专题介绍;最后在进阶部分介绍了Spring父子容器、REST风格服务、JSON格式数据返回及文件上传等内容。

第7章Spring Web MVC概述;

99997c4f3fe4b3f93ac810a40305f2c7.png

第8章数据类型的转换、验证与异常处理;

6fa3d46c6a5cefb3a7b0c2bbf48d2045.png

第9章Spring MVC进阶;

e3f9715cca2745c968dd4bc11b5a6933.png

第10章Spring MVC测试框架;

d7199d40254e00648bfc4be8e12d1954.png

第3篇 数据技术(第11~14章),本篇首先介绍了关系型数据库、MySQL与Java数据访问技术、ORM框架、JPA统一接口等内容,然后重点介绍了MyBatis核心接口、XML全局配置及映射配置,并介绍了MyBatis的内部运作、动态SQL、缓存、SQL构造器及基于注解的开发方式等。另外,本篇还对Spring的数据访问技术做了介绍,包括Spring JDBC模板类、Spring DAO、Spring整合ORM及JPA、Spring事务管理等。

第11章数据库与Java数据访问技术;

8ac80e821c34f58a23fc5a6844d59f06.png

第12章MyBatis入门;

009ac879954036242c0426083abe126c.png

第13章MyBatis进阶;

789c57ea84e8b156dd2ce8669483f9f4.png

第14章Spring数据访问与事务管理;

97f1e0d4f838032a867faf5fbc86254b.png

第4篇 SSM整合开发(第15、16章),本篇首先介绍了Spring与Spring MVC,以及Spring与MyBatis整合开发的相关内容,并对异常处理和日志的整合方式进行了分析,然后以一个报表项目为案例,对项目的需求分析、系统分析、系统设计、系统框架搭建及代码开发等整个流程进行了全面介绍。

第15章SSM整合概述;

3d82dc79409a285f8edc63628c890f4e.png

第16章SSM整合实例;

5f248437fbfbeeb39da7e93e25a708c9.png

第5篇 高级开发技术(第17、18章),本篇主要对Spring AOP框架和Spring Security框架进行了介绍。首先在对Java代理和AspectJ框架介绍的基础上对Spring AOP进行了剖析,并对MVC项目中的拦截器和过滤器进行了比较;然后对SpringSecurity用户请求和调用方法两个层级的用户认证和授权开发进行了介绍,并对多线程的相关内容及其在Spring框架中的应用进行了介绍。

第17章Spring AOP与MVC拦截器;AOP是继OOP之后又一种重要的编程思想,作为OOP的补充和扩展,其进一步提高了代码的重用性和开发效率。在Java中,通过代理设计模式和动态代理技术,可以分别在代码结构和代码功能上实现AOP。

除JDK本身的AOP技术外,Java领域也有一些成熟的第三方AOP框架,比如AspectJ、AspectWerkz和Javassist等,其中AspectJ是最为成熟和完善的Java AOP框架。Spring基于JDK动态代理和CGLIB实现了自己的AOP框架,在框架设计和语法上都很大程度地借鉴了AspectJ,并提供了与AspectJ类似的AOP注解。

cc9893fe7537c1e263564585baf57c7b.png

第18章Spring Security框架与多线程;权限代码混在业务逻辑代码中会造成业务代码冗余、混乱,并且容易出错。Spring Security是Spring提供的安全框架,它可以实现在不影响原有业务逻辑代码的前提下,使用过滤器(Filter)对资源层级进行保护,以及使用Spring AOP实现对方法层级的权限控制。本章主要介绍Spring Security框架的内容及用法,另外还会对Java多线程及其在Spring中的应用做简单介绍。

5944aba5785b1540fda49094591bcb94.png

这份【Spring+Spring MVC+MyBatis整合开发实战】共有1014页,因为文章内容限制不能给大家展示更多的内容,需要完整版的朋友,可以转发此文关注小编,查看文章主题配图来获取!!

本文特色

1.从简到繁,由浅入深

本文按照Spring、Spring MVC、MyBatis及SSM整合的逻辑顺序组织章节,对书中的知识点从简单示例入手,进而展开详细的介绍和对内部机制的解密。

2.给出简单、细致、详尽的示例代码,方便读者快速学习和理解

本文立足实战,书中每个章节的知识点都配备了简单的示例,可以辅助读者快速入门和理解。本文中的示例代码与章节一一对应,方便读者学习和查阅。

3.全面涵盖Java Web开发技术,并对Java底层技术及其他主流库和框架做了介绍

本文主要对Spring、Spring MVC和MyBatis及其整合进行了介绍。

另外,本文还对Java Web的相关技术和框架进行了介绍,包括Java注解、单元测试(JUnit和TestNG)、Java反射与代理、Java多线程及ThreadLocal、HTTP、Servlet、REST与主流的JSON库(Json-lib、Gson、Fastjson和Jackson)、Commons FileUpload、数据库连接池(C3P0、DBCP2)、Spring与Hibernate整合以及Spring与JPA整合等。

4.注重对原理和机制进行解析,并通过简单的逻辑图示进行展示

本文注重对框架内部的实现机制和原理进行解密,包括DispatcherServlet技术细节、MyBatis运作原理、AOP实现机制及Spring Security解密等。对于这些内容,作者通过逻辑关系图或流程图进行简化和呈现,便于读者更加直观地理解。

5.项目案例典型,实战性强,可作为实际项目的模板

本文介绍了一个源自实际需求的项目实例,从需求分析开始,完整地呈现了整个项目的分析、设计、架构和开发过程。该项目架构可以作为SSM架构的模板,同类型的项目可以在此之上继续开发。

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

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

相关文章

Swift中的区间运算符和半开区间运算符

2019独角兽企业重金招聘Python工程师标准>>> 区间&#xff0c;使用三个点表示&#xff08;a...b&#xff09;&#xff0c;表示从a到b&#xff0c;包含a和b&#xff0c;b要大于a&#xff0c;包含第一个和最后一个 半开区间&#xff0c;&#xff08;a..<b&#xf…

使用 Directory.Build 来消除项目文件中的重复配置

使用 Directory.Build 来消除项目文件中的重复配置Intro如果解决方案里的项目比较多的话&#xff0c;往往会有很多重复的项目属性&#xff0c;通常我们可以使用独立的 props 属性文件来配置公用的属性&#xff0c;而一般的属性文件都需要手动的 Import 到项目文件中&#xff0c…

chromium关闭更新_Win10今年最重磅更新!Win10 2004正式版详尽体验

今年首个Windows 10正式版更新于近日上架MSDN&#xff0c;版本号最终确定为Build 19041.208(v2004)&#xff0c;这是一个RTM版本&#xff0c;也就是送到OEM厂商压盘的正式版本&#xff0c;向用户正式推送的时候不会再有什么功能变化。按照微软的一贯逻辑&#xff0c;上半年更新…

Android网络通信的六种方式示例代码

表1展示了Android SDK中的一些与网络有关的API包名表1. Android SDK 网络包包 描述 API LevelJava.net 提供与联网有关的类&#xff0c;包括流和数据包&#xff0…

技术分享 | 业务模板的技术实践

源宝导读&#xff1a;“业务模板”作为天际建模平台3.0推出的重要特性&#xff0c;它将元数据复用发挥到了极致&#xff0c;通过业务模板几乎可以覆盖整个建模元数据开发流程&#xff0c;提供业务场景级别的复用能力。本文将介绍“业务模板”的设计原理、实现方案和应用场景。一…

为什么那么好的女孩子还单身?

1 终于知道家里的吃的都是怎么没的了&#xff01;2 我的小鱼干&#xff01;快给我&#xff01;3 这几只狗子真是太皮了&#xff01;4 您点的肉香满溢披萨到了~5 一位新手爸爸分享了自己关于为人父母的感悟6 应采儿&#xff1a;为什么那么好的女孩子还单身&#xff1f; 陈小春&a…

RHCS创建高可用集群apche服务器

实验环境&#xff1a; 系统版本&#xff1a;RHEL5.4 将selinux关闭&#xff0c;刷新iptables -F 配置yum仓库 192.168.0.25 station25.example.com 宿主机 192.168.0.24 station24.example.com 节点(虚拟机) 192.168.0.39 station39.example.com 节点(…

成不了天才,但为何也没成人材?(转)

长期以来&#xff0c;"软件业"一直被视为"智力密集"型的"朝阳"产业&#xff0c;大多数从业者都受过高等教育&#xff0c;其平均素质居于社会各行业的前列&#xff0c;这个产业的顶尖人物被公众视为"知识英雄"&#xff0c;比如微软公司…

.NET 6 RC2 版本发布

原文&#xff1a;bit.ly/3FS9xm7作者&#xff1a;Richard日期&#xff1a;2021-10-12翻译&#xff1a;精致码农-王亮说明&#xff1a;文中有大量的超链接&#xff0c;这些链接在公众号文章中被自动剔除&#xff0c;一部分包含超链接列表的小段落被我删减了&#xff0c;如果你对…

最诡异数学悖论:1+1=1

全世界只有3.14 % 的人关注了爆炸吧知识今天&#xff0c;8岁表妹的老师给她奖励了一块大巧克力&#xff0c;超模君打趣她能不能分给我点&#xff0c;遭到残忍拒绝&#xff0c;超模君很愤怒&#xff0c;暗下决心要神不知鬼不觉地吃上表妹的巧克力。超模君趁表妹在认真做作业的时…

JS URL Parser

为什么80%的码农都做不了架构师&#xff1f;>>> /** *param {string} url 完整的URL地址 *returns {object} 自定义的对象 *description 用法示例&#xff1a;var myURL parseURL(http://abc.com:8080/dir/index.html?id255&mhello#top); myURL.fileindex.ht…

如何使用Instruments诊断App(Swift版):起步

2019独角兽企业重金招聘Python工程师标准>>> 本文由Mr_cyz&#xff08;博客&#xff09;翻译自raywenderlich&#xff0c;欢迎参与我们的翻译活动。原文&#xff1a;Instruments Tutorial with Swift: Getting Started 更新记录&#xff1a;该教程由 James Frost 更…

tcp抓包返回fin_TCP/IP学习二TCP链接建立与断开

今天详细学习下TCP链接的三次握手四次挥手&#xff0c;因为开发web服务还是会经常遇到一些网络问题的。其实这方面的资料很多&#xff0c;可能我们看过很多次但也忘了无数次[捂脸]&#xff0c;这次我主要通过抓包例子来展示这个过程。TCP传输控制协议(TransmissionControlProto…

70%的单身女孩都是这样想的!

1 父爱如山&#xff0c;山就是杵在那里一动不动&#xff01;2 3 单身的女孩不要着急4 哎呀&#xff0c;没有两条小鱼干是起不来了&#xff01;5 一分钟教你画二哈&#xff0c;这次真的厉害了&#xff01;6 披着羊皮的狼&#xff1f;&#xff1f;&#xff1f;你点的每个赞&#…

.NET基金会讨论 .NET 开源事业之路

【编者按】从闭源走向开源&#xff0c;.NET 背后都发生了哪些有趣的故事。本文采访了 6 位微软 .NET 团队成员&#xff0c;分享他们在 GitHub 以及建立 .NET 开源项目的经历。作者 | Richard Lander 译者 | 弯月出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff0…

Process Explorer 15.2:微软增强型任务管理器

Process Explorer 是一款免费的增强型任务管理器&#xff0c;同时也是微软著名工具包Sysinternals下的组件之一。 Process Explorer 能让使用者了解看不到的在后台执行的处理程序&#xff0c;可以使用 Process Explorer 方便地管理你的程序进程。Process Explorer 已经完美的支…

号称最强“抓取”工具,没有搞不到的资源!

全世界只有3.14 % 的人关注了爆炸吧知识分享一个超级好用的工具&#xff0c;绝对用心挑选&#xff0c;让你惊艳&#xff01;不仅帮你赚钱&#xff0c;还能完善生活的方方面面。“能轻松赚钱&#xff0c;真的超爽&#xff01;”好朋友雪球&#xff0c;前段时间负责一个市场营销的…

oracle cpu 100%原因,oracle 12.1 cpu 100%

查看整体负载cpu使用居高不下;基本上整体CPU是百分80%以上了;此时:物理读600MB/s,REDO也不算太高;全为latch free,一般为bug高发区检查相关SQL基本为系统SQL:4b4wp0a8dvkf0,11bzv8fm87zvr,3uqkkfu1crw8y,frjd8zfy2jfdq,8mdz49zkajhw3相关BUG:1 Frequent Execution of Recursive…

C#多线程开发-处理子线程中的异常

C#多线程开发-处理子线程中的异常在平时的多线程开发中&#xff0c;对于异常的处理是至关重要的&#xff0c;千万不能马虎。如果在实际的项目中&#xff0c;对于某些线程中的异常没有处理&#xff0c;会直接导致整个程序崩溃&#xff0c;软件无法使用。其中需要说明的是&#x…

GAC及其作用

http://www.cnblogs.com/smallstone/archive/2010/06/29/1767508.html 一、GAC的作用 全称是Global Assembly Cache作用是可以存放一些有很多程序都要用到的公共Assembly&#xff0c;例如System.Data、System.Windows.Forms等等。这样&#xff0c;很多程序就可以从GAC里面取得…