Spring Cloud云架构

前面几篇我们已经介绍了Spring Cloud和oauth2的知识点,今天我们要利用Spring Cloud和oauth2进行commonservice-sso服务搭建,本节我们只是搭建commonservice-sso的基础平台,闲话少说,直接将步骤记录下来:

1. 创建maven项目commonservice-sso,其中pom.xml文件配置如下:

1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 6 <parent> 7 <groupId>com.ml.honghu</groupId> 8 <artifactId>commonservice</artifactId> 9 <version>0.0.1-SNAPSHOT</version> 10 </parent> 11 12 <artifactId>commonservice-sso</artifactId> 13 <packaging>jar</packaging> 14 15 <dependencies> 16 <dependency> 17 <groupId>org.springframework.cloud</groupId> 18 <artifactId>spring-cloud-starter-eureka</artifactId> 19 </dependency> 20 <dependency> 21 <groupId>org.springframework.cloud</groupId> 22 <artifactId>spring-cloud-starter-config</artifactId> 23 </dependency> 24 <dependency> 25 <groupId>org.springframework.boot</groupId> 26 <artifactId>spring-boot-starter-actuator</artifactId> 27 </dependency> 28 <dependency> 29 <groupId>org.springframework.boot</groupId> 30 <artifactId>spring-boot-starter-data-rest</artifactId> 31 </dependency> 32 <dependency> 33 <groupId>org.springframework.boot</groupId> 34 <artifactId>spring-boot-starter-web</artifactId> 35 </dependency> 36 <dependency> 37 <groupId>org.springframework.boot</groupId> 38 <artifactId>spring-boot-starter-security</artifactId> 39 </dependency> 40 41 <dependency> 42 <groupId>org.springframework.security.oauth</groupId> 43 <artifactId>spring-security-oauth2</artifactId> 44 </dependency> 45 46 <dependency> 47 <groupId>org.springframework.boot</groupId> 48 <artifactId>spring-boot-starter-test</artifactId> 49 </dependency> 50 <dependency> 51 <groupId>org.springframework.hateoas</groupId> 52 <artifactId>spring-hateoas</artifactId> 53 </dependency> 54 <dependency> 55 <groupId>org.springframework.boot</groupId> 56 <artifactId>spring-boot-starter-data-rest</artifactId> 57 </dependency> 58 <dependency> 59 <groupId>com.ml.honghu.common.framework</groupId> 60 <artifactId>common-framework-dao</artifactId> 61 <version>1.0.0-SNAPSHOT</version> 62 </dependency> 63 <dependency> 64 <groupId>org.springframework.boot</groupId> 65 <artifactId>spring-boot-starter-web</artifactId> 66 </dependency> 67 <dependency> 68 <groupId>org.springframework.boot</groupId> 69 <artifactId>spring-boot-starter-freemarker</artifactId> 70 </dependency> 71 <dependency> 72 <groupId>com.ml.honghu</groupId> 73 <artifactId>component-base</artifactId> 74 </dependency> 75 </dependency> 76 </dependencies> 77 78 <!-- 打包插件,其中repackage、true是专门打spring boot专用包 --> 79 <build> 80 <plugins> 81 <plugin> 82 <groupId>org.springframework.boot</groupId> 83 <artifactId>spring-boot-maven-plugin</artifactId> 84 <executions> 85 <execution> 86 <id>1</id> 87 <goals> 88 <goal>repackage</goal> 89 </goals> 90 </execution> 91 <execution> 92 <id>2</id> 93 <goals> 94 <goal>build-info</goal> 95 </goals> 96 </execution> 97 </executions> 98 </plugin> 99 </plugins> 100 </build> 101</project>

2. 配置bootstrap.yml文件

1spring: 2 application: 3 name: commonservice-sso 4 profiles: 5 active: dev,discoveryClient 6 cloud: 7 config: 8 discovery: 9 enabled: true 10 service-id: commonservice-config-server 11eureka: 12 client: 13 service-url: 14 defaultZone: http://honghu:123456@localhost:8761/eureka 15 instance: 16 prefer-ip-address: true

3. 配置项目启动文件

1package com.ml.honghu; 2 3import org.springframework.boot.SpringApplication; 4import org.springframework.boot.autoconfigure.SpringBootApplication; 5import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 6 7@SpringBootApplication 8@EnableEurekaClient 9public class SSOApplication { 10 public static void main(String[] args) { 11 SpringApplication.run(SSOApplication.class, args); 12 } 13}

4. 创建sso相关表:

