package cn.jason.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@EnableAutoConfiguration
//这里可以替换为@SpringBootApplication,效果一致
public class TestController {
@RequestMapping("/")
@ResponseBody
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(TestController.class, args);
}
}
这个@EnableAutoConfiguration注解是让SpringBoot来猜想判断你想如何配置Spring。如果说你已经添加了spring-boot-start-web这个包的话(这个包中包含了tomcat和Springmvc相关的jar包依赖),那么这个注释就会自动认为你是打算在开发一个web应用程序并添加相应的Spring配置。底层是根据看你这个类上添加了哪些注解,从而进行注入注册的。
Spring建议我们将main方法所在的类放到一个root包下,即将这个main方法所在的类放在最外面,然后这个@EnableAutoConfiguration(开启自动配置)放在main所在的类的上面,那么Spring就会自动解析其下各个添加了注解的类,并且在底层,这些添加了注解的类会自动添加@Entity注解,然后Spring会扫描这些添加了@Entity的类并进行调用。基本的布局结构是:
Com
|–jason
|–springboot (包名结构)
SpringDemo.java(主类) Main所在的class,SpringDemo
|–pojo
User.java
|–service层
UserService.java
|–controller层
UserController.java
@SpringBootApplication注解相当于是添加了三个注解@Configuration,@EnableAutoConfiguration和 @ComponentScan 并具有他们的默认属性值。
@Configuration : 表示Application作为sprig配置文件存在
@EnableAutoConfiguration: 启动spring boot内置的自动配置
@ComponentScan : 扫描bean,路径为Application类所在package以及package下的子路径,这里为 com.jason.springboot,在spring boot中bean都放置在该路径已经子路径下。