SpringBoot学习笔记1

1.什么是SpringBoot

  用一些固定的方式来构建生产级别的spring应用。spring boot推崇约定大于配置的方式便于你能够快速的启动并运行程序。

2.为什么要学spring boot

 java传统项目:复杂的配置,混乱的依赖管理。spring boot简化了基于spring的应用开发,只需要“run”就能创建一个独立的、生产级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置,存放默认配置的包就是启动器),这样我们就可以简单的开始。多数Spring Boot应用只需要很少的Spring配置。

3.Spring Boot 主要目标是:

  • 为所有 Spring 的开发者提供一个非常快速的、广泛接受的入门体验

  • 开箱即用(启动器starter-其实就是SpringBoot提供的一个jar包),但通过自己设置参数(.properties),即可快速摆脱这种方式。

  • 提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标,健康检测、外部化配置等

  • 绝对没有代码生成,也无需 XML 配置。

4.常用注解:

  • @Configuration:声明一个类作为配置类,代替xml文件

  • @Bean:声明在方法上,将方法的返回值加入Bean容器,代替<bean>标签

  • @value:属性注入

  • @PropertySource:指定外部属性文件,

5.@EnableConfigurationProperties vs @Value

  @EnableConfigurationProperties支持Relaxed binding和meta-data support

  Relaxed binding:松散绑定。不严格要求属性文件中的属性名与成员变量名一致。支持驼峰,中划线,下划线等等转换,甚至支持对象引导。比如:user.friend.name:代表的是user对象中的friend属性中的name属性,显然friend也是对象。@value注解就难以完成这样的注入方式。

  meta-data support:元数据支持,帮助IDE生成属性提示(写开源框架会用到)。

6.spring boot 启动类

  • 注解:@SpringBootApplication

    • @SpringBootConfiguration

    • @EnableAutoConfiguration

    • @ComponentScan

  • run方法:SpringApplication.run()

    @SpringBootConfiguration:在这个注解上面,有一个@Configuration注解,这个注解的作用就是声明当前类是一个配置类,然后Spring会自动扫描到添加了@Configuration的类,并且读取其中的配置信息。而@SpringBootConfiguration是来声明当前类是SpringBoot应用的配置类,项目中只能有一个。所以一般我们无需自己添加。

    @EnableAutoConfiguration:开启SpringBoot的自动配置,并且根据你引入的依赖来生效对应的默认配置。

    @ComponentScan:配置组件扫描的指令。提供了类似与<context:component-scan>标签的作用。通过basePackageClasses或者basePackages属性来指定要扫描的包。如果没有指定这些属性,那么将从声明这个注解的类所在的包开始,扫描包及子包。而我们的@SpringBootApplication注解声明的类就是main函数所在的启动类,因此扫描的包是该类所在包及其子包。因此,一般启动类会放在一个比较前的包目录中

原文地址:https://www.cnblogs.com/djdjfj/p/10710012.html