1/* 2Navicat MySQL Data Transfer 3 4Source Server : localhost 5Source Server Version : 50621 6Source Host : localhost:3306 7Source Database : honghu 8 9Target Server Type : MYSQL 10Target Server Version : 50621 11File Encoding : 65001 12 13Date: 2017-10-26 20:12:56 14*/ 15 16SET FOREIGN_KEY_CHECKS=0; 17 18-- ---------------------------- 19-- Table structure for `oauth_access_token` 20-- ---------------------------- 21DROP TABLE IF EXISTS `oauth_access_token`; 22CREATE TABLE `oauth_access_token` ( 23 `token_id` varchar(256) DEFAULT NULL, 24 `token` blob, 25 `authentication_id` varchar(128) NOT NULL, 26 `user_name` varchar(256) DEFAULT NULL, 27 `client_id` varchar(256) DEFAULT NULL, 28 `authentication` blob, 29 `refresh_token` varchar(256) DEFAULT NULL, 30 PRIMARY KEY (`authentication_id`) 31) ENGINE=InnoDB DEFAULT CHARSET=utf8; 32 33 34-- ---------------------------- 35-- Table structure for `oauth_approvals` 36-- ---------------------------- 37DROP TABLE IF EXISTS `oauth_approvals`; 38CREATE TABLE `oauth_approvals` ( 39 `userId` varchar(256) DEFAULT NULL, 40 `clientId` varchar(256) DEFAULT NULL, 41 `scope` varchar(256) DEFAULT NULL, 42 `status` varchar(10) DEFAULT NULL, 43 `expiresAt` datetime DEFAULT NULL, 44 `lastModifiedAt` datetime DEFAULT NULL 45) ENGINE=InnoDB DEFAULT CHARSET=utf8; 46 47-- ---------------------------- 48-- Records of oauth_approvals 49-- ---------------------------- 50 51-- ---------------------------- 52-- Table structure for `oauth_client_details` 53-- ---------------------------- 54DROP TABLE IF EXISTS `oauth_client_details`; 55CREATE TABLE `oauth_client_details` ( 56 `client_id` varchar(128) NOT NULL, 57 `resource_ids` varchar(256) DEFAULT NULL, 58 `client_secret` varchar(256) DEFAULT NULL, 59 `scope` varchar(256) DEFAULT NULL, 60 `authorized_grant_types` varchar(256) DEFAULT NULL, 61 `web_server_redirect_uri` varchar(256) DEFAULT NULL, 62 `authorities` varchar(256) DEFAULT NULL, 63 `access_token_validity` int(11) DEFAULT NULL, 64 `refresh_token_validity` int(11) DEFAULT NULL, 65 `additional_information` varchar(4096) DEFAULT NULL, 66 `autoapprove` varchar(256) DEFAULT NULL, 67 PRIMARY KEY (`client_id`) 68) ENGINE=InnoDB DEFAULT CHARSET=utf8; 69 70 71-- ---------------------------- 72-- Table structure for `oauth_client_token` 73-- ---------------------------- 74DROP TABLE IF EXISTS `oauth_client_token`; 75CREATE TABLE `oauth_client_token` ( 76 `token_id` varchar(256) DEFAULT NULL, 77 `token` blob, 78 `authentication_id` varchar(128) NOT NULL, 79 `user_name` varchar(256) DEFAULT NULL, 80 `client_id` varchar(256) DEFAULT NULL, 81 PRIMARY KEY (`authentication_id`) 82) ENGINE=InnoDB DEFAULT CHARSET=utf8; 83 84-- ---------------------------- 85-- Records of oauth_client_token 86-- ---------------------------- 87 88-- ---------------------------- 89-- Table structure for `oauth_code` 90-- ---------------------------- 91DROP TABLE IF EXISTS `oauth_code`; 92CREATE TABLE `oauth_code` ( 93 `code` varchar(256) DEFAULT NULL, 94 `authentication` blob 95) ENGINE=InnoDB DEFAULT CHARSET=utf8; 96 97-- ---------------------------- 98-- Records of oauth_code 99-- ---------------------------- 100 101-- ---------------------------- 102-- Table structure for `oauth_refresh_token` 103-- ---------------------------- 104DROP TABLE IF EXISTS `oauth_refresh_token`; 105CREATE TABLE `oauth_refresh_token` ( 106 `token_id` varchar(256) DEFAULT NULL, 107 `token` blob, 108 `authentication` blob 109) ENGINE=InnoDB DEFAULT CHARSET=utf8;

备注: oauth的相关表是用来存储用户的token信息和认证信息的。

本节搭建先搭建那么多,后面的业务代码太多,我们会在后面的章节中放出来。

从现在开始,我这边会将近期研发的spring cloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发spring cloud框架的朋友,大家来一起探讨spring cloud架构的搭建过程及如何运用于企业项目。完整项目的源码来源 技术支持1791743380

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Spring Cloud云架构 - HelloWorld