SpringBoot的高级用法

SpringBoot的高级用法

springboot开箱即用

1.redis简介

redis:Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询. Redis 内置了 复制(replication), LUA脚本(Lua scripting), LRU驱动事件(LRU eviction), 事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel) 和自动 分区(Cluster)提供高可用性(high availability)
你可以对这些类型执行 原子操作 , 列如: 字符串(strings)的append 命令; 散列(hashes)的hincrby命令; 列表(lists)的lpush命令; 集合(sets)计算交集sinter命令, 计算并集union命令 和 计算差集sdiff命令; 或者 在有序集合(sorted sets)里面获取成员的最高排名zrangebyscore命令.
为了实现其卓越的性能, Redis 采用运行在 内存中的数据集工作方式. 根据您的使用情况, 您可以每隔一定时间将 数据集导出到磁盘 , 或者 追加到命令日志中. 您也可以关闭持久化功能,将Redis作为一个高效的网络的缓存数据功能使用.
Redis 同样支持 主从复制(能自动重连和网络断开时自动重新同步),并且第一次同步是快速的非阻塞式的同步.
其他功能包括:
事务(Transactions)
订阅分发(Pub/Sub)
LUA脚本(Lua scripting)
过期自动删除key
内存回收
自动故障转移
您可以使用 大多数的编程语言 来使用Redis.
Redis 使用 ANSI C 编写并且能在绝大Linux系统上运行,基于BSD协议,对OS X没有外部依赖. 我们支持Linux 和 OS X两种系统的开发和测试,我们推荐使用Linux部署. Redis 可以像SmartOS一样运行在Solaris系统中, 但是我们会最大力度的支持它. 官方不支持Windos版本的Redis,但微软开发和维护着支持win-64 的Redis版本.

2.关于配置文件说明

yml和properties属性名相同时,以yml为准

2.1.1properties文件说明
1.语法 1. key=value 结构
2.pro中的属性-值默认条件下都是String类型 不需要添加引号
2.1.2YML文件说明
#语法
  # 1. 数据结构 key: value   使用:(空格)链接
  # 2. YML文件中有文件父子级结构 采用缩进的方式实现.
server:
  port: 8090

2.2为属性赋值

2.2.1业务需求
有时需要动态的获取属性的值,如果直接写到代码中需要重新打包编译,代码的耦合性较高.
能否利用配置文件的方式,动态的为属性赋值?
2.2.2 YML方式为属性赋值

1)编辑YML配置文件

#语法
  # 1. 数据结构 key: value   使用:(空格)链接
  # 2. YML文件中有文件父子级结构 采用缩进的方式实现.
server:
  port: 8090

# 为Redis设定属性和属性值
redis.host: 127.0.0.1
redis.port: 6379

2)为属性赋值

package com.jt.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RedisController {

    /**
     * 当程序启动时,会自动的加载YML配置文件,将数据保存到Spring的内部.
     * 之后通过${key}(spel表达式)进行数据的取值.
     */
    @Value("${redis.host}")
    private String host;        // = "127.0.0.1";
    @Value("${redis.port}")
    private int port;           // = 6379;

    @RequestMapping("/getNode")
    public String getNode(){
        return host + ":" + port;
    }
}
2.2.4指定配置文件为属性赋值

1).定义properties文件
在这里插入图片描述
2).编辑RedisController

package com.jt.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
//指定配置文件进行加载
@PropertySource("classpath:/properties/redis.properties")
public class RedisController {

    /**
     * 当程序启动时,会自动的加载YML配置文件,将数据保存到Spring的内部.
     * 之后通过${key}(spel表达式)进行数据的取值.
     * 1.通过YML方式赋值
     *
     */
    @Value("${redis.host}")
    private String host;        // = "127.0.0.1";
    @Value("${redis.port}")
    private int port;           // = 6379;

    //2.通过pro方式赋值
    @Value("${redis2.host}")
    private String host2;
    @Value("${redis2.port}")
    private int port2;
    
    @RequestMapping("/getNode")
    public String getNode(){
        return "YML取值方式"+host + ":" + port+"| " +
                "pro取值方式:"+host2+":"+port2;
    }

}

1.2 为Redis设定属性和属性值

1)关于配置文件说明

redis.host: 127.0.0.1
redis.port: 6379

2).为属性赋值


package com.jt.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RedisController {

    /**
     * 当程序启动时,会自动的加载YML配置文件,将数据保存到Spring的内部.
     * 之后通过${key}(spel表达式)进行数据的取值.
     */
    @Value("${redis.host}")
    private String host;        // = "127.0.0.1";
    @Value("${redis.port}")
    private int port;           // = 6379;

    @RequestMapping("/getNode")
    public String getNode(){
        return host + ":" + port;
    }
}

1.3环境切换

1.3.1业务需求

切换工作环境时,需要修改大量的配置文件,进行优化

1.3.2实现多环境配置
#挑选执行环境   SpringCloud微服务配置 N多个YML配置文件 配置中心
spring:
  profiles:
    active : test

---   #环境分割线
#语法
  # 1. 数据结构 key: value   使用:(空格)链接
  # 2. YML文件中有文件父子级结构 采用缩进的方式实现.

#定义环境名称   2.4.0版本需要如下的格式
spring:
  config:
    activate:
      on-profile: test

server:
  port: 8090

# 为Redis设定属性和属性值
redis.host: 127.0.0.1
redis.port: 6379


# 通过---方式实现YML环境的分割
---
spring:
  profiles: prod   #2.4.0以下的写法

server:
  port: 9000

# 为Redis设定属性和属性值
redis.host: 192.168.1.1
redis.port: 7000

1.4热部署

弊端: IDEA启动时特别耗费内存,如果配置了热部署,则卡上加卡 (自己决定)

1.4.1添加jar包
<!--支持热部署 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-devtools</artifactId>
</dependency>
1.4.2IDEA配置

组合键:ctrl+alt+shift+/
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值