SpringBoot——基础回顾

SpringBoot

1.基础回顾

SpringBoot的设计是为了极可能快的跑起来Spring应用程序并尽可能减少你的配置文件。

1.1约定优于配置

约定优于配置,又称安约定变成,是一种软件设计范式。
本质上说,系统、类库或框架应该假定合理的默认值,而非要求提供不必要的配置。例如模型中有一个名为user的类,那么数据库中对应的表就会默认命名为user。只有在偏离这一个约定的时候,例如想要将该表命名为person,才需要写这个名字的配置。
比如平时架构师搭建项目就是现实软件开发随便写代码,制定出一套规范,让开发人员按统一的要求惊醒开发编码测试,这样就嘉庆了开发效率与审查代码效率。
约定优于配置简单理解就是遵循约定。

1.2 SpringBoot概念

1.2.1 Spring优缺点分析

优点: spring是java企业版的轻量级代替品。通过依赖注入和面向切面编程,实现了代码解耦和方法动态增强。
缺点: 配置繁琐,项目的依赖管理耗时耗力。

1.2.2 SpringBoot解决上述spring问题

起步依赖: 起步依赖本质上是一个Maven项目对象模型,将具备某种功能的坐标打包到一起并提供一写默认功能。例如将原本项目依赖的多个jar提取到新的项目工程中,在原有项目中引入新的工程依赖即可。
自动配置: 管理bean只需要引入对应包,不需要在配置文件中进行相关的bean配置,SpringBoot会自动注入这些配置bean,我们在使用时用@Autowired或者@Resource等注解来即可。
优点: 简单、快速、方便的搭建项目;对主流开发框架的五配置集成;极大提高了开发、部署效率。

1.3 SpringBoot配置文件

1.3.1 配置文件之.properties

全局配置文件能对一些默认配置值进行修改。application.properties文件一般在resource目录下,spring boot项目启动时会自动加在application.properties文件。
我们可以在application.properties文件中定义spring boot的相关属性,这些属性包括系统属性、环境变量、命令参数等信息,也可以是自定义配置文件名称和位置。

# 例
server.port=8081
spring.datasource.driver-class-name=
spring.config.additional-lacation=
spring.config.location=
spring.config.name=application

1.3.2 配置文件之.yaml

YAML文件格式是SpringBoot支持的一种JSON超级文件格式,相较于传统的properties,yaml文件以数据为核心,是一种更直观且容易被电脑识别的数据序列化格式。
扩展名可以使用.yml或者.yaml;
yaml使用“key:(空格)value”的格式配置属性,缩进控制层级关系。

# 例
# 1.value值为普通数据类型
server: 
	port: 8081
	path: /hello
# 2.value值为数组和单列集合
person: 
	hobby: 
		- play
		- read
		- sleep
person2: 
	hobby: 
		play,
		read,
		sleep
person3: 
	hobby: [play,read,sleep]
#value值为Map集合和对象
person4: 
	map: 
		k1: v1
		k2: v2
person5:
	map: {k1:v1,k2:v2}

1.3.3 配置文件属性的注入

使用SpringBoot全局配置文件设置属性时:
如果配置属性是spring boot已有属性,例如服务端口server.port,spring boot内部会自动扫描并读取这些配置文件中的属性值并覆盖默认属性。
如果配置的属性是用户自定义属性,如自定义的实体类属性,则必须在程序中注入这些配置属性才能生效。
Spring Boot支持多种注入配置文件属性的方式,例如使用注解@Configrationproperties和@Value注入属性

//使用@Configrationproperties注入属性
@Component
@ConfigurationProperties(prefix = "person") //将配置文件中以person开头的属性注入到该类中
public class Person {
	private int id;
	public void setid(int id) {
		this.id = id;
	}
}
//使用@Value注入属性
/** @Value注解是Spring框架提供的,用来读取配资后文件中属性值并逐个注入到bean对象的对应属性中,spring boot 框架从spring框架中对@Value注解进行了默认继承,所以在spring boot框架中还可以使用该注解读取和注入配置文件属性值
*/
@Component
public class Person{
	@Value("${person.id}")
	private int id;
	@Value(12)
	private int age;
}

1.3.4 自定义配置文件

  • 使用@PropertySource加载配置文件
@Configurat	//自定义配置类
@PropertySource("classpath:test.properties")	//指定自定义配置文件位置和名称
@EenableConfigrationProperties(MyProperties.class)	//开启对应配置类的属性注入功能
@ConfigrationProperties(prefix="test")	//指定配置文件注入属性前缀
public class MyProperties {
	private int id;
	private String name;
}
  • 使用@Configuration编写自定义配置类
public class MyService {

}
@Configuration	//定义该类是一个配置类
public class MyConfig {
	@Bean //将返回值对象作为组件添加到Spring容器中,组件id默认为方法名
	public MyService myService() {
		return new MyService()
	}
}

1.3.5 随机值设置及参数间引用

  • 随机值设置:
    在spring boot配置文件中,随机值设置使用到了spring boot内嵌的RandomValuePropertySource类,对一些隐秘属性值或者测试用例属性值进行随机注入。
    随机值设置的语法格式:${random.xx}
my.secret=${random.value}	//配置随机值
my.number=${random.int}	//配置随机整数
my.uuid=${random.uuid}	//配置uuid类型数
my.number.less.than.ten=${random.int(10)}	//配置小于10的随机整数
my.number.in.range=${random.int[1024,65536]}	//配置范围在[1024,65536]之前的随机整数
  • 参数间的引用
    在spring boot配置文件中,配置文件的性质还可以惊醒参数间的引用,例如在最后一个配置的属性中直接引用先前已经定义过的属性,这样可以直接解析其中的属性值了。
    优点在于当多个具有相关关联的配置属性中,只需要对其中一处属性预先配置,其他地方都可以引用,减少了维护时多处修改的麻烦。
    参数间引用的语法格式为${xx},xx表示之前在配置文件中已经配置过的属性名。
app.name=Myapp
app.description=${app.name} is a Spring Boot application
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值