前述:
之前公司来了个项目,那会儿自己用的是springboot框架搭的,后来又接手了公司另一个已开发的项目,是springcloud架构的微服务项目,而且要和之前的自己用springboot项目要相互打通,一个是springboot,一个springcloud。那么相互之间如何调用的问题便抛了出来
springcloud服务之间是服务调用,而未集成cloud的springboot框架的项目与springcloud项目之间,肯定是不可以服务调用,那么我能想到的调用方式就是自己写httpclient来进行接口调用(虽然fegin本质也是接口调用),当我们习惯了springcloud的服务之间的服务调用后,再去自己写httpclient,会发现,哇....这好麻烦啊....
想偷懒?那就把springboot升级一下吧!在产品迭代的空隙间,闲来无事,就把springboot升级一下!
概要:
我的springboot项目版本<version>1.5.6.RELEASE</version>,根据springboot与cloud的版本对应关系,我选择了<spring-cloud.version>Edgware.SR3</spring-cloud.version>,具体springcloud版本说明,可参考我的另一篇文章:https://blog.csdn.net/With_Her/article/details/98759517
升级的思想是:
1.把springcloud的jar在pom中引入
2.在application的配置文件中,加入eureka与cloud等的配置
3.在启动器中加入eureka与fegin等相关注解
开始!
1.添加pom
在springboot框架的pom基础上,直接添加springcloud相关的pom
<properties> <spring-cloud.version>Edgware.SR3</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> <version>1.4.4.RELEASE</version> </dependency> <!--<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency>--> <!--<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>--> </dependencies> <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>
上面引入的这几个pom其实就是springcloud的各个核心组件,有兴趣的可以看我的另一篇文章:https://blog.csdn.net/With_Her/article/details/97165385
2.application中加入配置
#cloud spring: cloud: config: discovery: enabled: true service-id: service_name #定义项目在eureka中的服务名 spring: application: name: service_name #eureka eureka: client: service-url: defaultZone: http://127.0.0.1:8761/eureka instance: #租期更新时间间隔 lease-renewal-interval-in-seconds: 10 #租期到期时间 lease-expiration-duration-in-seconds: 10 prefer-ip-address: true
3.启动器上加入注解
@SpringBootApplication @ServletComponentScan //Servlet、Filter、Listener 可以直接通过 @WebServlet、@WebFilter、@WebListener 注解自动注册,无需其他代码。 @EnableScheduling //启动线程(task定时任务需要此注解) @EnableTransactionManagement(proxyTargetClass = true)//事务管理 @EnableEurekaClient @EnableFeignClients(basePackages = {"com.package.*"}) public class Application extends SpringBootServletInitializer { }
然后就好啦!
这是我本次升级所有的操作,但是对于其中的一些配置与注解的作用不是太了解,还需要再去看看
有很多不足,希望您借鉴参考后,如果有问题,及时反馈给我!相互进步!
参考文档:https://blog.csdn.net/qq_32423845/article/details/82016331
转载请注明出处.