Simply get started, copy directly, and you can build a microservice (Hoxton.SR8) 2020.8.28 is released, the articles built by SpringCloud are being sorted out, don’t miss out on dry goods
https://spring.io/blog/2020/08/28/spring- cloud-hoxton-sr8-has-been-released
-
SpringCloud microservices can also be used by novices (Hoxton.SR8) (2) Ribbon|Service Consumers
-
SpringCloud microservices Xiaobai can also take (Hoxton.SR8) (3) Feign|Service Consumers
-
SpringCloud microservices Xiaobai can also take (Hoxton.SR8) (4) Hystrix|Circuit Breaker
-
SpringCloud white micro-services can take (Hoxton.SR8) (six) Zuul | Services Gateway
-
SpringCloud white micro-services can take (Hoxton.SR8) (seven) Gateway | Services Gateway
-
SpringCloud white micro-services can take (Hoxton.SR8) (eight) Sleuth | Link Tracking Service
-
Development tool: ideaj community edition
-
jar management: maven
- Aggregate build
1. Create a parent pom project
note:
- Spring Assistant is a plug-in, you need to install it yourself, installation tutorial reference
- The third picture, there is no mandatory selection of components before, it should be the version of ideaj, it doesn’t matter, let’s select one first, and delete it after creation.
- The springboot version we use is 2.2.10
- Finally choose your project name and project location
1.1 The content of parent pom.xml at the current stage
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.10.RELEASE</version>
<relativePath/>
</parent>
<groupId>com.zqh.www</groupId>
<artifactId>cloud-hoxton-sr8</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>cloud-hoxton-sr8</name>
<description>Hoxton.SR8微服务</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR8</spring-cloud.version>
</properties>
<dependencies>
</dependencies>
<!-- https://spring.io/blog/2020/08/28/spring-cloud-hoxton-sr8-has-been-released -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2. Create Eureka registry
note:
- Right-click the project to create a module, select Maven, click next, and then fill in your project name
2.1 The content of pom.xml of the eureka-server project at the current stage
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>cloud-hoxton-sr8</artifactId>
<groupId>com.zqh.www</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eureka-server</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<!-- 给Eureka注册中心添加认证 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.2 Configure EurekaServerApplication and application.yml
note:
- ideaj did not help me generate the package path, Application file, and application.yml, so here is my own creation
package com.zqh.www;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
import org.springframework.core.env.Environment;
/**
* 开启eureka服务
*/
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
private final static Logger logger = LoggerFactory.getLogger(EurekaServerApplication.class);
public static void main(String[] args) {
Environment env = SpringApplication.run(EurekaServerApplication.class, args).getEnvironment();
logger.info(
"\n----------------------------------------------------------\n\t"
+ "Application '{}' is running! Access URLs:\n\t"
+ "Local: \t\thttp://localhost:{}{}"
+ "\n----------------------------------------------------------",
env.getProperty("spring.application.name"), env.getProperty("server.port"),
env.getProperty("server.servlet.context-path") != null ? env.getProperty("server.servlet.context-path") : "");
}
}
server:
port: 8081
spring:
application:
name: eureka-server
security:
user:
# 配置spring security登录用户名和密码
name: root
password: root
eureka:
client:
# 让自己不需要注册在上面禁止客户端注册,表明自己是一个eureka server
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
instance:
hostname: localhost
package com.zqh.www.config;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
/**
* 默认情况下添加SpringSecurity依赖的应用每个请求都需要添加CSRF token才能访问,Eureka客户端注册时并不会添加,所以需要配置/eureka/**路径不需要CSRF token。
*/
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().ignoringAntMatchers("/eureka/**");
super.configure(http);
}
}
2.3 Browser access to eureka service page
Note: Click to visit http://localhost:8081 Account: root Password: root
3. Create a client and register
note:
- Right-click the project to create a module, select Maven, click next, and then fill in your project name
- Follow the steps in 2.2 to create the package path, EurekaClientApplication and application.yml
3.1 The pom.xml content of the eureka-client project at the current stage
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>cloud-hoxton-sr8</artifactId>
<groupId>com.zqh.www</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eureka-client</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.2 EurekaClientApplication 和 application.yml
package com.zqh.www;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.core.env.Environment;
/**
* 开启eureka客户端
*/
@EnableEurekaClient
@SpringBootApplication
public class EurekaClientApplication {
private final static Logger logger = LoggerFactory.getLogger(EurekaClientApplication.class);
public static void main(String[] args) {
Environment env = SpringApplication.run(EurekaClientApplication.class, args).getEnvironment();
logger.info(
"\n----------------------------------------------------------\n\t"
+ "Application '{}' is running! Access URLs:\n\t"
+ "Local: \t\thttp://localhost:{}{}"
+ "\n----------------------------------------------------------",
env.getProperty("spring.application.name"), env.getProperty("server.port"),
env.getProperty("server.servlet.context-path") != null ? env.getProperty("server.servlet.context-path") : "");
}
}
server:
port: 8083
spring:
application:
name: eureka-client
eureka:
client:
service-url:
#注册地址
defaultZone: http://root:root@localhost:8081/eureka/
#显示服务器IP加端口
instance:
hostname: localhost
prefer-ip-address: true
instance-id: ${spring.cloud.client.ip-address}:${server.port}
4. Refresh the browser eureka service page, the service registration is complete
5. Summary
- Complete the start of eureka service and add security authorization verification
- Complete client registration eureka