自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 SpringBoot原理深入及源码剖析

2. SpringBoot原理深入及源码剖析​传统的Spring框架实现一个Web服务,需要导入各种依赖JAR包,然后编写对应的XML配置文件等,相较而言,Spring Boot显得更加方便、快捷和高效。那么,Spring Boot究竟如何做到这些的呢?接下来分别针对Spring Boot框架的依赖管理、自动配置和执行流程进行深入分析2.1 依赖管理​ 问题:(1)为什么导入dependency时不需要指定版本?​在Spring Boot入门程序中,项目pom.xml文件有两个核心

2020-06-28 17:32:25 203

原创 自动配置(启动流程)

2.2 自动配置(启动流程)概念:能够在我们添加jar包依赖的时候,自动为我们配置一些组件的相关配置,我们无需配置或者只需要少量配置就能运行编写的项目问题:Spring Boot到底是如何进行自动配置的,都把哪些组件进行了自动配置?Spring Boot应用的启动入口是@SpringBootApplication注解标注类中的main()方法, @SpringBootApplication能够扫描Spring组件并自动配置Spring Boot下面,查看@SpringBootAppl

2020-06-28 17:20:51 262

原创 自定义配置

1.7 自定义配置​spring Boot免除了项目中大部分的手动配置,对于一些特定情况,我们可以通过修改全局配置文件以适应具体生产环境,可以说,几乎所有的配置都可以写在application.peroperties文件中,Spring Boot会自动加载全局配置文件从而免除我们手动加载的烦恼。但是,如果我们自定义配置文件,Spring Boot是无法识别这些配置文件的,此时就需要我们手动加载。接下来,将针对SpringBoot的自定义配置文件及其加载方式进行讲解1.7.1 使用@PropertyS

2020-06-23 11:27:19 241

原创 随机数设置及参数间引用

1.8 随机数设置及参数间引用​在Spring Boot配置文件中设置属性时,除了可以像前面示例中显示的配置属性值外,还可以使用随机值和参数间引用对属性值进行设置。下面,针对配置文件中这两种属性值的设置方式进行讲解1.8.1随机值设置​在Spring Boot配置文件中,随机值设置使用到了Spring Boot内嵌的RandomValuePropertySource类,对一些隐秘属性值或者测试用例属性值进行随机值注入​随机值设置的语法格式为${random.xx},xx表示需要指定生成的随机数

2020-06-23 11:24:52 216

原创 配置文件属性值的注入

1.6 配置文件属性值的注入使用Spring Boot全局配置文件设置属性时:如果配置属性是Spring Boot已有属性,例如服务端口server.port,那么Spring Boot内部会自动扫描并读取这些配置文件中的属性值并覆盖默认属性。如果配置的属性是用户自定义属性,例如刚刚自定义的Person实体类属性,还必须在程序中注入这些配置属性方可生效。Spring Boot支持多种注入配置文件属性的方式,下面来介绍如何使用注解@ConfigurationProperties和@Value注入属性

2020-06-22 20:42:40 122

原创 application.yaml配置文件

