2019-01-09

                                                                                 Spring-Boot知识点

一:创建helloWorld

1:导入依赖

2:@SpringBootApplication  :(必须要有main方法) 说明这是一个SpringBoot应用

3:默认的约定:
    所有的组件都必须在@SpringBootApplication所在包或者下面的子包,才能被自动扫描到

4:helloWorld简单原理----------pom.xml:

                ----4.1:spring-boot-starter-parent:父工程:依赖管理,几乎将我们开发用到的所有依赖的版本都声明好了,又称版本仲裁中心

                ----4.2:spring-boot-starter-web:spring-boot-starter-xxx:xxx场景启动器作用:引入这个场景的所有依赖(需要要什么场景启动器,就去官网搜索下载,自己找找官网)

官方网址:
https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/#boot-documentation-getting-help

                ------4.3:springBoot已经适配了所有的场景,我们只需要引用自己想用的场景即可,剩下的都是自动配置的

                ----4.4:只需要写controller和service并且有嵌入式的Tomcat

                ---4.5:Java -jar jar包名

5:简化部署

                -----1:引入springboot插件

                ------2:将应用使用【package】命令打包

                ------3:使用java -jar 命令运行

6:可以直接创建spring-strater-boot

7:spring -boot的Tomcat是嵌入式的(打包在jar包里的),不支持jsp页面,以后用的时候再说

------------------------------------------------------------------------------------------

spring-boot项目解析:

src/main/resources:

                ---static:静态资源

                 ---templates:模板(放模板页面)【默认不支持jsp】,模板引擎来完成页面功能

                ----application.properties:主配置文件(配置文件的名字不能改)
                                        -------如果想改配置去官网查看

官网:
https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/#common-application-propertie

 2)怎么知道改哪些配置(官网)

                3):如何知道spring-boot的一些一些默认规则和怎么改?(自动配置原理)

第一种配置文件:

application.properties

第二种配置文件:

springboot-yml配置文件:

server:

  port: 8081(key 与value 中间一定要有空格)

spring:

  banner:

    image:

      location: classpath:static

Spring-Boot所有的东西都自动配置好了:

*  1)、spring-boot-autoconfigure-2.0.7.RELEASE.jar(自动配置包)

*  2)、好多的场景全部自动配置好

*  自动配置原理:

*  1)、主程序类标注了@SpringBootApplication注解相当于标注了@EnableAutoConfiguration

*  2)、@EnableAutoConfiguration 开启SpringBoot的自动配置功能

*  就会自动的将所有的自动配置类导进来

*  如:HttpEncodingAutoConfiguration(http编码的自动配置)

*  1)、@ConditionalOnXX根据当前系统环境判断我这个类的所有配置是否需要生效

*  2)、会发现这些配置类中使用@Bean给容器中放了好多组件,这些组件就生效;

*  3)、这些组件会从一个类中(配置文件属性值的封装类)获取到它应该使用的值是什么。比如HttpEncodingProperties获取charset

*  4)、这写配置文件值的封装类都是和配置文件一一绑定

*  @ConfigurationProperties(prefix = "spring.http.encoding")

*  HttpEncodingProperties

============================================================================

总结:

自动配置类会在容器中放组件生效,组件的值又跟配置文件匹配好。

使用心得:

*  1)、SpringBoot帮我们配好了所有的场景

*  2)、SpringBoot中会有很多的 xxxxAutoConfigurarion(帮我们给容器中自动配好组件)

*  3)、xxxxAutoConfigurarion给容器中配组件的时候,组件默认的属性一般都是从 xxxProperties中获取这些属性的值

*  4)、xxxProperties 是和配置文件绑定的(属性一一对应)

*  5)、我们改掉这些默认配置即可;

*  6)、如果他配的组件我们不用;

*  @Bean

*  @ConditionalOnMissingBean:容器中没有这个组件对象

*  public InternalResourceViewResolver defaultViewResolver()

*  SpringBoot的一个最大策略:你自己给容器中加入了同类型的组件就用你的,没加就用默认我配置,默认配置的组件都可以改掉属性值;

*  7)、我们可以自己往SpringBoot中放任何组件,只要放在容器中就能起作用

你可能感兴趣的:(2019-01-09)