上一篇我们创建了一个完整的springboot项目,这里我先把上篇创建好的项目目录在这里展示一下,有利于下面的讲解
这就是上篇文章创建好的项目结构,这里需要注重提议几点
- 入口类和@SpringbootApplication
- springboot 项目通常都会有一个*Application的入口,入口类中有一个main方法,这个main方法其实就是一个标准的java应用的入口,方法中使用SpringApplication.run(类名.class,args);进行启动。
- 这里需要重点提一下的是@SpringbootApplication 是一个组合注解,主要的注解组成有@EnableAutoConfiguration、@Configuration、@ComponentScan
- @EnableAutoConfiguration:让springboot根据类路径下的jar包依赖进行自动配置
例如,添加了spring-boot-starter-web依赖,会自动添加tomcat和spring mvc 的依赖,那么springboot就会对tomcat和springmvc进行自动配置
Sptingboot会自动扫描@SpringbootApplication所在类的同级包以及下级包里的bean(若为JPA项目还可以扫描到@Entity的实体类)。建议将入口放在groupId+arctifactId的组合包名下 - @Configuration:一般用来初始化配置类使用,通过@Configuration注解标注的类会在项目初始化的时候加载,也可理解为用spring的时候xml里面的《beans》标签
- @ComponentScan告诉Spring 哪个packages 的用注解标识的类 会被spring自动扫描并且装入bean容器。
例如,如果你有个类用@Controller注解标识了,那么,如果不加上@ComponentScan,自动扫描该controller,那么该Controller就不会被spring扫描到,更不会装入spring容器中,因此你配置的这个Controller也没有意义。
上面说明了一下启动类和@SpringbootApplication注解,下面来实现一个简单的hello word吧
1 创建一个controller,类上通过注解@RestController 或者controller注释
/**
* @author : lqf
* @description :
* @date : Create in 11:29 2018/7/19
*/
@RestController
public class HelloWordController {
@RequestMapping("hello")
public String hello(){
return "hello word";
}
}
- @RestController 注解: 是@Controller和@ResponseBody的组合注解
这样一个简单的helloword 就正常实现了。这里需要主要理解的是上面几个注解的含义。