升级注册中心
变动清单
pangea-demo
|
|── pom.xml #修改spring boot、jhipster版本号及添加nacos相关依赖,删除eureka相关依赖
|
|── bootstrap.yml #添加nacos配置参数
|
|—— application*.yml #屏蔽eureka配置
1.pom.xml
修改spring-boot及jhipster版本
xml
<jhipster-dependencies.version>3.6.0</jhipster-dependencies.version>
<spring-boot.version>2.2.5.RELEASE</spring-boot.version>
添加nacos相关依赖包,代码如下:
xml
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
<!-- SpringCloud Ailibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
删除eureka相关依赖
yaml
<!--
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
-->
注意
因修改spring-boot及jhipster相关依赖包版本, 可能会引起以下修改。
- BaseRepositoryFactoryBean.java
java
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.support.JpaRepositoryFactory;
import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean;
import org.springframework.data.jpa.repository.support.JpaRepositoryImplementation;
import org.springframework.data.jpa.repository.support.SimpleJpaRepository;
import org.springframework.data.repository.core.RepositoryInformation;
import org.springframework.data.repository.core.RepositoryMetadata;
import org.springframework.data.repository.core.support.RepositoryFactorySupport;
import javax.persistence.EntityManager;
import java.io.Serializable;
public class BaseRepositoryFactoryBean<R extends JpaRepository<T, I>, T, I extends Serializable> extends JpaRepositoryFactoryBean<R, T, I> {
public BaseRepositoryFactoryBean(Class<? extends R> repositoryInterface) {
super(repositoryInterface);
}
@Override
protected RepositoryFactorySupport createRepositoryFactory(EntityManager em) {
return new BaseRepositoryFactory(em);
}
private static class BaseRepositoryFactory<T, I extends Serializable>
extends JpaRepositoryFactory {
private final EntityManager em;
public BaseRepositoryFactory(EntityManager em) {
super(em);
this.em = em;
}
//注释掉原有的getTargetRepository实现
// @Override
// protected Object getTargetRepository(RepositoryInformation information, EntityManager em) {
// return new BaseRepositoryImpl<T, I>((Class<T>) information.getDomainType(), em);
// }
//添加新版本getTargetRepository实现
@Override
protected SimpleJpaRepository<T, Serializable> getTargetRepository(RepositoryInformation information, EntityManager entityManager) {
return new BaseRepositoryImpl(information.getDomainType(), entityManager);
}
//设置具体的实现类的class
@Override
protected Class<?> getRepositoryBaseClass(RepositoryMetadata metadata) {
return BaseRepositoryImpl.class;
}
}
}
2.bootstrap.yml
添加nacos配置参数
yaml
spring:
cloud:
nacos:
server-addr: http://${NACOS_ADDR:127.0.0.1:8848}
discovery:
server-addr: ${spring.cloud.nacos.server-addr}
namespace: ${NAME_SPACE:public}
config:
server-addr: ${spring.cloud.nacos.server-addr}
file-extension: yaml
namespace: ${NAME_SPACE:public}
3. application*.yml
屏蔽application.yml中的eureka配置
yaml
#eureka:
# client:
# enabled: true
# healthcheck:
# enabled: true
# fetch-registry: true
# register-with-eureka: true
# instance-info-replication-interval-seconds: 10
# registry-fetch-interval-seconds: 10
# instance:
# appname: ${spring.application.name}
# instanceId: ${spring.application.name}:${spring.application.instance-id:${random.value}}
# lease-renewal-interval-in-seconds: 5
# lease-expiration-duration-in-seconds: 10
# status-page-url-path: ${management.endpoints.web.base-path}/info
# health-check-url-path: ${management.endpoints.web.base-path}/health
# metadata-map:
# zone: primary # This is needed for the load balancer
# profile: ${spring.profiles.active}
# version: ${info.project.version:}
# git-version: ${git.commit.id.describe:}
# git-commit: ${git.commit.id.abbrev:}
# git-branch: ${git.branch:}
屏蔽application-dev.yml中的eureka配置
yaml
#eureka:
# instance:
# prefer-ip-address: true
# client:
# service-url:
# defaultZone: http://admin:admin@hisense-jhipster-registry-hisense-framework.devapp.hisense.com:80/eureka/
## defaultZone: http://admin:${jhipster.registry.password}@${EUREKA_HOST:localhost}:8761/eureka/
## defaultZone: http://admin:${jhipster.registry.password}@${EUREKA_HOST:localhost}:${EUREKA_PORT:8761}/eureka/
# enabled: false #添加该行,系统不去注册器注册
屏蔽application-prod.yml中的eureka配置
yaml
#eureka:
# instance:
# prefer-ip-address: true
# client:
# service-url:
# defaultZone: http://admin:${jhipster.registry.password}@${EUREKA_HOST:localhost}:8761/eureka/