SprintBoot的@ComponentScan“踩坑”
主要的话说在前面:在启动日志中没有看到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“踩坑”相关推荐
- 【Java笔记+踩坑】SpringBoot——基础
导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 ...
- 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)
目录[阅读时间:约5分钟] 一.概述 1.Json的作用 2.Go官方 encoding/json 包 3. golang json的主要操作 二.Json Marshal:将数据编码成json字符串 ...
- java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实
好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...
- python导入类有红线_python踩坑系列之导入包时下划红线及报错“No module named”问题...
python踩坑系列之导入包时下划红线及报错"No module named"问题 使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下 ...
- mysql运维工资_MySQL运维踩坑
image ZERO 背景 本文主要是介绍在MySQL使用运维过程中所遇到的一些坑爹的地方,予自己以做记录! 前言 因操作系统重装之后,安装了mysql5.7,而由此带来了一系列的问题,现将解决这些m ...
- 微信跳一跳高分辅助踩坑
旧博文,搬到 csdn 原文:http://rebootcat.com/2018/01/08/wechat_jump_hack/ 最近挺火的微信跳一跳 最近新版微信的『跳一跳』小程序着实火了一把,也把 ...
- 【踩坑记录】记一次MySQL主从复制延迟的坑
最近开发中遇到的一个MySQL主从延迟的坑,记录并总结,避免再次犯同样的错误. 情景 一个活动信息需要审批,审批之后才能生效.因为之后活动要编辑,编辑后也可能触发审批,审批中展示的是编辑前的活动内容, ...
- 分布式深度学习最佳入门(踩坑)指南
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨Lyon@知乎(已授权) 来源丨https://zhuanla ...
- python array赋值_从踩坑学Python内部原理(5):执行时机的差异
(给Python开发者加星标,提升Python技能) 英文:Satwik Kansal,翻译:暮晨 Python开发者整理自 GitHub [导读]:Python 是一个设计优美的解释型高级语言,它提 ...
最新文章
- 基因 ID 匹配利器
- 设计一个魔方(六面)的程序 【微软面试100题 第四十四题】
- matconvnet中使用fastrcnn遇到的问题
- A problem occurred starting process 'command 'G:\Android\sdk\ndk-bundle\toolchains\mips64el-linux-an
- 开源 ERP 软件 Odoo 提速指南
- alter table锁表,MySQL出现Waiting for table metadata lock的场景浅析及解决方案
- 腾讯云服务器安装AMH控制面板
- 浅谈Spring中Bean的生命周期
- SwiftyJSON的使用
- 我的世界pc要安装java_我的世界安装教程 PC版新手安装攻略
- 安装可视化linux界面
- 计算机科学导论:第六章 计算机网络和因特网
- 集合易支付源码完美版
- 一种新型的EC编码,LRC码,基于RS码的改进,特点介于RS和副本之间。
- hdwiki 软件包结构
- ueditor的初始化使用
- DMIS 5.3 编程基本要义
- 服务间歇性停顿问题优化|得物技术
- 【状语从句练习题】because / because of / although / in spite of
- 设计用于汽车和车身SPC58NH92C3RMI0X\SPC560B50L1B4E0X微控制器