1.5.2application.yaml配置文件YAML文件格式是SpringBoot支持的一种JSON超集文件格式,相较于传统的Properties配置文件,YAML文件以数据为核心,是一种更为直观且容易被电脑识别的数据序列化格式。application.yaml配置文件的工作原理和application.properties是一样的,只不过yaml格式配置文件看起来更简洁一些。YAML文件的扩展名可以使用.yml或者.yaml。application.yml文件使用 “key:(空格

2020-06-22 19:46:09 4748

原创 自定义Stater

2.3 自定义StaterSpringBoot starter机制​ SpringBoot由众多Starter组成(一系列的自动化配置的starter插件),SpringBoot之所以流行,也是因为starter。starter是SpringBoot非常重要的一部分,可以理解为一个可拔插式的插件,正是这些starter使得使用某个功能的开发者不需要关注各种依赖库的处理,不需要具体的配置信息,由Spring Boot自动通过classpath路径下的类发现需要的Bean,并织入相应的Bean

2020-06-17 19:16:38 112

原创 执行原理

2.4 执行原理​每个Spring Boot项目都有一个主程序启动类,在主程序启动类中有一个启动项目的main()方法,在该方法中通过执行SpringApplication.run()即可启动整个Spring Boot程序。问题:那么SpringApplication.run()方法到底是如何做到启动Spring Boot项目的呢?下面我们查看run()方法内部的源码,核心代码具体如下:@SpringBootApplicationpublic class SpringbootDemoAppl

2020-06-17 19:15:13 117

原创 随机数设置及参数间引用

1.8 随机数设置及参数间引用​在Spring Boot配置文件中设置属性时,除了可以像前面示例中显示的配置属性值外,还可以使用随机值和参数间引用对属性值进行设置。下面,针对配置文件中这两种属性值的设置方式进行讲解1.8.1随机值设置​在Spring Boot配置文件中,随机值设置使用到了Spring Boot内嵌的RandomValuePropertySource类,对一些隐秘属性值或者测试用例属性值进行随机值注入​随机值设置的语法格式为${random.xx},xx表示需要指定生成的随机数

2020-06-16 17:29:41 196

原创 spring-boot-starter-web依赖

2. spring-boot-starter-web依赖*​查看spring-boot-starter-web依赖文件源码,核心代码具体如下<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version

2020-06-16 17:26:54 7341

原创 单元测试与热部署

1.4 单元测试与热部署(1)单元测试​开发中,每当完成一个功能接口或业务方法的编写后,通常都会借助单元测试验证该功能是否正确。SpringBoot对项目的单元测试提供了很好的支持,在使用时,需要提前在项目的pom.xml文件中添加spring-boot-starter-test测试依赖启动器,可以通过相关注解实现单元测试演示:1.添加spring-boot-starter-test测试依赖启动器在项目的pom.xml文件中添加spring-boot-starter-test测试依赖启动器,示

2020-06-15 11:05:46 343

原创 全局配置文件

1.5 全局配置文件全局配置文件能够对一些默认配置值进行修改。Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件,该文件存放在src/main/resource目录或者类路径的/config,一般会选择resource目录。接下来,将针对这两种全局配置文件进行讲解 :1.5.1 application.properties配置文件使用Spring Initializr方式构建Spring Boot项目时,会在resour

2020-06-15 11:03:13 1339

原创 Spring Boot基础

1.1 约定优于配置Build Anything with Spring Boot:Spring Boot isthe starting point for building all Spring-based applications. Spring Boot isdesigned to get you up and running as quickly as possible, with minimal upfrontconfiguration of Spring.​上面是引自官网的一段话,大

2020-06-12 11:48:15 74

原创 SpringBoot 实现

1.3 SpringBoot 案例实现案例需求:请求Controller中的方法,并将返回值响应到页面(1)使用Spring Initializr方式构建Spring Boot项目​本质上说,Spring Initializr是一个Web应用,它提供了一个基本的项目结构,能够帮助我们快速构建一个基础的SpringBoot项目​Project SDK”用于设置创建项目使用的JDK版本,这里,使用之前初始化设置好的JDK版本即可;在“Choose Initializr Service URL(选

2020-06-12 11:45:29 353

原创 自定义RedisCacheManager

5.3.2 自定义RedisCacheManager​刚刚针对基于 API方式的RedisTemplate进行了自定义序列化方式的改进,从而实现了JSON序列化方式缓存数据,但是这种自定义的RedisTemplate对于基于注解的Redis缓存来说,是没有作用的。接下来,针对基于注解的Redis缓存机制和自定义序列化方式进行讲解1.Redis注解默认序列化机制打开Spring Boot整合Redis组件提供的缓存自动配置类RedisCacheConfiguration(org.springfram

2020-06-11 12:58:45 490

原创 自定义RedisTemplate

5.3.1 自定义RedisTemplate1.Redis API默认序列化机制​基于API的Redis缓存实现是使用RedisTemplate模板进行数据缓存操作的,这里打开RedisTemplate类,查看该类的源码信息public class RedisTemplate<K, V>extends RedisAccessor implementsRedisOperations<K, V>, Bea

2020-06-11 12:55:49 1247

原创 基于API的Redis缓存实现

5.2.3 基于API的Redis缓存实现​在Spring Boot整合Redis缓存实现中,除了基于注解形式的Redis缓存实现外,还有一种开发中常用的方式——基于API的Redis缓存实现。这种基于API的Redis缓存实现,需要在某种业务需求下通过Redis提供的API调用相关方法实现数据缓存管理;同时,这种方法还可以手动管理缓存的有效期。下面,通过Redis API的方式讲解SpringBoot整合Redis缓存的具体实现​(1)使用Redis API进行业务数据缓存管理。在com.la

2020-06-11 12:53:01 563

原创 基于注解的Redis缓存实现

5.2.2 基于注解的Redis缓存实现​在Spring Boot默认缓存管理的基础上引入Redis缓存组件,使用基于注解的方式讲解Spring Boot整合Redis缓存的具体实现(1)添加Spring Data Redis依赖启动器。在pom.xml文件中添加Spring Data Redis依赖启动器<dependency> <groupId>org.springframework.boot</groupId> <ar

2020-06-11 12:51:07 1566

原创 基于API的Redis缓存实现

5.2.3 基于API的Redis缓存实现​     在Spring Boot整合Redis缓存实现中,除了基于注解形式的Redis缓存实现外,还有一种开发中常用的方式——基于API的Redis缓存实现。这种基于API的Redis缓存实现,需要在某种业务需求下通过Redis提供的API调用相关方法实现数据缓存管理;同时,这种方法还可以手动管理缓存的有效期。下面,通过Redis API的方式讲解SpringBoot整合Redis缓存的具体实现

2020-06-10 20:44:53 333

原创 Spring Boot支持的缓存组件

5.2 整合Redis缓存实现5.2.1Spring Boot支持的缓存组件在Spring Boot中,数据的缓存管理存储依赖于Spring框架中cache相关的org.springframework.cache.Cache和org.springframework.cache.CacheManager缓存管理器接口。如果程序中没有定义类型为CacheManager的Bean组件或者是名为cacheResolver的CacheResolver缓存解析器,Spring Boot将尝试选择并启用以下缓存组

2020-06-10 20:42:38 865

原创 Thymeleaf语法

4.2 Thymeleaf​Thymeleaf是一种现代的基于服务器端的Java模板引擎技术,也是一个优秀的面向Java的XML、XHTML、HTML5页面模板,它具有丰富的标签语言、函数和表达式,在使用Spring Boot框架进行页面设计时,一般会选择Thymeleaf模板4.2.1 Thymeleaf语法常用标签在HTML页面上使用Thymeleaf标签,Thymeleaf 标签能够动态地替换掉静态内容,使页面动态展示。为了大家更直观的认识Thymeleaf,下面展示一个在HTML文件中嵌

2020-06-09 17:07:25 260

原创 支持的视图技术

SpringBoot视图技术4.1 支持的视图技术​ 前端模板引擎技术的出现,使前端开发人员无需关注后端业务的具体实现,只关注自己页面的呈现效果即可,并且解决了前端代码错综复杂的问题、实现了前后端分离开发。Spring Boot框架对很多常用的模板引擎技术(如:FreeMarker、Thymeleaf、Mustache等)提供了整合支持​Spring Boot不太支持常用的JSP模板,并且没有提供对应的整合配置,这是因为使用嵌入式Servlet容器的Spring Boot应用程序对于.

2020-06-09 17:05:02 77

原创 Spring Boot整合Redis

3.3Spring Boot整合Redis​除了对关系型数据库的整合支持外,Spring Boot对非关系型数据库也提供了非常好的支持。Spring Boot与非关系型数据库Redis的整合使用(1)添加Spring Data Redis依赖启动器。先在项目的pom.xml文件中添加Spring Data Redis依赖启动器,示例代码如下<dependency> <groupId>org.springframework.boot</groupId&

2020-06-09 17:03:35 225

原创 Spring Boot整合JPA

3.2Spring Boot整合JPA(1)添加Spring DataJPA依赖启动器。在项目的pom.xml文件中添加SpringData JPA依赖启动器,示例代码如下<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></d

2020-06-09 17:01:33 90

原创 注解方式整合Mybatis

注解方式整合Mybatis(1)创建一个用于对数据库表t_comment数据操作的接口CommentMapper @Mapper public interface CommentMapper { @Select("SELECT * FROM t_comment WHERE id =#{id}") public Comment findById(Integer id); }@Mapper注解表示该类是一个MyBati

2020-06-09 16:59:54 504

原创 SpringBoot数据访问

SpringBoot数据访问SpringData是Spring提供的一个用于简化数据库访问、支持云服务的开源框架。它是一个伞形项目,包含了大量关系型数据库及非关系型数据库的数据访问解决方案,其设计目的是使我们可以快速且简单地使用各种数据访问技术。Spring Boot默认采用整合SpringData的方式统一处理数据访问层,通过添加大量自动配置,引入各种数据访问模板xxxTemplate以及统一的Repository接口,从而达到简化数据访问层的操作。Spring Data提供了多种类型数据库支持,.

2020-06-09 16:58:17 184

原创 执行原理

2.4 执行原理​每个Spring Boot项目都有一个主程序启动类,在主程序启动类中有一个启动项目的main()方法,在该方法中通过执行SpringApplication.run()即可启动整个Spring Boot程序。问题:那么SpringApplication.run()方法到底是如何做到启动Spring Boot项目的呢?下面我们查看run()方法内部的源码,核心代码具体如下:@SpringBootApplicationpublic class SpringbootDemoAppl

2020-06-09 16:55:41 92

原创 自定义Stater

2.3 自定义StaterSpringBoot starter机制​ SpringBoot由众多Starter组成(一系列的自动化配置的starter插件),SpringBoot之所以流行,也是因为starter。starter是SpringBoot非常重要的一部分,可以理解为一个可拔插式的插件,正是这些starter使得使用某个功能的开发者不需要关注各种依赖库的处理,不需要具体的配置信息,由Spring Boot自动通过classpath路径下的类发现需要的Bean,并织入相应的Bean

2020-06-09 16:52:59 125

原创 自动配置(启动流程)第二节

(2)@Import({AutoConfigurationImportSelector.class}):将AutoConfigurationImportSelector这个类导入到spring容器中,AutoConfigurationImportSelector**可以帮助springboot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器(ApplicationContext)中继续研究AutoConfigurationImportSelecto

2020-06-09 16:50:30 90

原创 自动配置(启动流程)第一节

2.2 自动配置(启动流程)概念:能够在我们添加jar包依赖的时候,自动为我们配置一些组件的相关配置,我们无需配置或者只需要少量配置就能运行编写的项目问题:Spring Boot到底是如何进行自动配置的,都把哪些组件进行了自动配置?Spring Boot应用的启动入口是@SpringBootApplication注解标注类中的main()方法, @SpringBootApplication能够扫描Spring组件并自动配置Spring Boot下面,查看@SpringBootAppl

2020-06-09 16:47:15 96

原创 spring-boot-starter-web依赖

(2)问题2: spring-boot-starter-parent父依赖启动器的主要作用是进行版本统一管理,那么项目运行依赖的JAR包是从何而来的?spring-boot-starter-web依赖​查看spring-boot-starter-web依赖文件源码,核心代码具体如下<dependencies> <dependency> <groupId>org.springframework.boot</groupId>

2020-06-08 11:14:01 3104

原创 SpringBoot原理深入及源码剖析

SpringBoot原理深入及源码剖析​传统的Spring框架实现一个Web服务,需要导入各种依赖JAR包,然后编写对应的XML配置文件等,相较而言,Spring Boot显得更加方便、快捷和高效。那么,Spring Boot究竟如何做到这些的呢?接下来分别针对Spring Boot框架的依赖管理、自动配置和执行流程进行深入分析2.1 依赖管理​ 问题:(1)为什么导入dependency时不需要指定版本?​在Spring Boot入门程序中,项目pom.xml文件有两个核心依.

2020-06-08 11:07:29 220

原创 随机数设置及参数间引用

1.8 随机数设置及参数间引用​在Spring Boot配置文件中设置属性时,除了可以像前面示例中显示的配置属性值外,还可以使用随机值和参数间引用对属性值进行设置。下面,针对配置文件中这两种属性值的设置方式进行讲解1.8.1随机值设置​在Spring Boot配置文件中,随机值设置使用到了Spring Boot内嵌的RandomValuePropertySource类,对一些隐秘属性值或者测试用例属性值进行随机值注入​随机值设置的语法格式为${random.xx},xx表示需要指定生成的随机数

2020-06-08 11:05:20 178

原创 使用@Configuration编写自定义配置类

1.7.2 使用@Configuration编写自定义配置类在Spring Boot框架中,推荐使用配置类的方式向容器中添加和配置组件在Spring Boot框架中,通常使用@Configuration注解定义一个配置类,Spring Boot会自动扫描和识别配置类,从而替换传统Spring框架中的XML配置文件。当定义一个配置类后,还需要在类中的方法上使用@Bean注解进行组件配置,将方法的返回对象注入到Spring容器中,并且组件名称默认使用的是方法名,当然也可以使用@Bean注解的name或

2020-06-08 11:02:56 1446

原创 自定义配置

1.7 自定义配置​spring Boot免除了项目中大部分的手动配置,对于一些特定情况,我们可以通过修改全局配置文件以适应具体生产环境,可以说,几乎所有的配置都可以写在application.peroperties文件中,Spring Boot会自动加载全局配置文件从而免除我们手动加载的烦恼。但是,如果我们自定义配置文件,Spring Boot是无法识别这些配置文件的,此时就需要我们手动加载。接下来,将针对SpringBoot的自定义配置文件及其加载方式进行讲解1.7.1 使用@PropertyS

2020-06-08 11:01:13 133

原创 配置文件属性值的注入

1.6配置文件属性值的注入使用Spring Boot全局配置文件设置属性时:如果配置属性是Spring Boot已有属性,例如服务端口server.port,那么Spring Boot内部会自动扫描并读取这些配置文件中的属性值并覆盖默认属性。如果配置的属性是用户自定义属性,例如刚刚自定义的Person实体类属性,还必须在程序中注入这些配置属性方可生效。Spring Boot支持多种注入配置文件属性的方式,下面来介绍如何使用注解@ConfigurationProperties和@Value注入属性

2020-06-08 10:57:41 357

原创 application.yaml配置文件

1.5.2application.yaml配置文件YAML文件格式是SpringBoot支持的一种JSON超集文件格式,相较于传统的Properties配置文件,YAML文件以数据为核心,是一种更为直观且容易被电脑识别的数据序列化格式。application.yaml配置文件的工作原理和application.properties是一样的,只不过yaml格式配置文件看起来更简洁一些。YAML文件的扩展名可以使用.yml或者.yaml。application.yml文件使用 “key:(空格

2020-06-08 10:51:27 1202

原创 全局配置文件

1.5 全局配置文件全局配置文件能够对一些默认配置值进行修改。Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件,该文件存放在src/main/resource目录或者类路径的/config,一般会选择resource目录。接下来,将针对这两种全局配置文件进行讲解 :1.5.1 application.properties配置文件使用Spring Initializr方式构建Spring Boot项目时,会在resour

2020-06-08 10:49:18 1669 1

原创 热部署

(2)热部署​ 在开发过程中,通常会对一段业务代码不断地修改测试,在修改之后往往需要重启服务,有些服务需要加载很久才能启动成功,这种不必要的重复操作极大的降低了程序开发效率。为此,Spring Boot框架专门提供了进行热部署的依赖启动器,用于进行项目热部署,而无需手动重启项目演示:1.添加spring-boot-devtools热部署依赖启动器**在Spring Boot项目进行热部署测试之前,需要先在项目的pom.xml文件中添加spring-boot-devtools热部署依赖启动器:xml

2020-06-08 10:47:25 176

原创 单元测试与热部署

1.4 单元测试与热部署(1)单元测试​ 开发中,每当完成一个功能接口或业务方法的编写后,通常都会借助单元测试验证该功能是否正确。Spring Boot对项目的单元测试提供了很好的支持,在使用时,需要提前在项目的pom.xml文件中添加spring-boot-starter-test测试依赖启动器,可以通过相关注解实现单元测试演示:1.添加spring-boot-starter-test测试依赖启动器在项目的pom.xml文件中添加spring-boot-starter-test测试依赖启动器,示

2020-06-08 10:42:21 277

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除