SpringBoot多模块项目(Multi-Modules)

SpringBoot多模块项目(Multi-Modules),第1张

经常看到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 模块,注


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11666097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存