Spring Boot

深度剖析分布式单点登录框架XXL-SSO

蓝咒 提交于 2021-02-16 20:47:38
于2018年初,在github上创建XXL-SSO项目仓库并提交第一个commit,随之进行系统结构设计,UI选型,交互设计…… 于2018-12-05,XXL-SSO参与" 2018年度最受欢迎中国开源软件 "评比,在当时已录入的一万多个国产开源项目中角逐,最终排名第55名。 于2019-01-23,XXL-SSO被评选上榜" 2018年度新增开源软件排行榜之国产 TOP 50 "评比,排名第8名。 至今,XXL-SSO已接入多家公司的线上产品线,接入场景如电商业务,O2O业务和核心中间件配置动态化等,截止2018-03-15为止,XXL-SSO已接入的公司包括不限于: 湖南创发科技 深圳龙华科技有限公司 摩根国际 印记云 一、简介 1.1 概述 XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。拥有"轻量级、分布式、跨域、Cookie+Token均支持、Web+APP均支持"等特性。现已开放源代码,可以做到开箱即用。 1.2 特性 1、简洁:API直观简洁,可快速上手; 2、轻量级:环境依赖小,部署与接入成本较低; 3、单点登录:只需要登录一次就可以访问所有相互信任的应用系统。 4、分布式:接入SSO认证中心的应用,支持分布式部署; 5、HA:Server端与Client端,均支持集群部署,提高系统可用性; 6、跨域

Sping Boot入门到实战之实战篇(一):实现自定义Spring Boot Starter——阿里云消息队列服务Starter

