SpringBoot(二):配置文件及常用注解

SpringBoot配置文件及常用注解

一、配置文件

SpringBoot默认提供了一个application.properties的配置文件,并支持properties和yaml两种格式的配置文件。如果同时存在两种类型的配置文件,默认会先加载application.properties。

1.两种配置文件格式

(1) properties格式

properties格式配置文件与spring项目写法一致,基本格式如下:

server.port=8081
server.servlet.context-path=/demo
##数据源相关配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root1234
(2) yaml格式

yaml格式的配置文件扩展名为yaml或yml均可,基本格式如下:

server:
  port: 8081
  servlet:
    context-path: /demo

spring:
  ## 数据源相关配置
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
    username: root
    password: root1234

2.properties格式与yaml格式的区别

  • properties写起来存在很多重复,yaml格式为层级关系无重复
  • yaml格式的key和value大小写敏感,value前需要有空格

3.获取配置文件中的值

通过自动获取方式:
application.properties配置文件:
app.sp.url=xxxxx
@Value自动获取:

@Value("${app.sp.url}")
private String url;

4.多环境配置文件的使用

项目中存在不同环境的多套配置文件,例如application-prod.propertiesapplication-dev.properties两套配置文件。

新建一个application.properties,添加spring.profiles.active=dev则代表使用dev的配置文件。

二、SpringBoot的常用注解

1.@SpringBootApplication

@SpringBootApplication是Sprnig Boot项目的核心注解,目的开启自动配置,注解源码如图所示,包含了三个重要的注解:@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan
在这里插入图片描述

@ComponentScan注解

Spring框架通过@Controlle,@Service,@Repository,@Component,@Configuration来定义一个bean,@ComponentScan注解就是用来自动扫描被这些注解标识的类,最终生成IOC容器里的bean。
可以指定的扫描范围:

  • basePackages:指定具体扫描的类
  • includeFilters:指定满足Filter条件的类
  • excludeFilters:排除满足Filter条件的类

所以SpringBoot的启动类最好是放在root package下,因为默认不指定basePackages。

@EnableAutoConfiguration注解

将带有@ConfigurationProperties注解的类注入为Spring容器的Bean。如果使用了@ConfigurationProperties但是没有在启动类上增加这个注解,则@ConfigurationProperties将不起作用。

@SpringBootConfiguration

@SpringBootConfiguration是SpringBoot项目中的配置注解,@SpringBootConfiguration注解可以用java代码的形式实现Spring中xml配置文件配置的效果,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到Srping容器中,并且实例名就是方法名。

2.@Component

放在类上,将普通类实例化放到Spring容器,很多注解是基于该注解。

3.@Configuration和@Bean

@Configuration放在类上,标识当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到Srping容器中,并且实例名就是方法名(其实就是靠@Component注解)。
@Bean放在方法上,相当于xml配置文件中的bean
在这里插入图片描述

4.@ConfigurationProperties

将配置文件中的参数映射成一个对象,通过prefix来设定前缀,然后将后面的和对象的属性名一致就能实现注入(注入的属性需要提供get和set方法 , 因为spring底层其实就是通过反射调用该对象的set方法)。

5.@Controller、@Service、@Repository

都是基于@Component
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值