对于springboot来说,它会把当前应用程序所在的包装载到ioc容器里,让使用者可以直接Autowired注入它们,一般的项目结果是这样的,这个项目包下有main方法,它将会把nacosdemo这个包里面所有的bean都扫描出来,然后在程序启动时,nacosdemo里的bean就会被自动注册了。

目前我们做一个测试,在nacosdemo包外层再建立一个包common,在里面写个组件,然后在nacosdemo里去使用它,整个项目结构如下

这时,项目启动后,是无法加载到你的bean的,因为它不会被扫描到,解决方法是把它添加到扫描包列表里

@SpringBootApplication(scanBasePackages = {"com.lind.nacosdemo", "com.lind.common"})
@EnableDiscoveryClient
public class NacosDemoApplication {public static void main(String[] args) throws InterruptedException {ConfigurableApplicationContext applicationContext = SpringApplication.run(NacosDemoApplication.class, args);String userName = applicationContext.getEnvironment().getProperty("user.name");String userAge = applicationContext.getEnvironment().getProperty("user.age");System.err.println("user name :" + userName + "; age: " + userAge);}
}

在添加时要注册,当前包的名称也要加上,否则当前包也会被覆盖的,这一点要清楚。

测试的代码

common里的组件bean

@Component
public class RedisConfig {public void print() {System.out.println("hello redis!");}
}

canosdemo包里调用它

  @AutowiredRedisConfig redisConfig;@RequestMapping("/get")public String get() {redisConfig.print();return username;}

结果如图,我们的方法被调用到了

这种方法虽然实现了我们的功能,但需要在程序的入口维护一坨坨包名,很不友好,下次我们说对这块进行重构。

只要一步一个脚印,水滴石穿,吃透、搞懂、拿捏住是完全没有问题的!看到这里的都是妥妥的铁粉无疑了,底下是微信,找到的可是有大把源码,学习路线思维导图啥的,多的我就不透露,539413949看大家自己的积极性了啊,热爱所热爱的,学习伴随终生

springboot~注册不同级别包里的bean~scanBasePackages相关推荐

  1. Springboot启动出现A component required a bean of type ‘com.xxx‘ that could not问题解决

    今日写一个websocket小demo,启动项目时出现错误如下图 检查也没发现漏写注解,思考片刻后突然想起springboot扫描的范围是与启动类同级别的包-就是com.huang.demo.ssm目 ...

  2. springboot项目中利用@WebFilter注解和@Bean配置类两种方式实现Filter过滤器

    过滤器(Filter) 过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理.通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理 ...

  3. SpringBoot项目打成War包??

    SpringBoot项目打成War包 1. 首先在pom.xml里添加Tomcat依赖     <dependency>         <groupId>org.spring ...

  4. spring容器里存取bean

    spring容器里存取bean spring容器存取bean的过程是什么? Map中是怎么存放值的? 首先 , 先把各个对象码出来,把过程搭建好 1 . 建配置类 , 为这个类配置了一个包扫描 , 代 ...

  5. SpringBoot 打成的 jar 包和普通的 jar 包有什么区别

    Spring Boot 中默认打包成的 jar 叫做可执行 jar,这种jar包可以通过可以通过命令(java -jar xxx.jar)来运行的,但这种jar包不能被其他项目所依赖,因为它和普通 j ...

  6. 记录springBoot项目使用jar包中的mapper报错问题

    记录springBoot项目使用jar包中的mapper报错问题 背景 双数据源的实现 启动时报找不到对应的service 启动报mapper找不到 启动报no sqlsessionfactory 启 ...

  7. SpringBoot项目打jar包和war包

    目录 一. SpringBoot项目打war包 二. SpringBoot项目打jar包 背景:使用Idea编辑器 一. SpringBoot项目打war包 步骤: 在pom.xml文件中的<b ...

  8. springboot 启动报错:required a bean of type 'xxxRepository' that could not be found

    springboot启动的时候报错,错误如下: Field demoRepository in com.ge.serviceImpl.DemoServiceImpl required a bean o ...

  9. SpringBoot启动类自动包扫描

    SpringBoot应用启动时,默认会自动扫描与启动类在同个包以及子包下的Bean. 所以当启动类的包名与项目子模块等的包名不同时,可以在启动类上添加包扫描注解: package com.xxx.ap ...

最新文章

  1. 《用Python进行自然语言处理》第6章 学习分类文本
  2. 在线学html5,HTML5 在线学习自我演进的导弹系统
  3. 如何从Docker容器内部连接到计算机的本地主机?
  4. mysql 脚本 linux_MySQL的一些功能实用的Linux shell脚本分享
  5. 谁是最好的Coder
  6. 【python数字信号处理】——循环卷积(也叫圆圈卷积)
  7. HDU 1999 不可摸数
  8. delphi7 提示注册过期问题
  9. python脚本加密_教你如何基于python实现脚本加密
  10. 如何保护 .NET 应用的安全?
  11. 2021-2025年中国制药行业MR报告软件行业市场供需与战略研究报告
  12. java multiple_Java Math multipleExact()使用方法和实例
  13. CVPR 2022|群核前沿院等提出首个基于数据驱动的面检测算法
  14. 腾讯PCG事业部后台实习开发过经(已拿offer)
  15. am start 启动王者荣耀
  16. nexus keytool docker
  17. 毕业设计 : 基于LSTM的文本情感分类 - 情感分类 情感分析 lstm
  18. 电子海图浮标信息的计算和输入
  19. ODC:在线深度聚类的无监督表示学习
  20. 安装mysql 遇到问题

热门文章

  1. WinHex v20.0 绿色单文件版
  2. 74hc164驱动数码管c语言程序,74hc164驱动数码管程序
  3. 【华人学者风采】孙茂松 清华大学
  4. 吊旗的尺寸一般是多大?
  5. 酒店三合一终端服务器,MOXA NPORT6650-32 三十二口三合一串口终端服务器
  6. php网页画线,HTML5 canvas基本绘图之绘制线条
  7. ffmpeg 抽帧处理
  8. 上课睡觉(合并石子问题)
  9. 某生存游戏玩家属性值分析
  10. Win10忘记pin码以及密码的解决办法(亲测有用)