Spring Cache
Spring CacheSpring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发
Spring Cache 是一个框架,实现了了基于注解的缓存功能,只需要简单地添加一个注解,就能实现缓存功能。
Spring Cache提供了一层抽象,底层可以切换不同的缓存实现,例如:
EHCache
Caffeine
Redis
导入cache的maven坐标:
12345<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> <version>2.7.3</version></dependency>
若你想通过Redis来作为具体的缓存实现,只需在p ...
算法学习笔记-动态规划
动态规划本质:空间换时间
求解步骤:
设计状态
确定状态转移方程
确定初始状态
执行状态转移
计算最终的解
题目递推力扣第70题-爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
示例 1:
12345输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶
示例 2:
123456输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶
解答:
12345678910class Solution { public int climbStairs(int n) { int[] F=new int[46]; F[0]=F[1]=1; for(int i=2;i<=n;i++){ F[i]=F[i-1]+F[i-2]; } return F[n]; ...
springboot常用注解整理
Springboot常用注解整理通用1.@Autowired作用:自动注入 Spring 容器中的 bean。
用途:可以用于构造函数、字段或 setter 方法,简化依赖注入的过程。
12@Autowiredprivate UserRepository userRepository;
2. @Component作用:将类标识为 Spring 组件,使其可以被 Spring 管理。
用途:用于任何 Spring 管理的类,如果不适用更特定的注解(如 @Service、@Controller、@Repository),可以使用这个注解。
是一个类级别的注解,通常用于标记一个类作为 Spring 管理的组件。Spring 会自动扫描带有 @Component 注解的类,并将其实例化为 bean。
更常用于自动扫描的组件,适合用于标记服务层、控制器层、数据访问层等。可以与其他注解(如 @Service、@Controller、@Repository)结合使用,以便在语义上更清晰。
1234@Componentpublic class MyComponent { // 业 ...
MongoDB快速入门整理
MongoDB学习整理基础认识:mongoDB是文档型数据库
在mongoDB中,数据库是由一个个集合组成的,每个集合又包含多个文档(文档在使用BSON的格式来组织和存储数据)
基础操作1. 连接MongoDB1mongo
如果 MongoDB 在其他主机或端口上运行,可以指定地址,例如:
1mongo --host your_host --port your_port
2. 显示数据库列表1show databases
3. 创建/切换数据库使用 use 命令切换到某个数据库,如果该数据库不存在会自动创建:
1use myDatabase
4. 清屏1cls
5. 退出1exit
CRUD创建操作创建或插入操作用于将新文档添加到集合中。如果集合当前不存在,插入操作会创建集合。
MongoDB 提供以下方法将文档插入到集合中:
db.collection.insertOne()
db.collection.insertMany()
读取操作读取操作用于从集合中检索文档,即查询集合中的文档。MongoDB 提供以下方法来从集合中读取文档:
db.col ...
关于物联网实验室后端部门的一些常见疑惑解答
关于物联网实验室后端部门的一些常见疑惑解答首先,我们物联网实验室是一个和谐欢乐,积极向上的大家庭,作为厂里的传统著名实验室,不少实验室的学长学姐都进入到了大厂或考研到92。在实验室里,我们会发布一些学习的路线和方法带着大家学习,但我们不会有非常硬性的任务要求,我们主张一起学习进步。同时,实验室会经常发布各类比赛的信息,实验室成员可以自由组队拿奖,并通过比赛来促进学习。
接下来解答一下大家一些对后端的常见疑惑。
一、什么是后端开发?后端开发是指开发计算机程序的后端部分,也称为服务器端或应用程序服务器。后端开发通常涉及使用编程语言 (如 Java、Python、Ruby、PHP 等) 和数据库管理系统 (如 MySQL、Redis、Oracle 等) 来构建和维护服务器端应用程序。后端开发的主要任务是处理来自客户端的请求,并将处理结果返回给客户端。后端开发人员需要考虑如何优化应用程序的性能和可扩展性,同时需要确保应用程序的安全性和可靠性。此外,我们还需要随时处理服务器可能发生的问题。
说人话就是主要的是对一个网页的后台逻辑处理,和对数据库进行操作。
举一个最简单的例子,你点开一个新的网站, ...
外卖项目-Springboot回顾Day4
外卖项目–Springboot回顾Day4httpclient使用示例HttpClient是Apache的一个子项目,是高效的、功能丰富的支持HTTP协议的客户端编程工具包。
12345678910111213141516171819202122232425262728293031@SpringBootTest(classes = SkyApplication.class)public class HttpClientTest { /** * 测试通过htttpclient来发送GET请求 */ @Test public void testGET() throws Exception{ //创建httpclient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); //创建请求对象 HttpGet httpGet = new HttpGet("http://localhost:8080/us ...
Redis常用指令整理
常用Redis命令整理启动redis服务端
1redis-server.exe redis.windows.conf
启动redis客户端
12345redis-cli.exe后接参数 -h 路由 -p 端口 -a 密码
Redis数据类型
string
hash
list
set 集合
sorted set/zset 有序集合:集合中的每个元素关联一个分数(score),根据分数升序排列
String命令
SET key value #设置指定key的值
GET key #获取指定key的值
SETEX key seconds value #设置指定key的值,并将key 的过期时间设为seconds秒
SETNX key value #只有在key不存在时设置key的值
hash命令
HSET ...
外卖项目--Springboot回顾Day3
外卖项目–Springboot回顾Day3公共字段自动填充因为creat_time,create_user,update_time,update_user在每个mapper层中都有,造成了代码冗余并且不利于维护,所以本节使用切面将他们统一处理
思路:
自定义注解AutoFill,用于标识需要公共字段自动填充的方法
自定义切面类AutoFillAspect,统一拦截加入了AutoFill注解的方法,通过反射为公共字段赋值
在Mapper的方法上加入AutoFill注解
技术点:注解,AOP,反射
代码实现:happy:AutoFill.java12345678910/** * 自定义注解,用于标识某个方法需要进行功能字段自动填充处理 */@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface AutoFill { //数据库操作类型:UPDATE INSERT OperationType value();}
@Target :指定当前代码会加在什 ...
外卖项目--Springboot回顾Day2
外卖项目–Springboot回顾Day2任务:
新增员工
员工分页查询
启用禁用员工账号
编辑员工
导入分类模块功能代码
每一个任务的完成逻辑:
需求分析和设计(接口设计)
代码开发(根据新增员工接口设计对应DTO)
功能测试
代码完善
本项目约定:
管理端发出的请求,统一使用/admin作为前缀
用户端发出的请求,统一使用/user作为前缀
新增员工需求分析和设计
1. 在Controller中写方法save接受前端的数据并封装为EmployeeDTO类
12345678910111213/** * 新增员工 * @param employeeDTO * @return */ @PostMapping @ApiOperation("新增员工") public Result save(@RequestBody EmployeeDTO employeeDTO){ log.info("新增员工{}",employe ...
外卖项目--Springboot回顾Day1
外卖项目–Springboot回顾Day1项目简单介绍和启动前端通过nginx.exe直接启动
后端使用maven同一管理依赖版本
后端结构:
-common 存放实体类
-pojo 实体类,DTO(数据传输对象),VO(视图对象-返回给前端页面),POJO(普通JAVA对象-属性及对应的getter和setter方法)
-sever 后端服务,Controller,Service,Mapper
1public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO employeeLoginDTO){}
后端返回的结果统一封装为Result,接受的参数为DTO
Nginx 反向代理前端请求地址:http:// localhost/api/employee/login (默认端口80)
后端服务地址:http:// localhost/:8080/admin/employee ...