我写了一个基于Spring Boot的应用程序,但是当我将所有类(使用@restController注释的模型,控制器)放在SpringBoot存在的同一个包中时,它可以工作.
我的问题是为什么这些类必须在同一个包中?
这是Spring Boot App注释:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
} }
这是其他控制器:
@RestController
public class PersonController {
@RequestMapping("/Hello")
public String syaHello(@RequestParam(value = "name", defaultValue = "World") String name) {
return "Hello " + name;
} }
解决方法:
因为这是@SpringBootApplication批注的默认行为.更准确地说,组件扫描会检测包中的所有配置和组件以及带有注释的类的所有子包.如果要将类放在其他包中,则可以在注释中将包作为属性指定为包或类:
@SpringBootApplication(scanBasePackageClasses = {OneClass.class, AnotherClass.class})
然后,Spring将扫描类OneClass和AnotherClass的包和子包.
标签:java,spring,spring-boot 来源: https://codeday.me/bug/20190829/1758448.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。