springboot的使用

1.@SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用

@**SpringBootApplication**:    Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;

  @SpringBootConfiguration 标注在某个类上,表示这是一个Spring Boot的配置类;

  @EnableAutoConfiguration 开启自动配置功能

  以前我们需要配置的东西,Spring Boot帮我们自动配置;@**EnableAutoConfiguration**告诉SpringBoot开启自动配置功能;这样自动配置才能生效;

    @AutoConfigurationPackage  自动配置包 

      该注解的主要功能就是将@SpringBootAplication标注的类及下面所有子包里面的所有组件扫描到Spring容器

    @Import(EnableAutoConfigurationImportSelector.class)

       给容器中导入组件

       EnableAutoConfigurationImportSelector:导入哪些组件的选择器

       将所有需要导入的组件以全类名的方式返回:这些组件就会被添加到容器中;

      会给需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;

                     会给容器中导入非常多的自动配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所有组件,并配置好这些组件;

      SpringBoot在启动的时候从类路径下的MEAT-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作;以前我们需要张加配置的东西,自动

      配置类都帮我们.

        

2.配置文件加载位置

SrpingBoot使用一个全局的配置文件,配置文件名是固定的;

application.properties

application.yml

@PropertySource{“classpath:”}:指定外部的配置文件

@ImportResource: 导入Spring的配置文件,让配置文件里面的内容生效(放在spring的朱配置类上面)

SpringBoot推荐给容器添加组件的方式:推荐使用全注解的方式

profile

1.多profile环境

我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml

默认使用application.properties的配置;

激活指定profile

在配置文件中指定 spring.profiles.active=dev

springboot开发之静态资源映射

通过/webjars/**请求静态资源

  对于所有/webjars/**的请求,如果没有请求映射的处理方法(Controller)则当做静态资源请求处理,都去"classpath:/META-INF/resources/webjars/"中找资源:

即对于所有的请求,如果没有映射到处理方法,会当做静态资源请求来处理,回去下面的这几个路径下去查找静态资源:

静态资源文件夹:

"classpath:/META-INF/resources/":

"classpath:/resources/":

"classpath:/static/":

"classpath:/public/":

"/":

springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件(properties优先级高于yml

–file:./config/    当前项目的config目录

–file:./             当前项目下 

–classpath:/config/  类路径下的config目录

–classpath:/ 类路径下

优先级由高到底,高优先级的配置会覆盖低优先级的配置;

SpringBoot会从这四个位置全部加载主配置文件;**互补配置**;

3.自动配置原理

1)、SpringBoot启动的时候加载主配置类,开启了自动配置功能 ==@SpringBootApplication ==

@EnableAutoConfiguration 作用

  利用EnableAutoConfigurationImportSelector给容器中导入一些组件

    查看selectImports()方法的内容

    List<String> configurations = getCandidateConfigurations(annotationMetadata, attributes);获取候选的配置      

    SpringFactoriesLoader.loadFactoryNames()
    扫描所有jar包类路径下 META-INF/spring.factories
    把扫描到的这些文件的内容包装成properties对象
    从properties中获取到EnableAutoConfiguration.class类(类名)对应的值,然后把他们添加在容器中

springboot的精髓

  SpringBoot启动会加载大量的自动配置类

  我们看我们需要的功能有没有SpringBoot默认写好的自动配置类

  我们再来看这个自动配置类中到底配置了哪些组件

  给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值

4.springboot的web开发

Thymeleaf的使用

  默认的DEFAULT_PREFIX = "CLASSPATH:/templates"; 前缀

   默认的DEFAULT_SUFFIX = ".html";  后缀

Thymeleaf的语法规则

  1.th:任意html属性;来替换原生属性的值 

  2.表达式

5.如何修改SpringBoot的默认配置

  1.SpringBoot在自动配置很多组件的时候,先看容器中有没有用户自己配置的(@Bean,@Component)如果有就用用户配置的,如果没有,才自动配置;如果有些组件可以有多个(ViewResolver)将用户配置的和自己默认的组合起来

拓展SpringMVC

编写一个配置类(@Configuration),是WebMvcConfigurer类型;不能标注@EnableWebMvc

@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)

只有当我们引入了相关的jar包,springboot才会将相应的对象加载到spring容器中去

原文地址:https://www.cnblogs.com/lzh66/p/13628048.html