Spring Boot学习03--SpringBoot自动配置与项目结构

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配置文件。

本文所讲的内容,整理为思维导图如下:

原文地址:https://www.cnblogs.com/asenyang/p/14171992.html