springboot能够帮助我们快速整合第三方框架,内置嵌入Http服务器(Tomcat、Jetty),使用注解代替XML方式,简化XML的配置,使用Java代码启动Tomcat
SpringBoot和SpringCloud的区别
SpringBoot其实是一个快速开发框架,能够帮助我们快速整合第三方常用框架,完全采用注解化、简化XML配置,最终Java应用程序进行执行
SpringCloud是一套目前完整微服务框架。
微服务通讯技术: Http + json 轻量级
SpringBoot和SpringMVC的区别
springcloud依赖于sprinboot实现微服务
注解
@RestController //表示该类中的所有方法返回json格式
@EnableAutoConfiguration //自动装配
@SpringBootApplication //扫包范围在当前包
来标注一个主程序,说明这是一个SpringBoot的应用
部署成一个jar包也十分方便:maven中选中项目点击packages
微服务: 每个功能元素都是独立的,都可以放在独立的不同的服务器上,都可以独立升级
@AutoConfigurationPackage:自动配置包 (将主配置类的所在包及同一个包中的所有子包都扫描到Spring容器中,所以在该子包中标注@Controller的类可以运行)
SpringBoot的配置
配置文件: application.properties 或者 application.yml(以数据为中心)
YAML语法:1.基本语法:(冒号后面一定加上空格)
K: V (一定要有一个空格) (左对齐的空格是同一层级)
大小写敏感
用单引号表示的特殊字符直接写出来,双引号表示的特殊字符会转义
用 - 表示数组中的一个元素
list:
- 1
- 2
- 3
实例:
@ConfigurationPropertites(prefix=“xxx”) // 将该类中的属性与配置文件(.yaml中的属性进行绑定,可以获取配置文件中的某些属性的值) (prefix=“xxx” 的意思是将前缀为xxx的.yaml中的属性与该类的属性绑定(选择性绑定))
配置properties配置文件
person.age=18
person.boss=false
@Value("${配置文件中的属性名}") //将该类中的属性与配置文件中的属性绑定,可自动获取到配置文件中的属性值,但是不可以批量注入,比起@ConfigurationProperties不方便
@PropertySource(value = “XXX”) //加载指定的配置文件
@ImportResource: 导入Spring的配置文件,让配置文件路面的内容生效
@Bean: 可用于方法和元注解中;将方法的返回值添加到容器中,容器中这个组件默认的id就是方法名
@Configuration: 指明当前类是一个配置类,就是来替代之前的spring配置文件
Profile: Profile是Spring对不同环境提供不同配置功能的支持,可以通过激活、指定参数等方式快速切换环境
在yaml中切换配置环境更方便
如下:"—"可以区分配置文件,下面例子中,主配置文件是第一个,也是默认使用的配置文件,用 — 区分下面的是dev(开发环境)配置文件和prod(生产环境)配置文件,主配置中的active: prod表明将切换为prod环境来配置
server:
port:80
spring:
profiles:
active: prod
---
server:
port: 8080
spring:
profiles: dev
---
server:
port: 8084
spring:
profiles: prod
自动配置类必须在一定的条件下才能生效
可以通过启用debug = true 来在控制台打印自动配置类的启动情况