喜夏-厌秋 提交于 2021-02-16 11:19:29
  在 Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置 这篇中,我们知道Spring Boot自动化配置的实现,主要由如下几部分完成: @EnableAutoConfiguration注解 SpringApplication类 spring-boot-autoconfigure jar包 spring.factories文件   官方提供的starter,大多包含两个jar包: 一个starter——没有任何实现,只用来管理依赖(spring.providers文件声明),一个autoconfigure包——包含所有具体实现,包括自动配置类,及META-INF/spring.factories文件。自定义starter的时候,可以合并写到一个。   官方提供的starter,命名遵循spring-boot-starter-xx, 自定义starter,命名遵循xx-spring-boot-starter。   本文基于阿里云消息队列RocketMQ服务(https://help.aliyun.com/document_detail/43349.html?spm=a2c4g.11186623.3.2.Ui5KeU),实现一个自定义starter,以实现定时消息与延迟消息(如订单多久未支付自动关闭等)发送与接收功能的快速开发。源码地址: mq

Activiti7官方博客翻译3——12个factor的应用

你离开我真会死。 提交于 2021-02-16 10:39:17
要构建云本地应用程序和服务,仅仅在Docker映像中封装旧的整体并在Kubernetes中运行它是不够的。我们重视Heroku定义的被称为“ The Twelve-Factor App ”的原则:https://12factor.net(从关键的角度看 https://content.pivotal.io/ebooks/beyond-the-12-factor-app )。没有这些指导原则,就很难在分布式环境中进行扩展。Activiti Cloud对流程引擎进行了重新定位,以便更好地与此类分布式环境中的其他组件进行交互。Activiti Cloud成功的衡量标准是与其他微服务及其设计、构建和部署方式的低阻抗不匹配。 1.一个代码库,一个应用 我们的示例服务都位于不同的存储库中,每个存储库都表示一个Spring引导应用程序,Spring Cloud库也支持该应用程序。每个服务存储库都包含一组构件,这些构件使它们适合于CI/CD管道: Jenkinsfile:(或其他pipiline定义)管道,用于构建、部署和将当前服务提升到Kubernetes集群。 Maven项目:定义使用Spring Boot和Activiti Cloud starter构建的服务。 Dockerfile:定义如何为服务构建docker映像 HELM Charts:定义一组清单(kubernetes描述符)

缘起 Dubbo ,讲讲 Spring XML Schema 扩展机制

大憨熊 提交于 2021-02-16 09:48:20
背景 在 Dubbo 中,可以使用 XML 配置相关信息,也可以用来引入服务或者导出服务。配置完成,启动工程,Spring 会读取配置文件,生成注入 相关 Bean。那 Dubbo 如何实现自定义 XML 被 Spring 加载读取? Spring XML Schema 扩展机制。从 Spring 2.0 开始,Spring 开始提供了一种基于 XML Schema 格式扩展机制,用于定义和配置 bean。 Spring XML Schema 扩展机制 实现 Spring XML Schema 扩展,其实非常简单,只需要完成下面四步。 创建 XML Schema 文件,由于该文件后缀名为 xsd,下面称为 XSD 文件。 编写实现一个或多个 BeanDefinitionParser 。 编写 NamespaceHandler 实现类。 注册 NamespaceHandler 以及 XSD 文件。 我们按照以上步骤,最终完整 Spring 解析如下配置。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:demo=

springboot入门

╄→尐↘猪︶ㄣ 提交于 2021-02-16 05:36:08
package com.imooc.myspringboot_inttell.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class MyController { @Value("${mall.config.name}") private String name; @Value("${mall.config.description}") private String description; @Value("${mall.config.hot-sales}") private Integer hotSales; @Value("${mall.config.show-advert}") private Boolean showAdvert; @RequestMapping("/out")

SpringBoot入门

…衆ロ難τιáo~ 提交于 2021-02-16 03:27:23
一、Spring Boot 入门 1、Spring Boot 简介 简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 2、微服务 2014,martin fowler 微服务:架构风格(服务微化) 一个应用应该是一组小型服务;可以通过HTTP的方式进行互通; 单体应用:ALL IN ONE 微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元; 详细参照微服务文档 3、环境准备 环境约束 jdk1.8:Spring Boot 推荐jdk1.7及以上;java version "1.8.0_112" maven3.x:maven 3.3以上版本;Apache Maven 3.3.9 IntelliJIDEA2017:IntelliJ IDEA 2017.2.2 x64、STS SpringBoot 1.5.9.RELEASE:1.5.9; 统一环境; 1、MAVEN设置; 给maven 的settings.xml配置文件的profiles标签添加 <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven

SpringBoot入门教程(三)通过properties实现多个数据库环境自动切换配置

╄→гoц情女王★ 提交于 2021-02-16 02:14:40
前面的文章已经介绍了 CentOS部署SpringBoot项目从0到1 的详细过程,包括Linux安装ftp、Tomcat以及Java jdk的全部过程。这篇文章主要介绍关于springboot如何通过多个properties实现数据库环境部署时自动切换配置的两种方式,部署时切换方式和打包时Maven控制方式。 关于springboot基础矿建搭建有疑问的。可以看我之前的一篇文章。 详解intellij idea搭建SpringBoot v 环境介绍 正常来讲,一个软件的开发上线的流程大部分都是分为三个环境,依次是开发、测试、上线。 开发环境(dev): 开发环境是指的是咱们本地跑的环境。 测试环境(qa): 一般是克隆一份生产环境的配置,qa即test。 生产环境(prod) 正式提供对外服务的,即是真实环境。 关于三个环境的切换已然标准化了,这里只是一笔带过一下,因为下文中的配置文件会跟三个环境有关联。相信所有人都不会对这三个环境陌生的。 今天主要讲讲关于springboot如何通过多个properties实现数据库环境部署时自动切换配置的两种方式,部署时切换方式和打包时Maven控制方式。首先介绍部署时切换的方式。 v 部署时切换 1.1 配置dev和qa环境数据,以备测试。 1.2 新增properties文件 如上图:在application

推荐几个好用的IDEA插件_让你解放双手的秘密

匆匆过客 提交于 2021-02-16 00:15:05
点击上方 蓝色字体 ,选择“标星公众号” 优质文章,第一时间送达 66套java从入门到精通实战课程分享 今天给大家介绍几个常用的IDEA插件,能给大家在枯燥的IDE里带来更好的coding体验。主要有阿里巴巴编程规范插件、翻译插件、代码自动补全插件、代码快速预览插件、mybatis辅助插件和lombok等。 插件安装 首先得知道在IDEA里,在哪安装插件? 点击File---->Settings 找到Plugins标签 如果这里Plugins加载不出来可以见我另一篇博客 IDEA插件市场Plugins无法加载如何解决 Alibaba Java Coding Guidelines 大家应该都听过阿里巴巴的Java开发手册,里面规范了代码风格的各种行为规范,没错,这个插件就是自动规范你的代码风格。 使用 如果开启了实时检测,在代码中不规范的部分将直接波浪线或者红线警告 比如if没有加大括号 在开发手册中也有对应 如果没有开启实时检测,只需要在需要检测的代码区内右击,选择编程规范扫描即可 可以发现警告信息就来了 对于初学者我觉得养成好的代码习惯还是很重要的,这个插件可以有 Translation 对于英语不好的同学来说这个功能可谓是coding必备,不管是看源码,还是看别人代码中变量名的意思,都十分重要。 使用 使用方法也是简单的一批,上手即用! 光标框选你想翻译的词、句

使用Docker部署Spring Boot项目

ⅰ亾dé卋堺 提交于 2021-02-15 13:06:02
本文使用Docker部署Spring Boot项目。部署之前需要环境中已经安装Docker和Maven(用于打包),所以本文先进行安装Docker和Maven;接着搭建一个Spring Boot项目,使其支持Docker部署;最后进行部署和测试。 环境搭建 安装Docker 检查系统内核版本 Docker运行在CentOS 7上,要求操作系统为64位,内核版本为3.10及以上。 确认本机已经安装了满足要求的Linux内核。使用命令 uname -r 来检查内核版本信息。 [root@localhost ~]# uname -r 3.10.0-957.el7.x86_64 在CentOS 7中安装Docker 使用命令 yum install -y docker 安装Docker,“-y”表示不询问,使用默认配置进行安装。 启动Docker服务,并设置为开机自启动 使用下列命令: systemctl start docker.service systemctl enable docker.service 查看版本信息 输入 docker version ,返回版本信息表明Docker安装成功。 [root@localhost ~]# docker version Client: Version: 1.13.1 API version: 1.26 Package version:

spring boot mybatis+ vue 使用POI实现从Excel中批量导入数据

穿精又带淫゛_ 提交于 2021-02-15 09:50:17
一、前端vue+element   1.前端使用element的upload组件来实现文件的上传           <el- upload style ="display: inline-flex;margin-right: 8px" :show -file-list="false" :before -upload="beforeUpload" :on -success="onSuccess" :on -error="onError" accept =".xls" :disabled ="importDataButtonDisabled" action ="/employee/basic/import"> <el-button :disabled="importDataButtonDisabled" type="success" size="small" :icon="importDataButtonIcon"> {{importDataButtonMsg}} </el-button> </el-upload>      show-file-list :是否显示已选择文件列表      before-upload :文件上传以前调用的钩子     on-error:文件上传失败后的钩子     on-success:文件上传成功后的钩子     accept:接受的文件类型