Spring全套教学资料
Spring是Java程序员的《葵花宝典》,其中提供的各种大招,能简化我们的开发,大大提升开发效率!目前99%的公司使用了Spring,大家可以去各大招聘网站看一下,Spring算是必备技能,所以一定要掌握。
目录:
部分内容:
Spring源码
- 第一部分 Spring 概述
- 第二部分 核心思想
- 第三部分 手写实现 IoC 和 AOP(自定义Spring框架)
- 第四部分 Spring IOC 高级应用
基础特性
高级特性 - 第五部分 Spring IOC源码深度剖析
设计优雅
设计模式
注意:原则、方法和技巧 - 第六部分 Spring AOP 应用
声明事务控制 - 第七部分 Spring AOP源码深度剖析
必要的笔记、必要的图、通俗易懂的语言化解知识难点
脚手框架:SpringBoot技术
它的目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,可以和spring cloud联合部署。
Spring Boot的核心思想是约定大于配置,应用只需要很少的配置即可,简化了应用开发模式。
- SpringBoot入门
- 配置文件
- 日志
- Web开发
- Docker
- SpringBoot与数据访问
- 启动配置原理
- 自定义starter
微服务架构:Spring Cloud Alibaba
同 Spring Cloud 一样,Spring Cloud Alibaba 也是一套微服务解决方案,包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
- 微服务架构介绍
- Spring Cloud Alibaba介绍
- 微服务环境搭建
- 服务治理
- 服务容错
- 服务网关
- 链路追踪
- ZipKin集成及数据持久化
- 消息驱动
- 短信服务
- Nacos Confifig—服务配置
- Seata—分布式事务
- Dubbo—rpc通信
Spring MVC
目录:
部分内容:
- 预置的模板代码(如Spring JDBC)
- 依赖注入的基本原理
-
依赖注入的优点
-
依赖注入如何实现
- 依赖注入的使用
-
基于XML的装配方式
-
基于Java Configuration的装配方式
-
自动装配
-
多种装配方式的混用
-
处理装配的歧义
-
如何注入属性值
- Spring Bean的作用域
-
Singleton
-
Prototype
-
Request
-
Session
-
Global
- AOP
-
切面、目标对象、切点、通知、织入等基本概念
-
如何定义切点:定义切点的aspectJ语法
-
定义通知
-
前置通知(Before)
-
后置通知(AfterReturning)
-
异常通知(AfterThrowing)
-
最终通知(After)
-
环绕通知(Around)
-
如何给切面传参
7、Spring MVC相关内容
Spring作为Java系的全栈(full-stack)开发框架,当然也对Web开发有着非常好的支持。Spring的Web MVC框架能够使开发者非常容易的开发Web应用,同时能够无缝享受到Spring本身的诸多好处——IoC容器、AOP编程等等。
- Spring MVC基本原理、配置
-
DispatcherServlet
-
WebApplicationContext
-
处理HTTP请求过程
- 实现Controller
-
@Controller, @RequestMapping注解
-
URL模板模式,@PathVariable
-
获取HTTP请求参数,@RequestParam
-
@RequestMapping方法支持的参数
-
@RequestMapping方法支持的返回值
- 视图解析
-
处理静态资源
-
配置JSP
-
配置其它模板引擎
-
重定向、Flash Attribute
- 表单处理
-
表单数据绑定
-
Spring表单标签
-
表单验证
-
文件上传
-
Flash Attribute
- 拦截器Interceptors
-
Spring MVC请求处理流程
-
HandlerInterceptor接口
-
配置Interceptor
- 异常处理
-
配置错误页面
-
使用HTTP状态码
-
@ExceptionHandler
-
ControllerAdvice全局异常处理
- REST API
-
@ResponseBody和@RequestBody
-
处理PUT和DELETE请求
8、MyBatis相关内容
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或标注,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录
- MyBatis基础
-
ORM的概念
-
如何定义Mapper接口
-
如何定义XML Mapper映射
-
如何使用Mapper
- MyBatis的基本使用
-
SqlSessionFactory
-
SqlSessionFactoryBuilder
-
SqlSession
- MyBatis-Spring
-
基于Spring如何配置和使用Mapper
-
SqlSessionFactoryBean的配置
-
MyBatis Spring Boot Starter的使用
- 增删改查
-
熟悉Mapper配置文件
-
select元素
-
select的resultType属性
-
insert元素
-
update元素
-
delete元素
- 复杂查询
-
resultMap元素
-
association元素
-
嵌套结果与嵌套查询
-
collection元素
-
discriminator元素
-
动态SQL
-
分页查询(分页插件)
9、JPA
ORM框架的出现使得我们能够以面向对象的方式来操作关系数据库,但是长久以来实现应用系统中的数据访问层依然是一件非常繁琐的事情,简单的查询也往往涉及大量重复代码。Spring Data JPA在则基于JPA进一步简化了数据访问层的实现,它提供了一种类似于声明式编程的方式,开发者只需要编写数据访问接口(称为Repository),Spring Data JPA就能基于接口中的方法命名自动地生成实现。
JPA(Java Persistence API,Java持久化API),定义了对象关系映射(Object Relation Mapping,ORM)以及实体对象持久化的标准接口。 JPA是一套接口规范,JPA的实现主要包括 JBoss 的 Hibernate EntityManager、Oracle 捐献给 Eclipse 社区的 EclipseLink和Apache 的 OpenJPA 等。
- Spring Data JPA的核心概念
-
Repository
-
使用Repository的步骤
-
自定义的Repository接口
-
Repository接口层次及其方法
- 定义实体类
-
自动生成数据库Schema
-
@Entity和@Table
-
@Id和@GeneratedValue
-
@Basic
-
@Column
-
@Transient
-
@Temporal
-
@Lob
- 定义一对一关系
-
@OneToOn
-
@JoinColumn
-
unique属性
-
双向@OneToOne关联
-
双向关联与cascade
-
自动映射的命名规则
- 一对多与多对多关系
-
@ManyToOne
-
@OneToMany
-
@ManyToMany
-
JoinTable
-
用@ManyToOne实现多对多
- 其它
-
如何通过方法名创建查询
-
分页与排序
-
@Query标注
-
事务
10、Java Web应用的部署
-
War包规范和结构
-
在IDE中调试和部署
-
使用IDE导出War包
-
将War包部署到服务器
-
基于Spring Boot的部署
11、其它主题
缓存:EhCache、Spring Cache Manager、数据层缓存、服务层缓存、页面缓存
安全:Spring Security(HTTP基本验证,角色验证,权限验证)
任务调度:Spring任务执行器(Executor)
邮件发送:SMTP协议、spring-boot-starter-mail
Web Socket:@SubscribeMapping, WebSocketConfig
日志:SLF4J与Logback、 Spring Boot Logging、
ConsoleAppender/RollingFileAppender 、Sentry、ELK
12、设计模式
参考Java写一套漂亮的代码,哪些设计模式比较常用? - David 的回答 - 知乎
13、更进一步
分布式、深入Java虚拟机、针对不同场景的Java技术框架,到这个阶段已经不仅仅是Java的学习了,而是大型应用场景的技术积累、架构设计的精进了。
最后
这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的教程了。
整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断!!!
阶段已经不仅仅是Java的学习了,而是大型应用场景的技术积累、架构设计的精进了。
最后
这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的教程了。
[外链图片转存中…(img-4o1132lE-1715423241008)]
整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断!!!