springCloud入门搭建(一)

之前项目一直使用dubbo+zookeeper+SSM搭架项目,本次用springCloud来创建一下项目

中文文档:https://springcloud.cc/

官方文档:http://projects.spring.io/spring-cloud/#quick-start

本人使用eclipse搭建,本项目同样使用MAVEN,具体操作步骤如下:

一、创建注册中心 spring-boot主项目,用于方便管理项目

1.1 新建maven 项目 next

1.2 选择 create a simple project  然后 next

1.3 填写相关内容, 注意packaging 选择pom,然后finish

1.4 修改pom文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.jony.demo</groupId>
	<artifactId>spring-root</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>pom</packaging>

	<!-- 建议用1.4.0以后的版本之前的可能可能导致部分功能不能使用 包冲突 会出现注册问题 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.13.RELEASE</version>
	</parent>
	<modules>
		<module>spring-demo-register</module><!--注册中心项目 -->
	</modules>
	<!-- spring-cloud所有项目依赖包 -->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Dalston.SR1</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<finalName>spring-root</finalName>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<encoding>utf-8</encoding>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

二、创建注册中心项目

2.1鼠标右键主项目,新建maven module

2.2 填写项目名称 ,并勾选 create a simple project  然后finish

2.3 修改spring-register pom配置文件内容(添加注册中心依赖包)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.jony.demo</groupId>
		<artifactId>spring-root</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>spring-register</artifactId>

	<!-- 添加注册中心依赖的包文件 -->
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>
	</dependencies>
</project>

2.4 新建注册中心类以及配置文件

2.4.1 Register.java

package com.jony.register;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication //spring-boot 启动注解
@EnableEurekaServer // spring-cloud 服务注解
public class Register{
     public static void main(String [] args) {
            new SpringApplicationBuilder(Register.class).web(true).run(args);
        }
}

2.4.2 application.yaml

server:
  port: 7890

eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url: 
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

2.5 启动服务

右键 Register.java,然后 run as java application

浏览器访问:http://localhost:7890

注册中心启动成功。

三、创建服务到注册中心

3.1 右键spring-root 新建 maven module

3.2 修改pom

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.jony.demo</groupId>
		<artifactId>spring-root</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>spring-project-test</artifactId>

	<dependencies>
		<!-- spring-cloud 客服端 start -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
		<!-- spring-cloud 客服端 end -->
	</dependencies>
</project>

3.3 创建服务文件及配置文件

3.3.1 FirstApplication.java

package com.jony.project;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
@EnableEurekaClient //Eureka Client
public class FirstApplication {
    public static void main(String[] args) {
        new SpringApplicationBuilder(FirstApplication.class).web(true).run(args);
    }
}

3.3.2 Application.yaml

server:
  port: 5000

spring:
  application:
    name: spring-cloud-portal

#注册中心指向start    
eureka:
  instance:
    instance-id: spring-cloud-portal
    appname: ${spring.application.name}
  client: 
    service-url: 
      defaultZone: http://127.0.0.1:7890/eureka/
#注册中心指向end

3.4 右键Application.java run as  java application 启动服务

3.5 访问http://localhost:7890

可以看到服务已注册成功

注:上面操作过程中,我们将一个服务注册的注册中心中,没有经过任何验证。这样任何人都可以注册到注册中心了,这个问题如何处理?下面我们在注册中心中添加密码就可以实现这一过程了

四、给注册中心设置密码、及服务通过密码注册服务

4.1 修改注册中心pom包,添加密码包支持

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.jony.demo</groupId>
		<artifactId>spring-root</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>spring-register</artifactId>

	<!-- 添加注册中心依赖的包文件 -->
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>
		<!-- 注册中心密码配置 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>
	</dependencies>
</project>

4.2 给注册中心添加密码,修改 spring-register中的application.yaml,新增 security 内容如下:

server:
  port: 7890

security: 
    basic: 
        enable: true
    user: 
        name: admin
        password: abc123456 
eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url: 
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

重新启动 spring-register 文件,然后访问 http://localhost:7890 提示输入账号密码

注册中心密码配置完毕,下一步设置服务端

4.3 修改sping-project-test 中 application.yaml文件 内容为:

server:
  port: 5000

spring:
  application:
    name: spring-cloud-portal

#注册中心指向start    
eureka:
  instance:
    instance-id: spring-cloud-portal
    appname: ${spring.application.name}
  client: 
    service-url: 
      defaultZone: http://admin:[email protected]:7890/eureka/
#注册中心指向end

主要添加倒数第二行,添加了 admin:abc123456@ 用于访问注册中心

重启spring-project-test 中的FirstApplication.java,服务可以正常注册

到此spring-cloud 注册服务框架到此完毕

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章