解决SpringBoot引用别的模块无法注入的问题
目录
- 引用别的模块无法注入的问题
- 问题描述
- 解决方法
- 多模块项目中无法注入其他模块的springbean
引用别的模块无法注入的问题
前段时间尝试着利用空闲时间搭建了一个IIM消息通信系统,目前还是Demo级别,具体实现还在不断补充,在开发过程中遇到了一个小问题,在此分享出来,猛男请忽略。
问题描述
由于前期搭建的比较匆忙,搁那狂写调用逻辑,没注意自己的包名有点奇怪。
目前是分为这三个模块,客户端,公共处理模块,服务端,不过我正在琢磨着给这玩意再整个路由注册中心,便于客户端和服务端的横向拓展。
目前我server子模块的包名和common子模块的包路径如下
我在service包里的类里引用common包下的公共类时,发现无法注入我的消息分发器公共类;
emmmmm…以前自己配置过XML的包扫描,没试过注解的扫描。
解决方法
1.在启动类**@SpringBootApplication**加参数 ,扫描指定的包
@SpringBootApplication(scanBasePackages = {“com.zhl.dispatcher”,“server.server”})
这里也包括其他模块的包,扫描到包及子包的类。加载进Spring的容器当中。
2.新增注解
@ComponentScan(value = {“com.zhl.dispatcher”,“server.server”})
第二种其实这个注解是有些多余,@SpringBootApplication本身就已经包含扫描包路径的属性了,不过这两种方法都可以用哦
多模块项目中无法注入其他模块的spring bean
在一个springboot项目中创建了一个common模块,一个admin模块,
在admin模块中引入common模块依赖,发现无法注入common模块中的bean,idea提示无法找到bean。
瞎忙活一晚上,最后发现是两个模块路径不同意,一个是com.example.common,另一个是com.example.admin。
这是因为springboot的@SpringBootApplication注解默认扫描范围为自己的启动类所在的包(com.example.admin)及其子包,所以此时模块admin并没有扫描到模块common的bean,那么自然无法在模块admin中注入模块common的Service类。
最后:
方法一:都改成com.example就好了。
方法二:手动修改成导入多个包,@SpringBootApplication(scanBasePackages = {“com.example.admin”, “com.example.common”})
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
解决Spring Boot 多模块注入访问不到jar包中的Bean问题
情景描述 一个聚合项目spring-security-tutorial,其中包括4个module,pom如下所示: <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://mav
-
Spring boot 无法注入service问题
目录 Spring boot 无法注入service @Autowired注入无法实例化service 问题场景 问题解读 解决方案 @PostConstruct 描述 Spring boot 无法注入service SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描! "Application类"是指SpringBoot项目入口类. 这个类的位置很关键: 如果Application类所在的包为:com.boot.app,则只会扫描co
-
SpringBoot解决@Component无法注入其他Bean的问题
目录 SpringBoot @Component无法注入其他Bean 一.现象 二.解决 三.代码如下 @Component注解自动注入失效问题 SpringBoot @Component无法注入其他Bean 一.现象 在SpringBoot新new一个普通类,习惯性添加@Component让Spring扫描. 在@Component修饰的类里注入了其他Bean,运行时提示注入的为null 但这个Bean可以在控制层被引入,在普通类就不行. 二.解决 找了些资料,最后也没解决注入的问题. 最后的
-
聊聊SpringBoot中组件无法被注入的问题
目录 SpringBoot中组件无法被注入 1.描述问题 2.解决问题 3.总结问题 解决在@Component注入为null SpringBoot中组件无法被注入 1.描述问题 在SpringBoot中,无法通过注解@AutoWired来自动绑定实体bean或者组件component. 2.解决问题 首先检查自己的是否在实体类上加上了@Component这样的注解,@ComponentScan可以扫描的有@Service.@Repository.@Componnet.@Controller.@
-
解决SpringBoot引用别的模块无法注入的问题
目录 引用别的模块无法注入的问题 问题描述 解决方法 多模块项目中无法注入其他模块的springbean 引用别的模块无法注入的问题 前段时间尝试着利用空闲时间搭建了一个IIM消息通信系统,目前还是Demo级别,具体实现还在不断补充,在开发过程中遇到了一个小问题,在此分享出来,猛男请忽略. 问题描述 由于前期搭建的比较匆忙,搁那狂写调用逻辑,没注意自己的包名有点奇怪. 目前是分为这三个模块,客户端,公共处理模块,服务端,不过我正在琢磨着给这玩意再整个路由注册中心,便于客户端和服务端的横向拓展.
-
解决SpringBoot 测试类无法自动注入@Autowired的问题
原来的测试类的注解: @RunWith(SpringRunner.class) @SpringBootTest 一直没法自动注入,后来在@SpringBootTest, 加入启动类Application后就可以了 @RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class) 补充:spring boot项目单元测试时,@Autowired无法注入Service解决方式 首先确认: 测试类所在包名要和启动类一致
-
如何解决SpringBoot 加入AOP后无法注入的问题
SpringBoot 开启AOP后 出现无法注入的问题 真是坑的很啊~ 提示错误 org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type 或者 java.lang.ClassCastException: com.sun.proxy.$Proxy12 cannot be cast to cn.edu.nuc.SpringTest.service.impl.DemoServiceI
-
解决SpringBoot多模块发布时99%的问题
解决SpringBoot多模块发布时99%的问题?SpringBoot发布的8个原则和4个问题的解决方案 如果使用 SpringBoot 多模块发布到外部 Tomcat,可能会遇到各种各样的问题.本文归纳了以下 8 个原则和发布时经常出现的 4 个问题的解决方案,掌握了这些原则和解决方案,几乎可以解决绝大数 SpringBoot 发布问题. SpringBoot 多模块发布的 8 大原则 1 在发布模块打包,而不是父模块上打包 比如,以下项目目录: 如果要发布 api 就直接在它的模块上打包,而
-
SpringBoot调用公共模块的自定义注解失效的解决
目录 调用公共模块的自定义注解失效 项目结构如下 解决方法 SpringBoot注解不生效,踩坑 解决方法 调用公共模块的自定义注解失效 项目结构如下 我在 bi-common 公共模块里定义了一个自定义注解,实现AOP记录日志,bi-batch 项目已引用了 bi-common ,当在 bi-batch 使用注解的时候,没有报错,但是切面却失效. 自定义注解: @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) pub
-
解决Springboot @Autowired 无法注入问题
特别提醒:一定要注意文件结构 WebappApplication 一定要在包的最外层,否则Spring无法对所有的类进行托管,会造成@Autowired 无法注入. 1. 添加工具类获取在 Spring 中托管的 Bean (1)工具类 package com.common; import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionE
-
解决SpringBoot整合MybatisPlus分模块管理遇到的bug
前言 这个Bug前前后后折腾了两天才找到答案,虽说不是完全两天的工作时间在调试这个问题,但是过程也确实曲折,所以做一下记录,也当做一次自我反省 背景 SpringBoot 与 MyBatis-Plus 的 pom 依赖 <!-- SpringBoot 版本 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent&
-
解决springboot configuration processor对maven子模块不起作用的问题
环境 idea 2021.1 maven 3.6.1 springboot 2.3.10.RELEASED 问题: spring boot configuration annotation processor not configured 单模块maven项目 在pom内添加以下依赖即可消除警告 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-c
-
Springboot测试类没有bean注入问题解析
这篇文章主要介绍了Springboot测试类没有bean注入问题解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 其他乱七八糟配置就不扯了,先上项目结构图 配置好参数后我再src/test/java类测试访问数据库时发现bean没有正确的注入.值得注意的是,这个项目的启动类是叫App.java 所以我们必须在这个测试类上面加上注解: @RunWith(SpringRunner.class) @SpringBootTest(classes =
随机推荐
- java多线程之CyclicBarrier的使用方法
- python使用in操作符时元组和数组的区别分析
- golang如何利用原始套接字构造UDP包详解
- iOS CoreAnimation 图层几何学
- js动态生成Html元素实现Post操作(createElement)
- JavaScript中的console.group()函数详细介绍
- JS小功能(offsetLeft实现图片滚动效果)实例代码
- Python中暂存上传图片的方法
- Android 将view 转换为Bitmap出现空指针问题解决办法
- Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
- Jquery ajax加载等待执行结束再继续执行下面代码操作
- jquery 防止表单重复提交代码
- JavaScript 点击插入文字
- 详解javascript获取url信息的常见方法
- dedecms负载性能优化实例,三招让你的dedecms快10倍以上第1/2页
- python获取糗百图片代码实例
- c++ 临时对象的来源
- 使用C++程序获取新浪行情数据的方法
- Android 应用签名的两种方法
- windows服务器ssl证书创建、安装及配置方法