1.SpringBoot入口类
SpringBoot的项目入口,是一个标注了@SpringBootApplicaton注解的类,该类中有一个main()方法,此方法是SpringBoot项目的主入口。
1 @SpringBootApplication 2 public class DemoApplication { 3 4 public static <StudentMapper> void main(String[] args){ 5 SpringApplication.run(DemoApplication.class, args); 6 } 7 }
@SpringBootApplication注解,是一个组合注解,它主要包含另外两个注解:
(1)@SpringBootConfiguration:这个注解是SpringBoot的配置类,本质是一个@Configuration。而@Configuration是Spring的基本注解,可以代替XML配置文件。
(2)@EnableAutoConfiguration:这个注解用于开启自动配置功能,它又包含两个注解:
(2.1)@AutoConfigurationPackage:将主配置类所在的包下的所有组件,都放入到Spring容器中管理。它内部使用@Import(Registrar)导入一个组件。
(2.2)@Import({AutoConfigurationImportSelector.class}):导入选择器,查询所有加载的jar包中的META-INF/spring.factories文件,
并加载这些文件中所配置的类。
这些jar包一般名字为xxxx.AutoConfiguration,被称做"自动配置类”。这些类中有一些使用了@ConditionalOnXXXX注解,控制加载条件。
有一些类中也会使用@ConfigurationProperties注解,与配置文件(application.properties/application.yml)关联,
这样用户就可以通过修改配置文件来修改由SpringBoot加载到Spring容器中的各个组件的属性了。
这就是SpringBoot的自动配置原理。
2.SpringBoot的组件类
可以通过四种注解,将一个Java类标记为SpringBoot的组件:
(1)@Controller:提供了@RestController快捷用于标注SpringMVC中的Controller类,这个注解本身包办了SpringMVC中的@ResponseBody注解。
1 @RestController 2 public class HelloController { 3 @RequestMapping("/hello") 4 public String Hello(){ 5 return "hello"; 6 } 7 8 @RequestMapping("/hi") 9 public String Hi(){ 10 return "hi"; 11 } 12 }
而在用于提供HTTP服务的Action方法上,可以有以下几种注解:@GetMapping、@PostMapping。
(2)@Serverce
(3)@Repository
(4)@Component
3.maven插件
使用IDEA建立的SpirngBoot项目集成了Maven插件:
maven的生命周期有:clean、validate、compile、test、package、verity、install、site、deploy。
可以通过双击对应的图标,或者使用命令的方式,(如:mvn clean package)执行maven相关操作。
4.项目结构
SpirngBoot项目本身是一个Maven项目,其目录结构如下:
其中java目录中编写Java代码,而resources目录中用于存放静态资源。
static目录存放:js、css、image等文件。
templates目录存放:模板文件、freemarker文件、thymeleaf文件。
此目录下还可以存放各种配置文件,如:application.properties、application.yml、以及其他的xml配置文件。
本文所讲的内容,整理为思维导图如下: