springboot~注册不同级别包里的bean~scanBasePackages
对于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相关推荐
- Springboot启动出现A component required a bean of type ‘com.xxx‘ that could not问题解决
今日写一个websocket小demo,启动项目时出现错误如下图 检查也没发现漏写注解,思考片刻后突然想起springboot扫描的范围是与启动类同级别的包-就是com.huang.demo.ssm目 ...
- springboot项目中利用@WebFilter注解和@Bean配置类两种方式实现Filter过滤器
过滤器(Filter) 过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理.通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理 ...
- SpringBoot项目打成War包??
SpringBoot项目打成War包 1. 首先在pom.xml里添加Tomcat依赖 <dependency> <groupId>org.spring ...
- spring容器里存取bean
spring容器里存取bean spring容器存取bean的过程是什么? Map中是怎么存放值的? 首先 , 先把各个对象码出来,把过程搭建好 1 . 建配置类 , 为这个类配置了一个包扫描 , 代 ...
- SpringBoot 打成的 jar 包和普通的 jar 包有什么区别
Spring Boot 中默认打包成的 jar 叫做可执行 jar,这种jar包可以通过可以通过命令(java -jar xxx.jar)来运行的,但这种jar包不能被其他项目所依赖,因为它和普通 j ...
- 记录springBoot项目使用jar包中的mapper报错问题
记录springBoot项目使用jar包中的mapper报错问题 背景 双数据源的实现 启动时报找不到对应的service 启动报mapper找不到 启动报no sqlsessionfactory 启 ...
- SpringBoot项目打jar包和war包
目录 一. SpringBoot项目打war包 二. SpringBoot项目打jar包 背景:使用Idea编辑器 一. SpringBoot项目打war包 步骤: 在pom.xml文件中的<b ...
- springboot 启动报错:required a bean of type 'xxxRepository' that could not be found
springboot启动的时候报错,错误如下: Field demoRepository in com.ge.serviceImpl.DemoServiceImpl required a bean o ...
- SpringBoot启动类自动包扫描
SpringBoot应用启动时,默认会自动扫描与启动类在同个包以及子包下的Bean. 所以当启动类的包名与项目子模块等的包名不同时,可以在启动类上添加包扫描注解: package com.xxx.ap ...
最新文章
- 《用Python进行自然语言处理》第6章 学习分类文本
- 在线学html5,HTML5 在线学习自我演进的导弹系统
- 如何从Docker容器内部连接到计算机的本地主机?
- mysql 脚本 linux_MySQL的一些功能实用的Linux shell脚本分享
- 谁是最好的Coder
- 【python数字信号处理】——循环卷积(也叫圆圈卷积)
- HDU 1999 不可摸数
- delphi7 提示注册过期问题
- python脚本加密_教你如何基于python实现脚本加密
- 如何保护 .NET 应用的安全?
- 2021-2025年中国制药行业MR报告软件行业市场供需与战略研究报告
- java multiple_Java Math multipleExact()使用方法和实例
- CVPR 2022|群核前沿院等提出首个基于数据驱动的面检测算法
- 腾讯PCG事业部后台实习开发过经(已拿offer)
- am start 启动王者荣耀
- nexus keytool docker
- 毕业设计 : 基于LSTM的文本情感分类 - 情感分类 情感分析 lstm
- 电子海图浮标信息的计算和输入
- ODC:在线深度聚类的无监督表示学习
- 安装mysql 遇到问题