主要的话说在前面:在启动日志中没有看到Controller对应的URL被映射,那么请检查你的Controller是否被Spring管理了。此次踩坑就是忘了SpringBoot在没配置@ComponentScan的情况下,默认只扫描和主类处于同包下的Class。

一个很简单的Spring Boot的Hello World,主要是根据请求返回一个字符串。如下是项目结构:

  主类Application.java:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

  Controller类HelloController:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@RequestMapping(value="/hello", method = RequestMethod.GET)public String hello() {return "Hello, Spring Boot";}
}

  配置文件application.properties:

server.port=8082
server.servlet.context-path=/springboot  

  启动日志中没有看到请求"/hello"被映射:

因为Application和HelloController没有在同一个包下,且在Application中没有加上@ComponentScan指定扫描路径,所以HelloController并没有被纳入Spring管理,那么在启动日志中肯定就见不到HelloController的URL的Mapping。

  解决办法:

  1. 将Application和HelloController放到同一个包下

  2.在Application商加上@ComponentScan,指定需要扫描的路径。这里我们将采用这种方法。

  加上@ComponentScan的Application:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;@SpringBootApplication
@ComponentScan("com.andywooh.springboot")
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

  启动日志终于看到"/hello":

转载于:https://www.cnblogs.com/pedlar/p/9787060.html

SprintBoot的@ComponentScan“踩坑”相关推荐

  1. 【Java笔记+踩坑】SpringBoot——基础

      导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 ...

  2. 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)

    目录[阅读时间:约5分钟] 一.概述 1.Json的作用 2.Go官方 encoding/json 包 3. golang json的主要操作 二.Json Marshal:将数据编码成json字符串 ...

  3. java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

    好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...

  4. python导入类有红线_python踩坑系列之导入包时下划红线及报错“No module named”问题...

    python踩坑系列之导入包时下划红线及报错"No module named"问题 使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下 ...

  5. mysql运维工资_MySQL运维踩坑

    image ZERO 背景 本文主要是介绍在MySQL使用运维过程中所遇到的一些坑爹的地方,予自己以做记录! 前言 因操作系统重装之后,安装了mysql5.7,而由此带来了一系列的问题,现将解决这些m ...

  6. 微信跳一跳高分辅助踩坑

    旧博文,搬到 csdn 原文:http://rebootcat.com/2018/01/08/wechat_jump_hack/ 最近挺火的微信跳一跳 最近新版微信的『跳一跳』小程序着实火了一把,也把 ...

  7. 【踩坑记录】记一次MySQL主从复制延迟的坑

    最近开发中遇到的一个MySQL主从延迟的坑,记录并总结,避免再次犯同样的错误. 情景 一个活动信息需要审批,审批之后才能生效.因为之后活动要编辑,编辑后也可能触发审批,审批中展示的是编辑前的活动内容, ...

  8. 分布式深度学习最佳入门(踩坑)指南

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨Lyon@知乎(已授权) 来源丨https://zhuanla ...

  9. python array赋值_从踩坑学Python内部原理(5):执行时机的差异

    (给Python开发者加星标,提升Python技能) 英文:Satwik Kansal,翻译:暮晨 Python开发者整理自 GitHub [导读]:Python 是一个设计优美的解释型高级语言,它提 ...

最新文章

  1. 基因 ID 匹配利器
  2. 设计一个魔方(六面)的程序 【微软面试100题 第四十四题】
  3. matconvnet中使用fastrcnn遇到的问题
  4. A problem occurred starting process 'command 'G:\Android\sdk\ndk-bundle\toolchains\mips64el-linux-an
  5. 开源 ERP 软件 Odoo 提速指南
  6. alter table锁表,MySQL出现Waiting for table metadata lock的场景浅析及解决方案
  7. 腾讯云服务器安装AMH控制面板
  8. 浅谈Spring中Bean的生命周期
  9. SwiftyJSON的使用
  10. 我的世界pc要安装java_我的世界安装教程 PC版新手安装攻略
  11. 安装可视化linux界面
  12. 计算机科学导论:第六章 计算机网络和因特网
  13. 集合易支付源码完美版
  14. 一种新型的EC编码,LRC码,基于RS码的改进,特点介于RS和副本之间。
  15. hdwiki 软件包结构
  16. ueditor的初始化使用
  17. DMIS 5.3 编程基本要义
  18. 服务间歇性停顿问题优化|得物技术
  19. 【状语从句练习题】because / because of / although / in spite of
  20. 设计用于汽车和车身SPC58NH92C3RMI0X\SPC560B50L1B4E0X微控制器

热门文章

  1. win7系统计算机分级怎么弄,win7系统分级功能是什么?win7怎么关闭系统分级功能...
  2. 复盘国内互联网公司电商之路
  3. STM32F4---PWM输出
  4. 手机特效html,支持移动手机的HTML5 Canvas刮刮卡特效
  5. 红楼梦:学习赠与的智慧
  6. 计算机控制系统为什么会受到干扰,单片机控制系统受到干扰的主要原因和现象...
  7. 游戏开发第一阶段笔记(3):C语言 指针与数组
  8. 读书推荐:《20个月赚130亿》
  9. ignore文件的配置
  10. 内存RAM和ROM之间的区别