spring Boot项目遇到的一个小问题学习到repeatable annotations
2017-11-02 14:40
639 查看
维护项目很长时间,导致很久没敲代码了,昨天创建一个小项目,被一个小问题坑了。
说起来也是第一次用spring boot,照着官网例子,分分钟就搞定了demo。然后往里面添东西,写了个测试接口,运行项目,访问接口。竟然不能访问!仔细看了下启动日志,发现@controller的类没有被加载到spring。仔细看,没发现哪里写错了。还一直以为编译问题,所以clean了再编译,再运行,然后就下班了,有事情就走了。今天上午仔细看了下项目,把controller的类放到Application的同级目录,发现可以加载到了。突然意识到问题在于包名上。
spring boot的启动类Application默认扫描的就是在Application类所在包以下的所有类,比如Application所在包为com.xxx,那么扫描的包就是com.xxx.*的所有包下面的类。
当然,我肯定不会愿意妥协,干嘛包名还得这么固定,肯定有方式做到和常规spring项目一样,根据表达式来管理扫描的包。也懒得上网搜,直接使用IDE的自带提示功能找,找到@ComponentScan注解,同时看到@ComponentScans注解,那么既然有带s的,是不是这个支持的比不带s的范围广呢。仔细看了下注解的源码。发现跟我想的不一样,
没看明白,然后百度了一下,原来是java8的特性,注解可以重复使用。
官方文档地址如下:
https://docs.oracle.com/javase/tutorial/java/annotations/repeating.html
于是可以有如下用法
@ComponentScan("com.xxx1")
@ComponentScan("abc.xxx")
public xxx xxxx(){ xxxxx}
说起来也是第一次用spring boot,照着官网例子,分分钟就搞定了demo。然后往里面添东西,写了个测试接口,运行项目,访问接口。竟然不能访问!仔细看了下启动日志,发现@controller的类没有被加载到spring。仔细看,没发现哪里写错了。还一直以为编译问题,所以clean了再编译,再运行,然后就下班了,有事情就走了。今天上午仔细看了下项目,把controller的类放到Application的同级目录,发现可以加载到了。突然意识到问题在于包名上。
spring boot的启动类Application默认扫描的就是在Application类所在包以下的所有类,比如Application所在包为com.xxx,那么扫描的包就是com.xxx.*的所有包下面的类。
当然,我肯定不会愿意妥协,干嘛包名还得这么固定,肯定有方式做到和常规spring项目一样,根据表达式来管理扫描的包。也懒得上网搜,直接使用IDE的自带提示功能找,找到@ComponentScan注解,同时看到@ComponentScans注解,那么既然有带s的,是不是这个支持的比不带s的范围广呢。仔细看了下注解的源码。发现跟我想的不一样,
没看明白,然后百度了一下,原来是java8的特性,注解可以重复使用。
官方文档地址如下:
https://docs.oracle.com/javase/tutorial/java/annotations/repeating.html
于是可以有如下用法
@ComponentScan("com.xxx1")
@ComponentScan("abc.xxx")
public xxx xxxx(){ xxxxx}
相关文章推荐
- IDEA上面搭建一个SpringBoot的web-mvc项目遇到的问题
- 新建一个maven spring boot项目中遇到的问题
- springmvc+mybatis+maven项目集成的时候遇到一个问题,项目搭起来以后,http请求怎么都进不到controller中,页面直接返回404错误,控制台没有报任何错误,请大神帮我看看
- springmvc+mybatis+maven项目集成的时候遇到一个问题,项目搭起来以后,http请求怎么都进不到controller中,页面直接返回404错误,控制台没有报任何错误,请大神帮我看看
- spring cloud学习第一步:创建一个可运行的spring boot项目
- 在本地tomcat中调试Spring boot项目遇到的一些问题
- (二十三)IDEA 构建一个springboot工程,以及可能遇到的问题
- springboot项目打成war包部署到tomcat遇到的一些问题
- springboot项目配置多环境打包部署遇到的问题总结
- C#中ArrayList 与 string、string[]数组 的转换 (转学习:今天做项目时遇到一个arrylist转换问题,做记录)
- (3)Spring-boot学习 做一个简单的带访问数据库的web项目
- intellij IDEA 2017软件学习(问题纠错之spring boot项目404错误)
- Spring Boot学习--打包一个可执行的jar项目
- springboot学习中遇到的问题---初学时404错误
- spring boot 项目增加flyway的使用遇到问题解决
- spring boot + maven + mybatis 学习过程遇到问题总结(1)
- 创建spring boot项目启动报错遇到的问题
- spring-boot创建项目遇到配置问题
- 本人小白一枚,刚学习SpringMVC+MyBatis,遇到了一个问题一直报错 **No mapping found for HTTP request with URI**
- 用Spring Boot 构建项目中遇到问题及解决方法