SpringBoot扫描不到Controller的解决方案

SpringBoot小白创建项目,扫描不到Controller一系列问题

1.

2.

3.

4.

5.

6.还有一种办法是在启动服务类的入门,添加@ComponentScan(basePackages={“xxx.xxx.xx”,“xxx.xxx.xx”})里面的是包的全限定名,可以为多个

SpringBoot 自定义controller无法扫描到

SpringBoot 自定义controller路由找不到,原因是启动类和自定义的Controller包不在同一级目录下。

官方建议application.java放的位置: 其余Bean与application.java放在同一个包路径下,但是不建议这么做。

解决的办法:

1、把自建的controller类放到启动类同一级目录下(不建议这样做)。

2、把启动类@RestController @EnableAutoConfiguration注解改成@SpringBootApplication。

3、启动类@RestController @EnableAutoConfiguration注解再加上@ComponentScan注解。

使用springboot扫描的两种注解配置方式:

1、第一种

@Controller
@EnableAutoConfiguration
@ComponentScan

2、第二种

@SpringBootApplication
@ComponentScan

总结:

@SpringBootApplication注解等价于以默认属性使用@Configuration,@EnableAutoConfiguration和@ComponentScan,但是在实际运用时好像其他包中的Bean没有扫描发现,再次使用@ComponentScan指定包名称后发现了其他Bean,后续若有其他方法,会再次修改声明。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot http请求注解@RestController原理解析

    这篇文章主要介绍了SpringBoot http请求注解@RestController原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 @RestController @RestController = @Controller + @ResponseBody组成,等号右边两位同志简单介绍两句,就明白我们@RestController的意义了: @Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目

  • 详解SpringBoot中Controller接收对象列表实现

    如果Spring Boot中对应的Controller要接收一个对象,该对象中又存放了一个List列表,那么页面该如何传递相关应的参数信息呢. 本篇文章给大家一个简单的示例,提供一种实现方式. 实体类 首先看实体类的结构(注意使用了Lombok): @Data public class Rules { private List<Rule> rules; } 对应Rule实体类代码如下: @Data public class Rule { /** * 类名 */ private String c

  • springboot用controller跳转html页面的实现

    在学习SpringBoot的过程中遇到一个问题,因为SpringBoot是集成了tomcat的,所以项目是打成jar包,通过SpringMVC注解的方式去运行的,所以静态页面就放在maven工程的resources目录下的templates目录下所以怎么去跳转是个问题,现在就是解决这个问题 首先看项目结构 pom.xml文件依赖 <!-- 1.创建一个Maven工程,选择jar类型项目2.引入SpringBootMaven依赖. --> <!-- Maven parent 目的,聚合工程

  • SpringBoot对Controller进行单元测试的实现代码 附乱码解决方案

    Controller代码 package com.keafmd.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; /** * Keafmd * * @ClassName: Hel

  • 如何实现springboot中controller之间的相互调用

    springboot controller之间相互调用 SpringBoot之间内部调用 @Autowired private RestTemplate restTemplate ;//自动装配restTemplate -------------------返回json字符串类型---------------------------------- @RequestMapping("/selectHospatal") @ResponseBody public String selectH

  • SpringBoot @ControllerAdvice 拦截异常并统一处理

    在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler.@InitBinder.@ModelAttribute,并应用到所有@RequestMapping中.参考:@ControllerAdvice 文档 一.介绍 创建 MyControllerAdvice,并添加 @ControllerAdvice注解. package com.sam.demo.controller; import org.springframework.ui

  • SpringBoot扫描不到Controller的解决方案

    SpringBoot小白创建项目,扫描不到Controller一系列问题 1. 2. 3. 4. 5. 6.还有一种办法是在启动服务类的入门,添加@ComponentScan(basePackages={"xxx.xxx.xx","xxx.xxx.xx"})里面的是包的全限定名,可以为多个 SpringBoot 自定义controller无法扫描到 SpringBoot 自定义controller路由找不到,原因是启动类和自定义的Controller包不在同一级目录

  • springboot扫描自定义的servlet和filter代码详解

    这几天使用spring boot编写公司一个应用,在编写了一个filter,用于指定编码的filter,如下: /** * Created by xiaxuan on 16/11/1. */ @WebFilter(urlPatterns = "/*",filterName="CharacterEncodeFilter", initParams={ @WebInitParam(name="encoding",value="UTF-8&qu

  • SpringBoot集成MybatisPlus报错的解决方案

    这篇文章主要介绍了SpringBoot集成MybatisPlus报错的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 问题 启动的时候总是报如下错误: java.lang.annotation.AnnotationFormatError: Invalid default: public abstract java.lang.Class 解决方案 需要一个mybatis-spring-boot-starter的包,在pom文件加上之后,完

  • Springboot mybatis plus druid多数据源解决方案 dynamic-datasource的使用详解

    依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>p6spy</groupId>

  • springboot参数传中文乱码的解决方案

    前言 本文案例来自业务部门的一个业务场景.他们的业务场景是他们部门研发了一个微服务上下文透传组件,其透传原理也挺简单的,就是通过springboot拦截器把请求参数塞进threadlocal,然后下游通过threadlocal取到值,服务之间进行feign调用时,再把threadlocal的参数塞到header头里面.这个组件一直用得好好的,突然有一天因为传的参数值是中文,导致乱码.他们通过尝试下面的各种方案,都无法解决.最后就让我们部门排查处理. 业务部门的实现思路 他们一开始的思路方向是参数

  • springboot扫描引入jar包的service等组件方式

    在pom中引入对应的依赖,如果引入的三方jar包跟该项目Application所在包目录包含被依赖jar包目录, 即下面的情况: 像上面这种包组织的话,是不需要额外加入任何配置的(前提是依赖jar包相应组件一定要有@Component等注解修饰),因为springboot项目默认扫描目录就是Application所在目录及子目录,但是这种情况仅限于单个项目安排,项目大了就不一定满足了, 这时可以通过下面的方式引入扫描路径: 或者通过@ComponentScan注解也可以,需要注意的是不要忘了扫描

  • 解决SpringBoot扫描不到公共类的实体问题

    SpringBoot扫描不到公共类的实体 我的项目结构是 parent ademo bdemo parent是一个大项目,项目里面有web.service和entity三个子项目 ademo 依赖于bdemo里面的实体. aProject项目的包结构是com.test.ademo bProject项目的包结构是com.test.bdemo 以下的问题是我没有忘记标注@Component.@Service等容器注解 在ademo项目里面使用@Autowired的时候有异常说是可能会Autowire

  • SpringBoot事务不回滚的解决方案

    目录 1.非 public 方法解决方案 2.try/catch 解决方案 解决方案1:将异常重新抛出 解决方案2:使用代码手动回滚事务 3.调用内部 @Transactional 方法解决方案 4.检查异常的事务解决方案 5.数据库不支持事务的解决方案 总结 在 Spring Boot 中,造成事务不自动回滚的场景有很多,比如以下这些: 非 public 修饰的方法中的事务不自动回滚: 当 @Transactional 遇上 try/catch 事务不自动回滚: 调用类内部的 @Transac

  • 详解springboot+mybatis多数据源最简解决方案

    说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务.我们项目是后者的模式,网上找了很多,大都是根据jpa来做多数据源解决方案,要不就是老的spring多数据源解决方案,还有的是利用aop动态切换,感觉有点小复杂,其实我只是想找一个简单的多数据支持而已,折腾了两个小时整理出来,供大家参考. 废话不多说直接上代码吧 配置文件 pom包就不贴了比较简单该依赖的就依赖,主要是数据库这边的配置: mybatis.config-locations=classpath:

  • spring-mvc/springboot使用MockMvc对controller进行测试

    网上基本都是参考官方的使用方式,使用了import static,个人感觉这种方式特别不好,代码提示性不友好.所以在此进行说明,也方便自己以后使用. 1. 引入spring-test相关jar包,springboot只需引入spring-boot-starter-test即可 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tes

随机推荐