代码写的没有问题呀,为什么访问死活就是404!
//java项目www.fhadmin.org
@Controller
@RequestMapping("/hello")
public class HelloControllerTest {
@RequestMapping("/index")
@ResponseBody
public String index(){
return "Hello World";
}
}
解决方案
错不在代码,而是controller包的位置
新创建项目成功后,作为项目启动类的Application在pers.peng.demo包下面,然后我写了一个Controller,然后包的路径是pers.peng.controller,然后路径也搭好了,但是浏览器一直报404。最后找到原因是Spring Boot只会扫描启动类当前包和以下的包 。就是说现在我启动类的包是在pers.peng.demo下面,然后他就只会扫描pers.peng.demo或者pers.peng.demo.*下面所以的包,所以我的Controller在pers.peng.controller包下面Spring Boot就没有扫描到。
所以我把demo包删了,把启动类放在了pers.peng下,与包controller同级,如图
这样问题就解决了。
方法二
在启动上方添加@ComponentScan注解,此注解为指定扫描路径,例如:@ComponentScan(basePackages = {“pers.peng.*”}) 多个不同的以逗号分割。
//java项目www.fhadmin.org
@SpringBootApplication
@ComponentScan(basePackages = {"pers.peng.*"}) //指定扫描包路径
public class MyBlogApplication {
public static void main(String[] args) {
SpringApplication.run(MyBlogApplication.class, args);
}
}