zoukankan      html  css  js  c++  java
  • 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配置文件。

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

  • 相关阅读:
    Machine Learning Methods: Decision trees and forests
    The mean shift clustering algorithm
    Google Protocol Buffer 的使用和原理
    VS2013配置Caffe卷积神经网络工具(64位Windows 7)——准备依赖库
    测天之梯——2010年爱因斯坦讲座公众数学演讲《宇宙距离之梯》
    概率论复习 – 基础概率分布
    Conjugate prior relationships
    PRML Chapter 2. Probability Distributions
    PRML Chapter 1. Introduction
    POJ 2115 C Looooops(扩展欧几里得应用)
  • 原文地址:https://www.cnblogs.com/asenyang/p/14171992.html
Copyright © 2011-2022 走看看