springboot 自动配置特性,@configuration import conditional 自动配置 与springboot应用技巧

                                         自动配置

  Servlet

  Springmvc

   自动配好web的常见场景

  默认包的结构

主程序及以下都会被扫描(可修改componetscan指定扫描路径或springbootapplication(scanBasePackages=””))

            默认值 如8080端口号

默认配置最终都是映射到multipartproperties

配置文件的值会绑定每个类上,类会在容器中创建对象

按需加载所有的自动配置

   非常多的starter

   引入了那些场景,这个场景的自动配置会开启

   Springboot所有的自动配置功能都在springbatchautoconfiguration

容器功能

Configuration配置类

Bean给容器添加组件,方法名为id 返回类型为组件类型,返回值是组件在容器的实例

Beans.xml替代

Component

只有在容器中,才会拥有springboot的功能可以绑定

Enableconfigurationproperties(car.class)

开启car的配置绑定功能

把这个car这个组件自动注册到容器中

Springboot自动配置原理

  引导自动加载自动配置类

         Springbootconfiguration @configuration 代表当前是一个配置类

         @componentscan 指定扫描,spring注解

         Enableautoconfiguration  @autoconfigurationpackage  给容器中导入一个组件

     Public @interface autoconfiguration package()利用register给容器导入一系列组件

     127所用自动配置启动时,默认全部加载,但按需要配置,

   定制化修改默认配置,

Springboot先加载所有的自动配置类

每个自动,配置类按照条件进行生效,默认都会绑定配置文件值 xxxxxproperties里面,xxxxxproperties和配置文件进行绑定

生效的配置类就会给容器中装配很多组件

只要容器中有这些组件,相当于这些功能就有了

以用户自己的配置为优先,定制化配置,@bean覆盖默认组件,修改获取的配置文件(包含组件的)xxxxautoconfiguration  ->组件 –>   xxxxxproperties里面拿值 –> application properties

实践步骤

  引入依赖

  检查是否需要修改配置项或自定义加入或替换组件,参考文档修改springboot官方(配置中加入debug=true (negative不生效、positive生效))@bean @component

@XXXXXcustomizer

开发技巧

1 lombok   引入依赖,安装插件(lombok)@data注解(getting and setting) @allargsconstruction @noargsconstruction @Tostring(清晰)@Equalsandhashcode 哈希

@slf4j 日志记录器

Ctrl F9 重新启动,重新编译

Springinitializr(springboot)

Springboot2核心技术-核心功能

  1.  <build>
  2.   <plugins>
  3.     <plugin>
  4.       <groupId>org.springframework.boot</groupId>
  5.       <artifactId>spring-boot-maven-plugin</artifactId>
  6.       <configuration>
  7.         <excludes>
  8.           <exclude>
  9.             <groupId>org.springframework.boot</groupId>
  10.             <artifactId>spring-boot-configurationprocessor</artifactId>
  11.           </exclude>
  12.         </excludes>
  13.       </configuration>
  14.     </plugin>
  15.   </plugins>
  16. </build>
提示防止一起打包

配置文件

 1properties

 2 yaml:   k: v 大小写 kv之间有空格 相同层级对其 #表示注释,“”与“”表示字符串内容,会被转义或不转义

           数据类型

web 开发

springmvc自动配置概览:内容协商视图解析器和beanname视图解析器,静态资源(webjars),自动注册converter,静态index.html页支持 定义favicon

简单功能分析

数据响应与内容协商

数据解析与模板引擎

拦截器

跨域

异常处理

原生servlet组件

嵌入式web容器

定制化原理

数据访问

单元测试

指标监控

原理解析

  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值