NekoChip's Blog

一生懸命

文章

Spring Boot Config 配置

用过 Spring Boot 的大概都知道无论是通过 Spring Initializr 还是自己手动创建的 Spring Boot 项目,在 src/main/resources 目录下都会有一个 application.properties 或者 application.yml 文件。而我们可以通过这个文件对默认的一些配置进行修改。 1. 两者配置文件有什么不同吗? 这两种配置文件在功能上是没有任何区别的。两者相比较的话, yaml 类型的配置文件可读性更高,文件结构更清晰,所以推荐使用 yaml 类型的配置文件。 2. 自定义属性配置 除了 Spring Boot 默认提供的配置外,Spring Boot 允许我们在配置文件中配置一些自定义的属性。 ## 自定义属性 neko.blog.name=NekoChips' Blog neko.blog.url=https://chenyangjie.com.cn 创建一个类来接收这些配置属性: @Component public class MyBlog { @Value("${neko.blog.name:NekoChips....

Spring Boot 整合 ElasticSearch

在一般的项目开发中我们通常通过数据库来操作数据。在面临超大数据量的时,尽管通过 优化 sql,分库分表 等操作能够提升查询效率,但是就目前来说终究还是有些差强人意。而 ElasticSearch 全文搜索引擎在大数据量查询方面就显得尤为突出了。 阅读本文前,建议先花半个小时时间对 ElasticSearch 做个简单的了解。 1. 版本关系 Spring Boot 提供了对 ElasticSearch 的支持,由于 ElasticSearch 更新速度较快,Spring Boot 也无法及时做到相应的更新。在 Spring Boot 官网上也只出了对应的版本关系。 Spring Data Release TrainSpring Data ElasticsearchElasticsearchSpring Boot Moore3.2.x6.8.42.2.x Lovelace3.1.x6.2.22.1.x Kay3.0.x5.5.02.0.x Ingalls2.1.x2.4.01.5.x 在构建项目时需要注意版本对应关系,避免出现问题。 2. 添加依赖 当前项目Spr....

Spring Boot 使用 JdbcTemplate

我们在 Spring Boot 整合 Mybatis 中提到了 myabtis-spring-boot-starter 中引入了 spring-boot-starter-jdbc 依赖。而使用 JdbcTemplate 我们只需要在项目中引入 spring-boot-starter-jdbc 就可以使用了。 1. 添加依赖 在项目中我们依然使用 Druid 连接池,故添加 Druid 相关依赖: <!-- jdbc --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</a....

Spring Boot 使用 JPA

前言:前面我们了解了如何在 Spring Boot 中使用 Mybatis,而本文中所提到的 JPA 在配置方面与 Mybatis 几乎一致,使用方面也是大同小异。本篇文章只讲述 JPA 的使用,其他如 DataSource 以及 Druid 数据源相关说明请移步Spring Boot 整合 Mybatis 作为参考。 1. 添加依赖 只需引入数据库连接依赖和 Spring Boot 提供的 spring-boot-starter-data-jpa 依赖即可: <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- jpa --> <dependency> <groupId>org.springframework.bo....

Spring Boot 整合 Mybatis

Spring Boot 整合 Mybatis 非常简单,只需在项目中引入数据库连接依赖和 mybatis-spring-boot-starter 即可。 <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> 1. Mybatis 依赖说明 注意上图中红框标识出的内容,可见 mybatis-sprin....

Spring Boot 深入学习(5) —— @Autowired 和 @Resource

前面我们了解了组件是如何注入至 Spring IOC 容器中的,接下来我们再来谈谈在 Spring 中我们是如何使用这些组件的。 在使用 Spring 进行开发的过程中,我们通常使用 @Autowired 注解引入一个对象。那么它是如何引入这个对象的?这就是本篇文章将要讲到的内容。 1. @Autowired 注解 @Autowired 注解是 Spring 提供的注解,用于类的自动装配。在开发过程中我们经常使用到它。 老套路先上源码: @Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Autowired { /** * Declares whether the annotated dependency is required. * <p>De....

Spring Boot 深入学习(4) —— 深入理解 Spring Boot 自动装配

在上一篇文章中,对 @Enable 模块驱动有一个明确的认识后,还提到了 @EnableAutoConfiguration 注解。该注解的设计和实现方式与其他 @Enable 模块驱动注解也没有太大的区别,下面我们来看看它是怎么实现 自动装配 的。 1. @EnableAutoConfiguration 注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @AutoConfigurationPackage @Import(AutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration { String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration"; Class[] exclude() default {}; String[] excludeName() default {}; }....

Spring Boot 深入学习(3) —— 理解 Enable 模块驱动

Spring 以及 Spring Boot 中有很多模块都使用到了 Enable 模块驱动。这里的模块与我们理解的模块大致相同,均代表着实现某项功能的组件集合。而 Enable 模块驱动简单点说就是开启相应模块的功能。 开始之前,我们先看看 Spring Boot 中都有哪些功能模块用到了 Enable 模块驱动。 图中标注出来的注解想必大家都不陌生,下面我们以 @EnableCaching 注解为示例来看看 @Enable 模块驱动是如何实现的。 1. @EnableCaching 注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Import(CachingConfigurationSelector.class) public @interface EnableCaching { /** * Indicate whether subclass-based (CGLIB) proxies are to be created as opposed * to standard ....

Spring Boot 深入学习(2) —— 条件组件注册以及 @Import 使用

前文回顾:上篇文章中我们对 Spring 组件注册进行了一个算不得太深入的介绍,文中提到了很多注解,但限于篇幅部分注解还没有介绍到,所以在本篇文章中我们将继续介绍剩下的注解,如:@Conditional 家族系列注解 以及 @Import 注解。 1. @Conditional 注解 顾名思义,使用该注解可以指定注册组件的条件,只有满足了该条件才可以将组件交于 Spring 容器进行管理。源码如下: @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Conditional { /** * All {@link Condition Conditions} that must {@linkplain Condition#matches match} * in order for the component to be registered. */ Class<? extends Condition>....

Spring Boot 深入学习(1) —— Spring IOC 以及组件注册

随着 Spring 家族成员的增加,Spring 系列所提供的功能也是越来越完善。为了能够更好地使用 Spring,理解它的实现原理是必不可少的,那么阅读它的源码无疑是最直接的方式。 为了方便起见,源码学习系列我们使用 Spring Boot 2.2.6.RELEASE 来构建基本项目架构,在项目中逐步深入学习 Spring 。 1. 什么是 IOC ? IOC ,Inversion of Control 直译过来就是我们常说的 “控制反转” 。IOC 是面向对象框架中的一个概念, 通常我们也称之为 IOC 容器。这里还有一个重要的概念叫做 依赖注入 (Dependency Injection),而在 Spring 中 IOC 和 DI 是密不可分的。 关于 IOC 和 DI 概念这一块,我也是直到在知乎上看到一个回答才算是有个较为明确的理解。这里分享给大家。源于知乎:SpringIOC 有什么好处? 2. Spring 是怎么注册 Bean 的? 了解了 IOC 和 DI 后,我们再来看看 Spring 是怎么将 Bean 注册到 IOC 容器中的。 2.1 了解 Appli....

一生懸命

© 2021 NekoChip's Blog

Powered by Solo
Theme solo-sakura by adlered
  ❥(^_-)Enjoy Code Enjoy Life❥
版权所有 ICP 证:鄂ICP备19026877号-1

主题 | Theme