springboot 学习笔记(二)

1、配置文件

SpringBoot使用一个全局的配置文件,配置文件名是固定的;

  • application.properties

  • application.yml

配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;
配置文件一般放在resources目录下

2、YML语法

1、基本语法

k:(空格)v:表示一对键值对(空格必须有);

以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的

server:
    port: 8081
    path: /hello

属性和值也是大小写敏感;

2、值的写法

字面量:普通的值(数字,字符串,布尔)
k: v:字面直接来写;

字符串默认不用加上单引号或者双引号;

  • "":双引号;会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
    name: “zhangsan \n lisi”:输出;zhangsan 换行 lisi
  • '’:单引号; 不会转义特殊字符,特殊字符最终只是一个普通的字符串数据
    name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi

对象、Map(属性和值)(键值对):

k: v:在下一行来写对象的属性和值的关系;注意缩进

对象还是k: v的方式

 friends:
    		lastName: zhangsan
    		age: 20

行内写法:

friends: {lastName: zhangsan,age: 18}

数组(List、Set):

用- 值表示数组中的一个元素

 pets:
     - cat
     - dog
     - pig

行内写法

pets: [cat,dog,pig]

3、配置文件值注入

1.在pom.xml添加一下依赖

<!--导入配置文件处理器,配置文件进行绑定就会有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

2.在src/test/com.example.springboot下建立SpringbootApplicationTests单元测试类

  • 当一个类用@RunWith注释或继承一个用@RunWith注释的类时,
    JUnit将调用它所引用的类来运行该类中的测试
    而不是开发者去在junit内部去构建它。

  • SpringRunner是SpringJUnit4ClassRunner的一个别名

  • 使用这个类,简单注解一个JUnit 4 依赖的测试@RunWith(SpringRunner.class).

springboot测试步骤

  • 直接在测试类上面加上如下2个注解
    @RunWith(SpringRunner.class)
    @SpringBootTest
    就能取到spring中的容器的实例,如果配置了@Autowired那么就自动将对象注入。
/*
 SpringBoot单元测试;
 
 可以在测试期间很方便的类似编码一样进行自动注入等容器的功能
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootApplicationTests {

    @Autowired
    Person person;
 
    @Test
    public void test() {
        System.out.println(person);
    }
}

3.编写实体类并加上注解以及配置application文件

@ConfigurationProperties的作用是从配置文件中读取数据,通过配置获取单个属性、集合

@ConfigurationProperties有两个属性

  • prefix:指定properties的配置的前缀
  • locations:指定properties文件的位置

注意:

  • 通过prefix 定位到以 person 开头
  • 保证 属性名字 和 application.yml或者properties中一样,这样就能自动匹配
  • 添加 get set 方法,一个都不能少,不然就启动不成功

细节:

  • 只有当前组件是容器中的组件,才能使用容器提供的@ConfigurationPropeities功能
  • 使用@ConfigurationProperties,被注入字段必须要有set 、get 方法
  • prefix表达式中可以使用 点来表示yml中的层级
  • 通常需要通过配置文件注入复杂类型,如对象、List 、Map是优先考虑使用@ConfigurationProperties ,只是在某个业务逻辑找那个获取一下配置文件中的某项值就直接用@Value就可以了

spring注解

1、@controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层

2、@service 服务(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理

3、@repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.

4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的
<bean id="" class=/)

@Component
@ConfigurationProperties(prefix = "person")
public class Person {

    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String, Object> maps;
    private List<Object> lists;
    private Dog dog;
    ···
    //后面省略person的toString()方法以及getter setter方法

在application.yml配置文件

person:
  lastName: 张三
  age: 18
  boss: false
  birth: 2019/1/1
  maps: {k1: v1,k2: v2}
  lists:
    - lisi
    - zhaoliu
  dog:
     name: lala
     age: 12

在application.properties配置文件

另外一个application.properties 需要对idea进行配置才能进行中文数据录入

person.last-name=张三
person.age=18
person.boss=false
person.birth=2019/1/1
person.lists=list,zhouliu
person.maps.k1=v1
person.maps.k2=v2
person.dog.name=lala
person.dog.age=12

在这里插入图片描述

红色箭头代表要变的地方

此时运行单元测试类就可以获取到配置的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值