Java EE之Spring Boot

一.SpringBoot是什么?

Spring Boot 是 Spring 公司研发的⼀款为了简化 Spring 的初始化搭建和开发过程的⼀款微服务框架

二.SpringBoot的用途

以做饭为例,我们通常的做饭过程是这样的:

  • 列出购物清单
  • 出⻔买菜
  • 洗菜
  • 起锅、烧油
  • 炒菜

等⼀系列的过程,⽽如果我们去饭店吃饭的话,那我们就只需要告诉服务员我们想吃什么,然后就可以等着吃饭了。使⽤ Spring 就相当于去饭店吃饭,⽽不⽤做饭。但随着 Spring 的不断发展它的功能也越来越多,整个框架也越来越臃肿。这就和饭店的发展是⼀样的,随着时间的推移,来吃饭的⼈也越来越多,那么在就餐的⾼峰期,就出现了排队的想象,这是因为当顾客点了菜之后,厨师才⼀个⼀个去做,效率还是⽐较低的,哪有没有更好的解决办法呢?那么,此时⽼板就想了⼀个办法,他们把顾客⻓点的饭菜由厨师提前做好,并且妥善的保存好,这样当有顾客来吃饭时只需要拿出来热⼀下就⾏了,这样就可以快速的“做”出来更多的菜。⽽这种提升饭店效率的举措就相当于 Spring Boot 的作⽤,Spring Boot 的诞⽣为快速搭建的开发和Spring 提供了很⼤的帮助。这样是 Spring Boot 诞⽣的初衷,Spring Boot 于 2013 年开始研发,2014年推出 1.0 正式版

三.SpringBoot的优点

  • 创建项⽬⾮常快,⼏秒钟就可以搭建完成;
  • 快速集成插件,Spring Boot 提供了⼊⻔依赖添加,⽤于快速的集成各种框架;
  • 内置了 Web 容器,运⾏更加⽅便;
  • 提供了很多监控的指标;
  • 可以完全使⽤代码的⽅式进⾏开发,⽽不需要 XML 配置

四.Spring Boot的创建和运行

1.IDEA 创建(推荐)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.网站创建

访问 https://start.spring.io/ 创建,如下图所示:
在这里插入图片描述
在这里插入图片描述
解压 Spring Boot 的项⽬⽂件,使⽤ IDEA 打开项⽬即可。

五.缓存

1.定义

缓存是指可以进⾏⾼速数据交换的存储器,使⽤它可以更快速的操作和访问数据。

2.缓存的用途

在程序中如果没有使⽤缓存,它的运⾏流程通常是这样的:
在这里插入图片描述
在这里插入图片描述
Java 程序可以是很多个,⽽数据库只有⼀个,因此在⼤量请求都在访问数据库时,就会导致数据库操作性能下降,因此我们需要借助⼀种⼿段来“加速”数据库的操作,⽽这种⼿段就是缓存。
当加⼊缓存之后程序的运⾏流程如下图所示
在这里插入图片描述

3.缓存的优点

  • 使⽤缓存可以避免访问数据库,节省数据库服务器的资源;
  • 性能更快,缓存属于内存级的服务器,⽽DB 牵扯到更多的业务逻辑判断和磁盘操作,因此缓存的性能更⾼。

4.如何使用缓存

在 Spring Boot 的启动类上添加如下代码,开启缓存:
缓存使⽤
① 开启缓存

@SpringBootApplication
@EnableCaching //开启缓存功能
public class BiteApplication {
public static void main(String[] args) {
SpringApplication.run(BiteApplication.class, args);
	}
}

② 编写缓存操作代码
在 Service 层增加三个缓存操作的⽅法:添加缓存、修改缓存、删除缓存,示例代码如下

@Component
public class CacheService {
    //查询到的信息,存储到缓存中
    @Cacheable(cacheNames = "persion",key = "#id")
    public Persion getPersion(int id){
        //伪代码
        System.out.println("进入了 getPersion方法~");
        Persion persion = new Persion();
        persion.setId(id);
        persion.setName("Java");
        persion.setAge(18);
        return persion;
    }
    //缓存更新
    @CachePut(cacheNames = "persion",key = "#id")
    public Persion upPersion(int id){
        System.out.println("进入了upPersion方法~");
        Persion persion = new Persion();
        persion.setId(id);
        persion.setName("Java");
        persion.setAge(30);
        return persion;
    }
    //缓存删除
    @CacheEvict(cacheNames = "persion",key = "#id")
    public void delPersion(int id){
        System.out.println("进入了delPersion方法~");
    }
}

③ 编写触发(调⽤)代码

//设置访问地址
@RequestMapping("/cache")
//返回格式
@RestController
public class CacheController {
    @Autowired
    CacheService cacheService;

    /**
     * 查询方法
     * @param id
     * @return
     */
    @RequestMapping("/get")
    public Persion getPersion(int id){
        return cacheService.getPersion(id);
    }

    /**
     * 修复方法
     * @param id
     * @return
     */
    @RequestMapping("/up")
    public Persion upPersion(int id){
        return cacheService.upPersion(id);
    }

    /**
     * 删除方法
     * @param id
     * @return
     */
    @RequestMapping("/del")
    public boolean delPersion(int id){
        cacheService.delPersion(id);
        return true;
    }
}

5.缓存测试

使用Postman 访问有缓存和没有缓存查看执⾏时间

6.实现原理

Cache 本质上是⽤ ConCurrentMap 的数据结构来实现的,这⼀点可以在下⾯的指标监控数据⾥看到。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值