非常推荐直接看教程,老师讲的真的很好,虽然很多原理部分很糊但是如果用过一段时间再来看原理的解析会非常透彻,力荐:这里是教程
这里是教程的1-20P,内容其实不多,主要是一些基础的注解和怎么用,接下来才是核心内容。冲冲冲
目录
@Component,Controller,Service,Repository,ComponentScan
配置绑定1:@ConfigurationProperties+@Component
配置绑定2:@ConfigurationProperties+@EnableConfigurationProperties
1.什么是SpringBoot
容器>组件>类
可以快速创建出生产级别的Spring应用,是整合Spring技术栈的一站式框架,也是简化Spring技术栈的快速开发脚手架
可以解决分布式的问题(SpringBoot+SpringCloud)
什么是微服务
是一种架构风格,一个应用拆分为一组小型服务,每一个服务运行在自己的进程中,也可以独立的部署和升级。
服务之间使用轻量级的HTTP交互,服务围绕业务功能拆分,可以由全自动部署机制独立部署。
去中心化,服务自治。服务可以使用不同的语言,不同的存储技术。
HelloWorld项目
1.配置maven
2.idea中创建一个maven项目,注意这里需要使用功能maven3.3以上的版本否则无法使用boot2
3.在pom.imi文件中添加父工程
4.接着导入starter-web依赖(如果报错稍等片刻即可,正在下载依赖)
5.编写主程序类
6.编写Controller
7.使用main启动项目
8.修改配置:以后的所有配置都在这个文件里,
9.简化部署
把项目打成ajr包,即可直接使用
Boot特点
[1]依赖管理:开始我们导入了父项目,通过这个父项目,我们在配置其他内容的时候可以不用写版本号,自动管理了版本。也称为自动版本仲裁。如果我们引入了非版本仲裁的配置则依然需要写版本号
如果我们需要修改版本我们可以使用下面的方式进行管理:(就近优先原则)
start场景启动器
[2]自动配置
2.底层注解
@Configuration & @Bean
作用:声明这是一个配置类,在类中使用@Bean注解可以在方法上给容器注册组件,默认单实例,本身配置类也是一个组件。
@Configuration(proxyBeanMethods=true):注意这个属性表示是否使用代理对象,也就是是否保持单实例。因为如果使用了代理类,使用之前我们会先寻找这个代理类对象,如果我们已经有了代理类对象我们就直接使用这个对象,如果没有我们再创建新对象。分为全模式和轻量级模式
上述内容解决的是组件依赖的问题,如果我们使用的是true那么我们可以在其他的方法中直接调用我们以及写好的组件,因为组件是唯一的,我们明确的知道使用的是哪一个实例,这让我们调用的组件和生成的组件是一一对应的。
false(full模式):启动非常快,没依赖的时候使用
true(lite模式):要检查慢一些,有依赖的时候使用
使用方法
传统的Spring方式创建对象
我们可以使用完全注解开发(这里和Spring中的比较类似吧)
@Component,Controller,Service,Repository,ComponentScan
同Spring
@Import
标注在容器中的组件的类上面,可以是配置类,也可以是其他类。
用处:给容器中导入组件。给容器中自动创建类的组件,可以直接使用,默认组件的名称就是全类名
@Conditional
条件装配:满足指定条件的时候,注入组件
案例:
上面是写在方法上,如果写在类上面那么表示对类中的所有方法进行控制。
@ImportResource
允许使用原来的xml文件方式导入组件
配置绑定1:@ConfigurationProperties+@Component
可以直接在配置文件中导入配置
案例:
在配置文件中
配置绑定2:@ConfigurationProperties+@EnableConfigurationProperties
这个方法一定要在配置类中写。在一些使用第三方包的情况下,我们不确定第三方是否使用了第一种方法,是否使用了@Component注解,这个时候我们使用这个方法。
3.自动配置原理(听不懂到时候回滚一遍)
引导加载自动配置类
按需开启自动配置项
根据条件装配,只有在条件允许之后我们才会真正的开启对应配置类。
因为使用了@Conditional的注解控制了配置。如果没有导入相关的类就无法启动相关的配置类
4.最佳实践
使用步骤:
5.开发小技巧
【1】Lombok:简化javaBean开发
idea中的settings中下载对应插件
【2】Developer Tools:热更新
之后直接使用ctrl+F9就可以更新
【3】Spring Initailizr:项目初始化向导
使用idea的这个方式创建项目直接全部搞定了,用什么勾选什么。