springboot入门---入口类注解@SpringBootApplication解析

背景:今天新创建了一个springboot项目,之后怎么都访问不了  一直报404  

错误现象及描述:


代码展示:

测试一:起初直接在启动类里边写了测试方法进行测试

@SpringBootApplication
public class TestSpringBootApplication {
	@RequestMapping("/")
	public String index(){
		return "hello";
	}
	public static void main(String[] args) {
		SpringApplication.run(TestSpringBootApplication.class, args);
	}
}
结果访问http://localhost:8080/   报404

测试一解决方案:在入口类上边加上@RestController注解即可

@SpringBootApplication
@RestController
public class TestSpringBootApplication {
	@RequestMapping("/")
	public String index(){
		return "hello";
	}
	public static void main(String[] args) {
		SpringApplication.run(TestSpringBootApplication.class, args);
	}
}
测试二:将测试方法写入另外的包和类中,如下所示,新建包和类

@RestController
public class sss {

	@RequestMapping("/sss")
	public String index(){
		return "hello";
	}

}

包结构如图所示:



访问:http://localhost:8080/sss    报404


测试二解决方法:修改入口类的注解为

@SpringBootApplication(scanBasePackages="com.example")
public class TestSpringBootApplication {
	
	public static void main(String[] args) {
		SpringApplication.run(TestSpringBootApplication.class, args);
	}
}
特别注意:因为包扫描需要自定义,否则扫描到的好像只是入口类所在的包,或者入口类所在包的下一级,比如,入口类的包名字是com.example.demo,那么com.example.demo.XXX.xxx都可以被扫描到,但是com.example.xxx就不可以被扫描到。

测试三:因为@SpringBootApplication注解是一个组合注解,底层是有多个注解组成的,其中我们也可以把@SpringBootApplication换成另外三个注解也可以完成项目启动。

//包扫描
@ComponentScan("com.example")
//组件扫描
@Configuration
//配置控制
@EnableAutoConfiguration
public class TestSpringBootApplication {
	
	public static void main(String[] args) {
		SpringApplication.run(TestSpringBootApplication.class, args);
	}
	
}
其中注意的是:包扫描,也是需要自定义的,否则也是只扫描到入口类所在的包以及入口类所在包的下一级。


总之,配置包扫描是必不可少的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值