0

实践:把Springboot项目配置迁移至 Apollo 配置管理中心

导读:由于配置日益增多不方便管理且期望配置修改实时生效,因此笔者决定部署一个配置中心,经过分析对比之后决定采用携程开源的 Apollo 配置管理中心。本文分享笔者基于 Apollo 提供 quick start 搭建服务端,并将一个多环境配置的 Springboot 项目迁移至 Apollo 的实践,希望对各位熟悉 Apollo 有所帮助。本地部署 Apollo为了方便用户体验,其官方文档提供了一个 quick start 部署 Apollo 的方案。具体部署可参考官方文档。其主要步骤如下:创建 ApolloPortalDB创建 ApolloConfigDB修改 demo.sh 数据库信息启动...

阅读全文>>

0

SpringBoot数据源配置原理

在数据库访问过程中,“数据源”无疑是最重要的概念之一,它不仅可以对与数据库访问相关的各种参数进行封装和统一管理,还可以管理数据库连接池,提高数据库连接性能。目前,在市面上有很多优秀的开源数据源,例如DBCP、C3P0、Druid、HikariCP等等。在SpringBoot2.x中,则采用目前性能最佳的HikariCP作为其默认数据源。接下来,我们就来具体介绍下SpringBoot的默认数据源配置及其原理。DataSourceAutoConfiguration我们知道,SpringBoot中几乎所有的默认配置都是通过配置类XxxAutoConfiguration进行配置的,SpringBoot...

阅读全文>>

0

SpringBoot的核心注解

前言springboot的核心就是注解。springboot通过各种组合注解,极大地简化了spring项目的搭建和开发。在springboot中有一些注解是其中的关键,必须掌握。@Configuration@Configuration并不是一个新的注解,在Spring3.0时已经存在了。@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义...

阅读全文>>

0

Spring Security 两种资源放行策略,千万别用错了

事情的起因是这样,有小伙伴在微信上问了一个问题:就是他使用 Spring Security 做用户登录,等成功后,结果无法获取到登录用户信息,松哥之前写过相关的文章(奇怪,Spring Security 登录成功后总是获取不到登录用户信息?),但是他似乎没有看懂。考虑到这是一个非常常见的问题,因此我想今天换个角度再来和大伙聊一聊这个话题。Spring Security 中,到底该怎么样给资源额外放行?1.两种思路在 Spring Security 中,有一个资源,如果你希望用户不用登录就能访问,那么一般来说,你有两种配置策略:第一种就是在 configure(WebSecurity web) ...

阅读全文>>

0

浅谈SpringBoot自动装配

说在前面我们都知道Ioc和AOP是Spring的两大核心特性,而近年来随着SpringBoot的越来越“智能”化,开发人员使用SpringBoot的也越来越多,那SpringBoot帮我们做了什么,又有哪些特性呢?SpringBoot的特性创建独立的Spring应用;直接嵌入Tomcat、Jetty或Undertow等Web容器(不需要部署WAR文件);提供固化的“starter”依赖,简化构建配置;当条件满足时自动装配Spring或第三方类库;提供运维特性,如指标信息(Metrics)、健康检查及外部化配置;绝无代码生成,并且不需要XML配置;接下来,浅谈一下SpringBoot的自动装配特...

阅读全文>>

1

springboot项目注册为windows系统服务并设置开机自启

springboot项目注册为windows系统服务并设置开机自启关于springboot项目的部署与SSM(框架)部署war包到Tomcat下有所不同,比较明显的是springboot打包为jar包,运行则是执行通过java -jar xxx.jar,不再需要放置在Tomcat下面运行。关于springboot项目部署相对于之前简化了一些步骤,只需要在服务器中安装好jdk环境,然后执行java -jar xxx.jar就可以把项目跑起来,如下所示。我们通过传统--->改进版--->改进版plus--->最终版演变方式来一步步探讨一下。1、方式一(传统版)(1)假设这是win...

阅读全文>>

0

Springboot中接口参数校验N种方法你会几个?

环境:springboot2.2.10.RELEASESpring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),结合BindingResult对象可以直接获取错误信息。JSR是什么?JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR...

阅读全文>>

0

SpringBoot咋使用PageHelper实现数据分页?

前言我们在做页面查询的时候由于页面无法一次性展示所有的数据,所以采用一种分段式的展示策略—分页查询,实现分页查询的方式有很多种方式,比如sql中的limit,mybatisplus带的分页插件等等,这里我们介绍一下如何在SpringBoot中使用PageHelper插件实现分页查询。正文PageHelperPageHelper是针对MyBatis最方便的分页插件PageHelper支持任何复杂的单表,多表查询。 它有以下特点:PageHelper不支持嵌套结果映射.PageHelper本质上是两次查询,第一次是对记录总数量的查询,第二次是对记录的查询。对记录的查询是利用了mybatis提供的拦...

阅读全文>>

0

分布式事务2阶段提交理论的落地方案seata的项目实战演示

背景看过我上一篇文章的小伙伴应该对seata 项目有了一个大概的认识,这一篇我就拿实际案例用户下订单->扣减库存->扣减用户余额,来演示。前期准备下载好seata-server 本示例以1.4.0版为例业务系统: 订单系统 仓储系统 用户系统所用框架 springboot , mybaits, httpclient项目调用结构实战引入jar包,spring-cloud-alibaba 版<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId&...

阅读全文>>

0

SpringBoot自动配置原理及手动实现自动配置

前言之前我们学习了SpringBoot中的配置文件及外部化配置,了解了SpringBoot对于配置文件的功能支持与增强,本篇我们将要来学习SpringBoot的自动配置原理及手动实现自动配置。数据库依赖引起的bug我们很多人在第一次使用SpringBoot的时候,往往对其原理认知不足,或者简单的了解以后就开始入门使用,往往最常见的就是使用SpringBoot添加一个持久化框架的依赖,用来尝试操作数据库,比如:<pre style="margin: 0px; padding: 8px 0px 6px; max-width: 100%; box-sizing: border-box; wor...

阅读全文>>