经常看到GitHub上的一些官方demo,为了展示很多功能,项目是由多模块的形式组织的,基于maven构建的形式为根文件夹下有个pom.xml,每个功能文件夹下又有pom.xml。
刚开始傻傻不会用的时候,直接引入子文件夹下的pom.xml为maven项目。然后有需要看另一个功能又打开了一个子模块,因为IDE用的是idea,变成了多窗口。后来发现直接打开父模块接可以了,各个子模块可以在同一个窗口下切换和启动。
以下最简单的建一个多模块项目,为了学习微服务,将建两个springboot web的子模块,服务提供者provider和消费者consumer。
两个服务在同个idea窗口中开发和启动,测试调用consumer的服务,consumer内部会调用provider。
new Module - >spring initializr,分别新增artifactId为provider和consumer,放在springbootmodules目录之下:
因为两个SpringBoot项目都默认是8080端口,为了能同时启动,调整consumer的端口为8081,在consumer的application.properties中添加server.port=8081
在provider和consumer分别新增两个controller: ProviderController和ConsumerController,返回最简单的字符串。
ProviderController.java:
ConsumerController中为了调用provider( http://localhost:8081/provider ),使用了spring的RestTemplate做http客户端,多配置了RestTemplate的Bean
父pom.xml现在只有管理两个子模块的作用,可以抽取子模块统一的配置信息和依赖版本控制放父模块中管理。
父pom.xml:
子模块pom.xml,设置parent为springbootmodules:
使用mvn clean package命令,或点击idea maven窗口功能,把两个子模块打成jar包:
使用java -jar命令启动两个服务:
两个服务都正常启动,并且服务消费者consumer调用服务提供者provider正常:
.首先在edu的pom里面导入vod的依赖<dependency>
<groupId>cn.yl</groupId>
<artifactId>service_vod</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
1
2
3
4
5
1
2
3
4
5
2.在edu的驱动类EDUApplication上的
@SpringBootApplication
1
1
改成
@SpringBootApplication(scanBasePackages = {"cn.yl.service.vod","cn.yl.service.edu"})
1
1
3.(将 vod 的application.yml 改成如 application-vod.yml 的样式名 ) 在edu的 application.yml 里面添加
spring:
profiles:
active: vod
1
2
3
1
2
3
完成,在测试类中测试
-------使用@Autowired 装填自己模块的方法 如果还是报红
将类上的
!!!!!!!!!!!!!!!!!!!!!!
@SpringBootTest
1
1
改成
@SpringBootTest(classes = {EDUApplication.class})
1
1
@Autowired
private VodService vodService
1
2
1
2
文章知识点与官方知识档案匹配
Java技能树首页概览
109559 人正在系统学习中
打开CSDN APP,看更多技术内容
两个SpringBoot模块互相调用_springboot模块间调用_今晚我一个人的博 ...
两个SpringBoot模块互相调用 注意:本文未使用SpringCloud的Feign和OpenFeign 我们直接上 *** 作步骤 1,首先,在启动类加入RestTemplate,在项目启动的时候,使用@Bean注册到容器中 @SpringBootApplication public class GennlifeGdszApplication { ...
继续访问
SpringBoot跨系统调用接口方案_springboot 跨系统_仙道Bob的博客-CSDN...
项目开发中存在系统之间互调问题,又不想用dubbo,这里提供几种springboot方案: 1、使用Feign进行消费(推荐) 2、使用原始httpClient请求 3、使用RestTemplate方法 二、方案 方案一:使用Feign进行消费(推荐) ...
继续访问
Springboot多模块 整合 mybatis maven项目
springboot项目分成多个模块(maven)的简单使用,在加上mybatis 初学者相当实用!
两个SpringBoot模块互相调用
两个SpringBoot模块互相调用 注意:本文未使用SpringCloud的Feign和OpenFeign 我们直接上 *** 作步骤 1,首先,在启动类加入RestTemplate,在项目启动的时候,使用@Bean注册到容器中 @SpringBootApplication public class GennlifeGdszApplication { public static void main(String[] args) { SpringApplication.run(Gennli
继续访问
SpringBoot +Cloud多模块彼此调用笔记_天亮再出发的博客
首先我们用脚手架创建一个SpringBoot项目 父项目的pom文件 <?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...
继续访问
SpringCloud项目跨模块调用报 程序包...不存在 找不到符号
试了常见的所有方法,均不奏效,最终通过比较两个模块的pom文件,得以解决: 在被调用的System模块下加入以下配置: <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId...
继续访问
最新发布 springboot多个service互相调用的事务处理方式
springboot中service之间相互调用
继续访问
Spring Boot多模块化后,服务间调用的坑及解决
添加配置后截图如下,其中common-1.0-SNAPSHOT-exec.jar为可执行jar,common-1.0-SNAPSHOT.jar为普通jar包。common也是SpringBoot工程,SpringBoot工程打包编译时,会生成两种jar包,一种是普通的jar,另一种是可执行jar。默认情况下,这两种jar的名称相同,在不做配置的情况下,普通的jar先生成,可执行jar后生成,造成可执行jar会覆盖普通的jar。| - - - - - common(通用工具类子工程)parent(父类工程)
继续访问
记Spring Boot多模块(跨module)@Resource、@Autowired等bean注入 NULL问题
在启动类上加上@SpringBootApplication(scanBasePackages = {“com.saynight”}) 或者@SpringBootApplication及@ComponentScan(basePackages = {“com.saynight”}) 联合使用 依赖Bean加上@Resource、@Autowire注解,依赖Bean.java文件如CircuitBreakerFactory上加上@Service、@Component注解。 注意bean初始化时代码执行顺序。
继续访问
基于springboot的两个项目之间的远程调用
基于springboot的两个项目之间的远程调用,有问题请提出
两个SpringBoot模块互相调用(基于SpringCloud-Alibaba)
使用SpringCloud-Alibaba组件,利用Nacos,OpenFeign完成远程调用功能一,简介二,环境配置1,首先引入依赖,根据自己使用的spring cloud版本选择2,修改对应服务的配置文件,将服务注册到nacos注册中心三,代码编写1,修改对应服务的启动类,完成服务注册2,编写远程调用方法四,注意事项五,启动项目,此时远程调用接口已经调通,完活收工。 一,简介 在SpringCloud分布式微服务系统中,常会遇到远程调用其他模块的问题,SpringCloud-Alibaba提供了Naco
继续访问
解决SpringBoot引用别的模块无法注入的问题
多模块开发的时候,A模块引入B模块,却无法注入B模块中被。容器中的注解,都是无法在A模块中注入进来。等,只要是你能想到能将类放置在。属性指定包的扫描路径。属性指定包的扫描路径。
继续访问
SpringCloud实现一个模块调用另一个模块的服务
SpringCloud实现一个模块调用另一个模块的服务 简介 基于SpringCloud框架搭建的项目,不同模块之间是无法调用各自的服务的,但是经常我们需要使用这样的模式去开发,那么如何实现不同模块之间的服务调用呢? 准备 1.在需要调用其他模块服务的项目中创建一个package包,里面定义三个类,如下图 在要调用别的模块的模块加依赖 <dependency><groupId...
继续访问
SpringBoot:一个模块加载另一个的模块的配置文件
目的:父工程parent下的两个模块,common和eureka,使eureka模块的配置文件可以读取common的配置文件 首先是配置文件类型,我使用的是yml,使用properties也是一样的 目录结构如图: 在commom模块中添加一些自定义配置 yml文件必须以application-XXX.yml格式命名,不然后续配置无法识别 在eureka模块中的配置 # 配置读取common文件 spring: profiles: active: common 通过${}表达式,就可以拿
继续访问
springboot中各模块间实现bean之间互相调用(service以及自定义的bean)
1.建一个项目,两个module(注意项目和module都是创建类型如下图) 2. 新建module1: demo1 module2: demo3,实现demo3 调用 demo1 的service 建好如图: 3.在demo3中引入demo1的依赖,demo3的pom文件中加入: <dependency><groupId>com.example</groupId>...
继续访问
Springcloud-实现跨项目相互调用(简易版)
Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware. - 版本说明 · alibaba/spring-cloud-alibaba Wiki。本次将使用订单服务微服务调用用户以及商品的微服务,我们先启动用户以及商品的微服务 最后使用订单微服务调用。-- SpringBoot 依赖配置 -->
继续访问
SpringCloud笔记一: 跨模块调用,服务注册发现(Eureka、Nacos)
Day1:跨模块调用,服务注册发现(Eureka)
继续访问
热门推荐 SpringBoot实现一个项目多模块,多主启动模块,每个模块多环境配置文件
我们在日常开发过程中,在新建一个项目中,我们经常会将一个项目按照功能性、模块等将一个项目分成多个子项目,这些子项目都包含在主项目中。 对于Spring、SpringBoot中实现多模块化,网上有很多教程,这里就不在讲述了。 本次主要讲的是如何在一个项目中能够有两个Application,即有两个启动类,启动不同的启动类,能够访问不同的功能,另外我们开发项目时,需要将配置分为开发环境、测试环境、生产...
继续访问
springboot自定义工具类中,如何调用service层方法
springboot自定义工具类中,如果想调用service层方法,是不能使用传统方式实现的,比如@Autowired HolidayService holidayService或者new HolidayServiceImpl(),需要特殊的配置才能实现调用,否则报null指针异常。
继续访问
【springboot】微服务,实现模块之间的调用
springboot就是spring,是快速配置spring的脚手架,springcloud是很多框架的集合,要使用里面的框架依赖于springboot。@FeignClient(“service-vod”) 指定模块其中service-vod为模块名称,但不能有_/vodService/vod/video/deleteByVoId/{videoId} 路径不能错。地址:http://localhost:8848/nacos。将模块在注册中心中注册,实现微服务模块之间的互相调用。
继续访问
绝了!这款工具让SpringBoot不再需要Controller、Service、DAO、Mapper!
Dataway介绍 Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具,使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布,一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口,应用无需单独为 Dataway 开辟新的管理端口。 这种内嵌集成方式模式的优点是,可以使得大部分老项目都可以在无侵入的情况下直接应用 Dataway。进而改进老项目的迭代效率,大大减少企
继续访问
SpringBoot - 跨模块调用自定义注解失败
SpringBoot - 跨模块调用自定义注解失败
继续访问
Spring Boot 多模块开发, 子模块的bean调用问题及解决方法
Spring Boot 多模块工程 1、新建一个maven工程 工程名 :spring-boot-sample-project 删除多余的文件,只留spring-boot-sample-project工程中的pom.xml文件 2、在spring-boot-sample-project工程中增加子模块 新增:spring-boot-sample-api 模块,注
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)