`

springboot 多模块注入bean ,访问不到

阅读更多

1、Spring Boot 的启动类启动时,默认扫描其所在的根目录及其子目录。

所以:所以注入的bean,放在 启动类所在的目录或者启动类所在目录的子目录,最为适宜。

 

2、如果,注入的bean不在启动类所在的目录或者其子目录下的话,默认扫描是找不到的,

这时候,就需要在启动类上添加扫描的目录。

注意:添加扫描的目录时:添加了什么目录,启动类启动时就扫描这个目录及其子目录,

所以,添加扫描bean的目录时,一定要添加,启动类所在的目录(否则,启动类所在的

目录及其子目录是不会被扫描的;当然,如果启动类所在的目录及其子目录  没有要用到

的东西--<基本没这种情况>,可以不添加。所以还是加上,以免出现未知异常,就头疼了。)

即:需要扫描哪里,就添加对于的扫描目录(灵光一闪)。

 

3、举例说明:

A:先举例说明第二中情况:

两个module:

I:springboot-web   

              //启动类WebApplication.java 所在的目录为:com.cp.springboot.web

              //MsgController所在目录为:com.cp.springboot.web.controller

II:springboot-domain

              //MsgBean 所在目录为:com.cp.springboot.domain.bean

 

此时:要想正确调用注入的MsgBean,启动类应该添加扫描目录:

@ComponentScan(basePackages = {"com.cp.springboot.web","com.cp.springboot.domain.bean"})

启动类代码如下:

@SpringBootApplication
@ComponentScan(basePackages = {"com.cp.springboot.web","com.cp.springboot.domain.bean"})
public class WebApplication {

   public static void main(String[] args) {
      SpringApplication.run(WebApplication.class, args);
}
}

 

 

B:举例说明第一种情况:注入bean后,不需要进行其他改动

两个module:

I:springboot-web   

              //启动类WebApplication.java 所在的目录为:com.cp.springboot.web

              //MsgController所在目录为:com.cp.springboot.web.controller

II:springboot-domain

              //MsgBean 所在目录为:com.cp.springboot.web.bean

此时:MsgBean所在的bean目录是:com.cp.springboot.web目录(启动类所在的目录)的子目录,

所以,启动类启动时,也会自动扫描bean目录,就不需要再添加扫描目录了。(这样简单明了,并且以后打包放进spring-web中的时候,出现问题的概率不大。此处纯属个人见解,哈哈,仁者见仁,智者见智。

当然,很多大侠们还有更风骚的处理方式,我也在寻找。

0
0
分享到:
评论

相关推荐

    SpringBoot基础.zip

    - `@Value` 注解:注入配置值到Bean属性中。 - `@ConfigurationProperties`:将配置文件中的复杂结构映射到Java对象。 **六、SpringBoot的测试** - `@SpringBootTest`:用于启动整个Spring Boot应用进行集成测试。 ...

    springboot druid maven多数据源(mysql+SqlServer)

    对于多数据源,我们需要为每个数据源创建对应的配置类,实例化DataSource bean,并将其注入到数据访问层。例如,使用JPA时,可以创建两个实体配置类,分别对应MySQL和SQLServer的数据源。 5. **测试与部署**:完成...

    Spring Boot中Controller间的调用

    另一种方式是通过`ApplicationContext`获取Controller B的实例,确保Spring管理的依赖注入得以保留。下面是一个例子: ```java @RestController @RequestMapping("/flop") @Validated public class FlopController ...

    springboot双数据源(oracle,mysql).rar

    2. **多数据源配置**:在SpringBoot中实现多数据源,主要是通过配置不同的DataSource Bean来实现。每个数据源需要设置JDBC连接信息,包括URL、用户名、密码等,并且可以通过`@Qualifier`注解来区分不同的数据源。 3...

    SpringBoot笔记.md

    面向切面编程是一种编程范式,它通过将那些影响多个类的公共行为封装成可重用模块(称为“切面”),然后将这些切面织入到目标对象中,以此来实现代码的复用和解耦。 - **核心概念** - **切面**(Aspect):封装了...

    springboot 业务插件demo

    我们需要确保新加载的插件bean能够正确地初始化、注入依赖并参与到应用的生命周期中。 6. **事件驱动**:利用Spring的ApplicationEvent和ApplicationListener机制,当插件被加载或卸载时,可以发布和监听相应的事件...

    详解Spring基于Annotation的依赖注入实现

    它提供了全面的基础设施支持,包括但不限于依赖注入、面向切面编程(AOP)、数据访问/集成、事务管理、Web模块、测试等等。Spring的核心特性之一就是依赖注入,它通过在运行时自动配置对象及其依赖关系,极大地简化...

    基于springboot的后台管理系统

    - 自动配置:SpringBoot会根据项目中的依赖自动配置相应的Bean,减少手动编写配置文件的工作。 - 起步依赖:通过添加特定的Maven或Gradle依赖,即可引入所需的功能模块,如Spring Data JPA、Spring Security等。 ...

    以SpringBoot 为中心,模块化开发系统,用户可以随意删减除权限框架外 任意的系统模块.zip

    SpringBoot采用 JavaConfig的方式对Spring进行配置,并且提供了大量的注解,极大的提高了工作效率,比如@Configuration和@bean注解结合,基于@Configuration完成类扫描,基于@bean注解把返回值注入IOC容器。...

    SpringBoot学习书籍

    至于Spring框架,它是Java企业级开发的事实标准,提供了依赖注入、AOP(面向切面编程)、数据访问、Web开发等多种功能。SpringBoot是基于Spring框架构建的,但通过自动化配置和起步依赖,使得使用Spring变得更加简单...

    项目基于springboot3.0研发,提供一系列模块,业务可引用对应模块快速开发.zip

    SpringBoot采用 JavaConfig的方式对Spring进行配置,并且提供了大量的注解,极大的提高了工作效率,比如@Configuration和@bean注解结合,基于@Configuration完成类扫描,基于@bean注解把返回值注入IOC容器。...

    springboot+mybat(多数据源) 通过aop实现分库的操作 ,通过传入的动态表明实现分表查询

    3. 在`@Around`通知的`ProceedingJoinPoint`中,使用Spring的`@Resource`注入所有数据源的`DataSource` Bean,然后根据解析的结果,切换到对应的数据源。 4. 执行原方法(`joinPoint.proceed()`),此时MyBatis会...

    springboot-mybatis-demo

    MyBatis-Spring是它们的整合模块,负责处理事务管理和Bean的注入,使得在Spring环境下使用MyBatis变得简单。 【MySQL】MySQL提供了强大的SQL支持,适合各种规模的项目。在Spring Boot中,通过JDBC或者JPA来与MySQL...

    SpringBoot_113实用知识库分享

    可以了解到 SpringBoot 框架的各个方面,包括整合 Mybatis-Plus、全局异常处理、RESTful API 接口统一 JSON 格式返回、参数校验、Swagger Api 自动生成文档、AOP 编程、默认 json 解析器、@ModelAttribute 用法、多...

    在eclipse中不使用maven创建springboot工程所需jar包

    3. **spring-beans-4.3.5.RELEASE.jar**:Spring框架的核心模块,包含bean的定义、配置、生命周期管理和依赖注入等功能。它是Spring应用程序的基础。 4. **jcl-over-slf4j-1.7.21.jar**:Jakarta Commons Logging ...

    SpringBoot无数据库模拟项目

    同时,Spring的IoC(控制反转)容器将管理我们的bean生命周期,使得依赖注入变得简单。 至于"后端",这表明我们关注的是服务器端逻辑。在无数据库的项目中,后端可能需要处理API请求,例如通过RESTful API提供服务...

    Spring框架、SpringMVC框架、Maven高级(缺)、SpringBoot框架、MyBatis-Plus框架

    1.2 Spring 系统架构主要包括四个主要模块:Core Container(核心容器)、Data Access/Integration(数据访问/集成)、Web(Web)、AOP(面向切面编程)。Core Container 包括 Beans 和 Core 模块,提供 IoC 和 DI ...

    springboot-config01配置

    这样,SpringBoot会自动将配置文件中的值注入到Bean的字段中。 2. `@Value`: 这个注解允许你直接在字段或者方法上注入配置属性的值。相比于`@ConfigurationProperties`,`@Value`更适合于简单的属性注入,如单一...

    SpringBoot入门基础.ppt

    5. `@Autowired`:自动装配bean,根据类型注入依赖。 三、SpringBoot应用讲解 1. 快速起步:SpringBoot可以通过命令行或IDE插件快速创建项目,通常包含一个主类和一个简单的HelloWorld控制器。内置Tomcat服务器使得...

Global site tag (gtag.js) - Google Analytics