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中放任何组件,只要放在容器中就能起作用