spring cloud快速搭建
spring cloud是一个微服务框架,它基于spring boot, spring cloud提供的全套的分布式系统解决方案 。
首先我们使用gradle来创建:
选择jdk以及勾选java,然后下一步
起包名已经项目名,下一步:
选择我们本地的gradle包,一直下一步,点击build.gradle并添加我们的依赖:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
group 'com.gaofei'
version '1.0-snapshot'
//gradle使用的插件
apply plugin: 'java'
//gradle使用spring-boot打包更方便
apply plugin: 'spring-boot'
//jdk的版本号
sourcecompatibility = 1.8
//本项目的
dependencies {
testcompile group: 'junit' , name: 'junit' , version: '4.12'
}
//由于本次创建gradle未出现src,由以下代码来解决
task "create-dirs" << {
sourcesets*.java.srcdirs*.each {
it.mkdirs()
}
sourcscts*.resources.srcdirs*.each{
it.midirs()
}
}
//编译构建时的配置
buildscript {
ext{
springbootversion= '1.5.10.release' //springbootversion是自己定义的变量 里面写的是springboot插件的版本
}
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' }
jcenter()
mavencentral()
maven{ url "http://repo.spring.io/snapshot" }
maven{ url "http://repo.spring.io/milestone" }
maven{ url "http://repo.spring.io/release" }
maven{ url 'http://repo.spring.io/plugins-snapshot' }
}
dependencies{
classpath( "org.springframework.boot:spring-boot-gradle-plugin:${springbootversion}" ) //指的是springboot的一个插件
}
}
//统一所有项目的配置 就是对所有的模块进行统一配置 所有以后的模块都不用再配置
allprojects {
group 'com.gaofei' //分组
version '1.0-snapshot' //版本号
ext{
springcloudversion= 'edgware.sr2'
}
//所有项目都会引用的阿里云里的maven
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' }
jcenter()
mavencentral()
maven{ url "http://repo.spring.io/snapshot" }
maven{ url "http://repo.spring.io/milestone" }
maven{ url "http://repo.spring.io/release" }
maven{ url 'http://repo.spring.io/plugins-snapshot' }
}
}
//统一所有子项目的配置
subprojects {
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'spring-boot'
dependencies {
compile( 'org.springframework.boot:spring-boot-starter-web' ){
//使用undertow来代替tomacat
exclude module: "spring-boot-starter-tomcat"
}
//替代tomcat
compile 'org.springframework.boot:spring-boot-starter-undertow'
//健康检查
compile 'org.springframework.boot:spring-boot-starter-actuator'
dependencies {
testcompile group: 'junit' , name: 'junit' , version: '4.12'
}
}
//版本控制插件
dependencymanagement{
imports{
mavenbom "org.springframework.cloud:spring-cloud-dependencies:${springcloudversion}"
}
}
}
|
通过注释可以看到各个代码块的作用,这里我们是用阿里云的仓库
接下来我们开始建eureka注册中心,通过new->module再建gradle项目来创建
在build中添加eureka-server依赖
1
2
|
//表示自己是一个服务器
compile 'org.springframework.cloud:spring-cloud-starter-eureka-server'
|
接下来在application.yml中配置
1
2
3
4
5
6
7
8
9
|
server:
port: 8000
spring:
application:
name: register-center #起个名字
eureka:
client:
register-with-eureka: false #启动时不注册表明自己是一个注册中心
fetch-registry: false
|
启动类
1
2
3
4
5
6
7
8
|
@springbootapplication
@enableeurekaserver //表明自己是注册中心
public class registercenterprovider {
public static void main(string[] args) {
springapplication.run(registercenterprovider. class );
}
}
|
启动:
这就表示注册中心启动成功
下面创建服务注册到服务中心
创建一个gradle module 项目
在build.gradle中添加thymeleaf组件,eureka客户端组件的依赖
1
2
3
4
|
//thymeleaf组件
compile 'org.springframework.boot:spring-boot-starter-thymeleaf'
//eureka客户端组件
compile 'org.springframework.cloud:spring-cloud-starter-eureka'
|
在application.yml中配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
server:
port: 8001
spring:
application:
name: project-shopping-mall #注册在注册中心的名字,它会进行键值对映射url
thymeleaf:
cache: false #关闭缓存
eureka:
client:
service-url:
defaultzone: http: //localhost:8000/eureka/ #注册到注册中心
instance:
prefer-ip-address: true #用两种方式进行注册,一种是使用主机名注册,一种是使用ip地址进行注册,这里使用ip地址进行注册
|
启动类:
1
2
3
4
5
6
7
|
@springbootapplication
@enablediscoveryclient //表示eureka客户端
public class shoppingmallprovider {
public static void main(string[] args) {
springapplication.run(shoppingmallprovider. class );
}
}
|
启动:
成功!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/itgaofei/p/9329375.html