简介:
是一个简化spring开发的框架,习惯大于配置,整合了许多框架,不需要手动编写xml配置,只需要引用starter依赖就可以使用,那为什么使用spring boot?
-
可以创建独立运行的项目,不需要打成war包,通过jar运行
-
可以使用starter来简化maven配置,想使用什么就引用什么依赖就可以使用,简洁便利
-
自动配置bean
-
不需要配置xml,无代码生成
代码生成:把语法分析后或优化后的中间代码转化成目标代码(可执行的机械语言代码)
Spring、SpringMVC、SpringBoot
- Spring框架就像一个家族,有很多成员比如说boot、security、jpa等,但是他们都是基于Spring的ioc和aop来实现的
- Spring MVC 是一个轻耦合的来开发web应用的框架
- SpringBoot是因为在使用Spring的时候需要大量配置,于是为了简化配置,降低项目搭建的复杂度,就出现了能够自动装配的SpringBoot,。Spring Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用,大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。
- 可以这么说:Spring是一个引擎,SpringMVC是一个基于Spring的MVC框架,SpringBoot是一个基于Spring的快速开发整合包
spring-boot-starter
是springboot的核心,帮助我们导入所需要的组建
spring-boot-starter-parent:可以控制所有依赖的版本,导入依赖就可以不用写版本
spring-boot-starter-web:导入web相关的jar包
spring-boot-starter-test:程序的测试依赖
spring-boot-starter-aop:支持spring aop
spring-boot-starter-data-redis:支持redis
入口类
- @SpringBootConfiguration:初始化容器的时候读取配置类的文件到容器中,在配置类上添加@Configuration注解,初始化时就可以添加到容器中
- @EnableAutoConfiguration:可以根据添加的jar包自动配置配置信息
- @ComponentScan:扫描组件所在的包,默认扫描同级下所有的包及其子包
yml和properties
properties:key-value形式,使用".",相同的级别不需要配置在一起
yml:层级结构分明,使用":",相同的级别必须配置在一起
配置文件中的配置
配置 | 说明 |
---|---|
spring.profiles.active=test | 根据环境读取配置文件 |
server.port=8090 | 端口号 |
server.context-path=project | 访问路径名称 |
spring.application.name=test | eureka注册服务名称 |
eureka.instance.preferIpAddress=true | 是否将自己的ip注册到eureka |
eureka.client.service-url.defaultZone=http://ip:port/eureka/ | 服务注册地址 |
spring.cloud.config.discovery.enabled=true | 从配置中心获取配置文件 |
spring.cloud.config.discovery.service-id=config-server | 订阅的获取配置文件的工程的服务名称 |
spring.cloud.config.name=client | 配置中心的分支配置文件名称 |
spring.cloud.config.label=test | 分支配置文件下的文件夹名称 |
spring.cloud.config.profile=test | 指定当前环境 |
mybatis.mapperLocations=classpath:mapper/*/*Mapper.xml | MyBatis路径配置 |
mybatis.configLocation=classpath:config/mybatis.xml | MyBatis环境配置 |
feign.hystrix.enabled=true | 开启hystrix |
ribbon.ReadTimeout=60000 | ribbon的超时时间 |
ribbon.ConnectTimeout | ribbon请求连接的超时时间 |
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=30000 | hystrix超时时间 |
hystrix.threadpool.default.coreSize=500 | hystrix并发执行的线程数,默认为10 |
feign.client.config.feignName.connectTimeout=5000 | feign连接的超时时间 |
feign.client.config.feignName.readTimeout=5000 | feign的读取超时时间 |