![](https://img-blog.csdnimg.cn/20190721213231379.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
突破Spring框架
文章平均质量分 68
从技术简介到进阶,以实际项目开发为背景对SpringBoot、SpringMVC等框架进行介绍,相应代码会贴在github和码云上便于学习分享!
姜皓
胸藏文墨怀若谷 腹有诗书气自华
展开
-
SpringBoot 中 JdbcTemplate 数据访问的实现原理
SpringBoot 中 JdbcTemplate 数据访问的实现原理1)从模板方法模式和回调机制说起1.1 模板方法设计模式1.2 回调机制1.3 JDBC API 到 JdbcTemplate 的演变在 JDBC API 中添加模板方法模式2)在 JDBC API 中添加回调机制3)JdbcTemplate 源码解析4)小结通过 JdbcTemplate 不仅简化了数据库操作,还避免了使用原生 JDBC 带来的代码复杂度和冗余性问题。那么,JdbcTemplate 在 JDBC 基础上如何实现封装的原创 2020-12-22 10:16:49 · 649 阅读 · 0 评论 -
SpringBoot 中使用 JdbcTemplate 访问关系型数据库
SpringBoot 中使用 JdbcTemplate 访问关系型数据库1)数据模型和 Repository 层设计2)使用 JdbcTemplate 操作数据库使用 JdbcTemplate 实现查询使用 JdbcTemplate 实现插入使用 SimpleJdbcInsert 简化数据插入过程3)小结JDBC 规范是 Java 领域中使用最广泛的数据访问标准,目前市面上主流的数据访问框架都是构建在 JDBC 规范之上。因为 JDBC 是偏底层的操作规范,所以关于如何使用 JDBC 规范进行关系型数据访原创 2020-12-16 10:32:23 · 339 阅读 · 0 评论 -
SpringBoot 中 JDBC 关系型数据库访问规范
JDBC 关系型数据库访问规范1)JDBC 概述2)JDBC 规范中有哪些核心编程对象?DriverManagerDataSourceConnectionStatement/PreparedStatementResultSet3)如何使用 JDBC 规范访问数据库?无论是互联网应用还是传统软件,对于任何一个系统而言,数据的存储和访问都是不可缺少的。数据访问层的构建可能会涉及多种不同形式的数据存储媒介,本文关注的是最基础也是最常用的数据存储媒介,即关系型数据库,针对关系型数据库,Java 中应用最广泛的就是原创 2020-12-15 10:11:56 · 400 阅读 · 0 评论 -
Spring Boot 自动配置实现原理
Spring Boot 自动配置实现原理1)@SpringBootApplication 注解@ComponentScan 注解@SpringBootConfiguration 注解@EnableAutoConfiguration 注解@AutoConfigurationPackage 注解AutoConfigurationImportSelector2)SPI 机制和 SpringFactoriesLoaderJDK 中的 SPI 机制SpringFactoriesLoader3)@Conditional原创 2020-12-14 17:23:44 · 209 阅读 · 0 评论 -
SpingBoot中管理自定义的配置信息
SpingBoot中管理自定义的配置信息1)如何在应用程序中嵌入系统配置信息?2)如何创建和使用自定义配置信息?2.1)使用 @Value 注解2.2)使用 @ConfigurationProperties 注解2.3)为自定义配置项添加提示功能3)如何组织和整合配置信息?3.1)使用 @PropertySources 注解3.2)理解配置文件的加载顺序4)如何覆写内置的配置类?本文主要讲解与配置体系相关的高级用法,以及如何创建和管理各种自定义的配置信息。1)如何在应用程序中嵌入系统配置信息?Spri原创 2020-12-01 11:12:09 · 215 阅读 · 0 评论 -
使用 Spring Boot 中的配置体系
如何使用 Spring Boot 中的配置体系?1)创建第一个 Spring Boot Web 应用程序2)Spring Boot 中的配置体系2.1)配置文件与 Profile2.2)代码控制与Profile3)常见配置场景和内容配置体系是基于 Spring Boot 框架开发应用程序的基础,而自动配置也是该框架的核心功能之一。本文梳理使用 Spring Boot 配置体系的系统方法,先从创建和运行第一个 Web 应用程序开始吧。1)创建第一个 Spring Boot Web 应用程序基于 Spri原创 2020-11-30 15:20:15 · 222 阅读 · 0 评论 -
剖析 Spring Web 应用程序
剖析 Spring Web 应用程序1)Spring MVC VS Spring Boot2)剖析一个 Spring Web 应用程序2.1)包依赖2.2)包依赖2.2)控制器类2.3)配置文件2.4)案例驱动:SpringCSS2.5)SpringCSS 整体架构在介绍基于 Spring Boot 的开发模式之前,让我们先将它与传统的 Spring MVC 进行简单对比。1)Spring MVC VS Spring Boot在典型的 Web 应用程序中,前后端通常采用基于 HTTP 协议完成请求和响原创 2020-11-27 17:09:55 · 181 阅读 · 0 评论 -
微服务架构--服务消费者(Rest+Ribbon)
服务消费者(Rest+Ribbon)简介Ribbon简介准备工作创建一个服务消费者第一步:新建一个普通的Spring Boot工程第二步:引入依赖第三步:在application.yml配置文件当中配置第四步:在入口类application当中,注入RestTemplate的bean第五步:写一个HelloServer类来调用服务提供者的接口第六步:写一个Controller,提供对外访问的接口第...转载 2019-11-11 09:56:50 · 359 阅读 · 0 评论 -
微服务架构--服务注册与发现组件 Eureka
服务注册与发现组件 Eureka服务发现组件Eureka简介服务注册中心 Eureka Server注册服务Eureka 的高可用服务发现组件在微服务架构中,服务发现组件是很关键的一个组件,服务发现组件就是去管理各服务的网络地址等信息。服务提供者、服务消费者、服务发现组件的关系:服务启动时,会将自己的网络地址等信息注册到服务发现组件中,让服务发现组件去存储管理这些信息。服务消费者...转载 2019-11-04 16:51:18 · 1050 阅读 · 0 评论 -
Spring Cloud 的微服务架构
Spring Cloud 的微服务架构前言Spring Cloud 微服务总体架构图名词理解:Sleuth-链路跟踪:为服务之间调用提供链路追踪。通过Sleuth可以很清楚的了解到一个服务请求经过了哪些服务,每个服务处理花费了多长。从而让我们可以很方便的理清各微服务间的调用关系。断路器(Hystrix):在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调...转载 2019-11-04 15:22:09 · 562 阅读 · 0 评论 -
一文讲完Spring的各种注解
一文讲完Spring的各种注解Spring中的注解大概可以分为两大类:1.spring的bean容器相关的注解,或者说bean工厂相关的注解;2.springmvc相关的注解。spring的bean容器相关的注解,先后有:@Required, @Autowired, @PostConstruct, @PreDestory,还有Spring3.0开始支持的JSR-330标准javax...转载 2019-10-21 13:58:24 · 228 阅读 · 0 评论 -
2.1微服务--负载均衡 Ribbon 简介
负载均衡 Ribbon 简介一、RestTemplate 简介RestTemplate 是Spring Resources 中一个访问第三RESTful API 接口的网络请求框架。RestTemplate 的设计原则和其他Spring Template (例如JdbcTemplate 、JmsTemplate )类似,都是为执行复杂任务提供了一个具有默认行为的简单方法。RestTem...原创 2019-10-18 08:56:32 · 192 阅读 · 0 评论 -
1.14微服务--Eureka组件源码解析
Eureka组件源码解析一、Eureka 的基本概念1)Register一一 服务注册当Eureka Client 向Eureka Server 注册时, Eureka Client 提供自身的元数据,比如IP 地址、端口、运行状况指标的Url、主页地址等信息。2)Renew一一 服务续约Eureka Client 在默认的情况下会每隔30秒发送一次心跳来进行服务续约。通过服务...原创 2019-10-14 16:21:21 · 294 阅读 · 0 评论 -
1.13微服务--服务注册和发现组件--Eureka
Eureka“ Eureka ”来源于古希腊词汇,意为“发现了”。在软件领域, Eureka是一个开源的服务注册与发现的组件,和其他Netflix公司的服务组件(例如负载均衡、熔断器、网关等) 一起被Spring Cloud 社区整合为Spring Cloud Netflix 模块。本节将从以下4个方面来讲解服务注册与发现模块Eureka :1)Eureka 简介;2)编写一个Eurek...原创 2019-10-14 14:33:57 · 261 阅读 · 0 评论 -
1.12微服务--SpringBoot整合Swagger2
SpringBoot整合Swagger2一、Swagger2简介Swagger是一个功能强大的在线API文档的框架,其提供了在线文档的查阅和测试功能。目前它的版本为2.x,继而称为Swagger2.利用其很容易构建RESTful风格的API,在SpringBoot中集成Swagger2,有以下五个步骤:1、引入依赖--【springfox-swagger2和springfox-sw...原创 2019-08-18 15:15:00 · 242 阅读 · 0 评论 -
1.11微服务--SpringBoot整合Redis
1.11微服务--SpringBoot整合Redis一、Redis简介Redis 是一个开源的、先进的key-value 存储系统,可用于构建高性能的存储系统。Redis支持数据结构有字符串、哈希、列表、集合、排序集合、位图、超文本等。NoSQL (Not Only SQL ) 泛指非关系型的数据库。Redis 是一种NoSQL,Redis 具有很多的优点:例如读写非常快速,支持丰富的数...原创 2019-08-18 14:43:23 · 216 阅读 · 0 评论 -
1.10微服务--SpringBoot整合JPA
SpringBoot 整合JPA一、JPA简介JPA 全称为JAVA Persistence API,它是一个数据持久化的类和方法的集合。JPA 的目标是制定一个由很多数据库供应商实现的API,开发人员可以通过编码实现该API;目前,在Java项目开发巾提到JPA一般是指用Hibernate的实现,因为在Java 的ORM 框架中,只有Hibernate实现得最好。1)新建一个Sp...原创 2019-08-18 14:18:47 · 314 阅读 · 0 评论 -
1.9微服务--运行状态监控Actuator
运行状态监控Actuator一、Actuator简介SpringBoot的Actuator提供了运行状态监控的功能, Actuator 的监控数据可以通过REST、远程shell和JMX方式获得。首先介绍通过REST方式查看Actuator的节点的方法,这种是最常见且简单的方法:在工程的POM文件中引入Actuator的起步依赖spring-boot-starter-actuator,代码...原创 2019-08-18 13:25:55 · 1849 阅读 · 1 评论 -
1.8微服务--SpringBoot框架介绍
SpringBoot框架介绍一、SpringBoot简介Spring Boot 是由Pivotal 团队开发的Spring 框架,采用了生产就绪的观点,旨在简化配置,致力于快速开发;Spring Boot 框架提供了自动装配和起步依赖,使开发人员不需要配置各种xml 文件。通过这种方式,极大地提高了程序的开发速度,因此, Spring Boot 被认为是新一代的Web 开发框架;在过...原创 2019-08-17 20:59:47 · 466 阅读 · 0 评论 -
1.7微服务--构建工具Maven的使用
构建工具Maven的使用一、Maven简介Apache Maven 是一款软件项目管理的开源工具,是基于工程对象模型( Pom)的概念而设计的Maven 可以管理项目构建的整个生命周期,包括清理( Clean )、编译( Compile )、打包( Package )、测试( Test ) 等环节;同时Maven 提供了非常丰富的插件,使得构建项目和管理项目变得简单构建一个项目所...原创 2019-08-14 00:34:36 · 392 阅读 · 0 评论 -
1.6微服务--Kubernetes简介
Kubernetes简介一、Kubernetes简介Kubernetes 是一个容器集群管理系统,为容器化的应用程序提供部署运行、维护、扩展、资源调度、服务发现等功能。Kubernetes 结合了社区的最佳创意和实践, 旨在帮助开发人员将容器打包、动态编排, 同时帮助各大公司向微服务方向进行技术演进。它具有以下特点:1)Planet Scale (大容量)使用Kubemetes...原创 2019-08-07 23:50:59 · 859 阅读 · 0 评论 -
1.5微服务--Dubbo简介
Dubbo简介一、Dubbo简介Dubbo 是阿里巴巴开源的一个分布式服务框架,致力于提供高性能和透明化的RPC 远程服务调用方案,以及SOA 服务冶理方案。Dubbo 包含如下核心内容:1、RPC 远程调用: 封装了长连接NIO 框架,如Netty 、Mina 等,采用的是多线程模式2、集群容错: 提供了基于接口方法的远程调用的功能, 并实现了负载均衡策略、失败容错等功能3、...原创 2019-08-07 23:27:28 · 390 阅读 · 0 评论 -
1.4微服务--SpringCloud介绍
SpringCloud介绍一、简介Spring Cloud 是基于Spring Boot 的。Spring Boot主要的特点就是简化了开发和部署的过程,简化了Spring 复杂的配置和依赖管理,通过起步依赖和内置Servlet 容器能够使开发者迅速搭起一个Web 工程;Spring Cloud 在开发部署上继承了Spring Boot 的一些优点,提高其在开发和部署上的效率;Spri...原创 2019-08-07 22:00:22 · 132 阅读 · 0 评论 -
1.3微服务--微服务应该具备的功能
微服务应该具备的功能一、重点总结“服务”是一个独立运行的单元组件,每个单元组件运行在独立的进程中,组件与组件之间通常使用HTTP 这种轻量级的通信机制进行通信,微服务具备特点:1、按照业务来划分服务,单个服务代码量小,业务单一,易于维护2、每个微服务都有自己独立的基础组件,例如数据库、缓存等,且运行在独立的进程中3、微服务之间的通信是通过HTTP 协议或者消息组件,且具有容错能力...原创 2019-08-06 23:58:47 · 2860 阅读 · 0 评论 -
1.2微服务--微服务简介
微服务简介一、微服务的定义微服务:用来描述将软件应用程序设计为独立部署的服务的一种特殊方式,其系统是一个分布式系统,按业务领域划分为独立的服务单元,有自动化运维、 容错、快速演进的特点,它能够解决传统单体架构系统的痛点,同时也能满足越来越复杂的业务需求。单体架构存在的不足:1)业务越来越复杂,单体应用的代码量越来越大,代码的可读性、可维护性和可扩展性下降2)随着用户越来越多,...原创 2019-08-05 18:37:45 · 451 阅读 · 0 评论 -
1.1微服务--微服务基石SpringBoot
简述SpringBoot一、什么是SpringBoot为了摆脱繁杂的配置,让开发人员能够专心在代码开发上,SpringBoot在这样的背景下因运而生。它本身并不提供Spring框架的核心特征以及拓展功能,只是用于快速敏捷地开发新一代用于Spring框架的应用程序,简单说就是提升Spring开发效率的工具;它同时集成了大量的第三方库,可以实现零配置、打开即用等功能。总结:1、...原创 2019-07-21 22:08:23 · 189 阅读 · 0 评论 -
初识 Spring(25)---(SpringMVC实战--构建学生管理系统(15))
SpringMVC实战--构建学生管理系统(15)首页部分成绩录入页面(编辑/删除/批量录入功能)制作(源代码见仓库:https://gitee.com/jianghao233/course)新建 scoreInManager.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pag...原创 2018-08-21 21:07:05 · 410 阅读 · 0 评论 -
初识 Spring(24)---(SpringMVC实战--构建学生管理系统(14))
SpringMVC实战--构建学生管理系统(14)(源代码见仓库:https://gitee.com/jianghao233/course)利用 Ajax 技术 避免提交数据库中已存在数据(解决后台验证数据库数据与中文乱码问题)修改 TbCourseMapper.javapackage com.neuedu.mapper;import java.util.List;i...原创 2018-08-21 18:42:36 · 325 阅读 · 1 评论 -
初识 Spring(23)---(SpringMVC实战--构建学生管理系统(13))
SpringMVC实战--构建学生管理系统(13)首页部分学生管理页面(添加头像(图像)功能)制作 在上篇博客基础上继续开发(源代码见仓库:https://gitee.com/jianghao233/course)已经完成了保存图片到真实路径,并解决了图片重名问题,但核心问题:将图片保存到数据库中并显示在页面上任未实现修改代码: 修改 StudentController.ja...原创 2018-08-21 16:38:35 · 1021 阅读 · 0 评论 -
初识 Spring(22)---(SpringMVC实战--构建学生管理系统(12))
SpringMVC实战--构建学生管理系统(12)首页部分学生管理页面(添加头像(图像)功能)制作(源代码见仓库:https://gitee.com/jianghao233/course)修改代码:修改:StudentManager.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" ...原创 2018-08-21 11:59:26 · 444 阅读 · 0 评论 -
初识 Spring(21)---(SpringMVC实战--构建学生管理系统(11))
SpringMVC实战--构建学生管理系统(11)首页部分课程管理页面(分页功能)制作(在上篇博客基础上继续)(源代码见仓库:https://gitee.com/jianghao233/course)上篇博客中,初步完成分页功能,继续完善分页功能,由图可知,当前页为 1 (首页),< 还可以点 ;当前页为 2 (末页),> 还可以点不符合常理,修改代码修改 ...原创 2018-08-20 23:49:02 · 877 阅读 · 0 评论 -
初识 Spring(20)---(SpringMVC实战--构建学生管理系统(10))
SpringMVC实战--构建学生管理系统(10)首页部分课程管理页面(分页功能)制作(在上篇博客基础上继续)(源代码见仓库:https://gitee.com/jianghao233/course)思路:1.前台可以给后台传递的数据:1.当前页 2.每页显示多少条记录2.SQL分页语句:select * from tb_course LIMIT A,B (从A开始,显...原创 2018-08-20 22:44:52 · 295 阅读 · 0 评论 -
初识 Spring(19)---(SpringMVC实战--构建学生管理系统(09))
SpringMVC实战--构建学生管理系统(09)首页部分课程管理页面(编辑/删除功能)制作 (在上篇博客基础上继续)(源代码见仓库:https://gitee.com/jianghao233/course)编辑功能:修改代码:courseManger.jsp<%@ page language="java" contentType="text/html; charset...原创 2018-08-20 17:19:22 · 265 阅读 · 0 评论 -
初识 Spring(18)---(SpringMVC实战--构建学生管理系统(08))
SpringMVC实战--构建学生管理系统(08)首页部分成绩管理页面(查询/添加功能)制作(在上篇博客基础上继续)(源代码见仓库:https://gitee.com/jianghao233/course)新建 courseManger.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" ...原创 2018-08-20 16:07:49 · 229 阅读 · 0 评论 -
初识 Spring(17)---(SpringMVC实战--构建学生管理系统(07))
SpringMVC实战--构建学生管理系统(07)首页部分学生管理页面(编辑/删除功能)制作(在上篇博客基础上继续)(源代码见仓库:https://gitee.com/jianghao233/course)编辑功能:修改代码:studentManger.jsp<%@ page language="java" contentType="text/html; charset...原创 2018-08-20 11:24:31 · 256 阅读 · 0 评论 -
初识 Spring(16)---(SpringMVC实战--构建学生管理系统(06))
SpringMVC实战--构建学生管理系统(06)首页部分学生管理页面(查询/添加功能)制作(在上篇博客基础上继续)(源代码见仓库:https://gitee.com/jianghao233/course)新建 studentManger.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" ...原创 2018-08-14 23:22:39 · 404 阅读 · 1 评论 -
初识 Spring(15)---(SpringMVC实战--构建学生管理系统(05))
SpringMVC实战--构建学生管理系统(05)首页部分添加班级编辑功能制作(在上篇博客基础上继续)(源代码见仓库:https://gitee.com/jianghao233/course)在上文中,每次都需要添加判断是否登录条件,本篇将新增拦截器功能(无需每次都添加判断,一次即可)与班级编辑功能新增 CheckInterceptor.java(拦截器)package co...原创 2018-08-14 09:14:41 · 286 阅读 · 0 评论 -
初识 Spring(14)---(SpringMVC实战--构建学生管理系统(04))
初识 Spring(14)---(SpringMVC实战--构建学生管理系统(04))首页部分添加班级功能制作(在上篇博客基础上继续)classManager.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE ...原创 2018-08-13 17:55:58 · 380 阅读 · 0 评论 -
初识 Spring(10)---(SpringMVC--向前台传递数据)
SpringMVC--向前台传递数据在上篇博客基础上继续第一种方式:返回一个ModelAndView修改代码:SpringmvcTest.javapackage com.neuedu.springmvc.controller;import java.util.Date;import org.springframework.stereotype.Controller;im...原创 2018-08-13 08:57:49 · 574 阅读 · 0 评论 -
初识 Spring(13)---(SpringMVC实战--构建学生管理系统(03))
SpringMVC实战--构建学生管理系统(03)登陆页面验证及部分首页制作:(在上篇博客基础上继续)(源代码见仓库:https://gitee.com/jianghao233/course)文件目录: 新增代码:ClassController.javapackage com.neuedu.controller;import javax.servlet.ht...原创 2018-08-11 10:38:48 · 654 阅读 · 0 评论