Spring
Spring简介历史2002年,首次推出了spring框架的雏形:interface21框架 2004年3月24日,悉尼大学音乐学博士Rod Johnson首次推出Spring框架1.0,解决企业应用开发的复杂性。 设计理念:使现有的技术更加容易使用,本身是一套大杂烩,整合了现有的技术框架。 SSH:Struct2(视图框架) + Spring(融合剂) + Hibernate(全自动持久层框架) SSM : SpringMvc(视图框架) + Spring(融合剂) + Mybatis(半自动持久层框架,可定制性更高) 优点 Spring是一个开源的免费的框架(容器) Spring是一个轻量级的、非入侵式的框架 控制反转(IOC),面向方面编程(AOP) 支持事务的处理,对框架整合的支持 总结一句话:Spring就是一个轻量级的控制反转(IoC)和面向方面编程(AOP)的框架! 组成 拓展 Spring Boot 一个快速开发的脚手架 基于Spring Boot可以快速的开发单个微服务 约定大于配置 Spring...
刷题日记4.07-4.10
1.P1473 [USACO2.3] 零的数列 Zero Sum题目描述请考虑一个由 1 到 N 的数字组成的递增数列:1,2,3,…,N。 现在请在数列中插入 + 表示加,或者 - 表示减, (空格) 表示空白(例如 1-2 3 就等于 1-23),来将每一对数字组合在一起(请不要在第一个数字前插入符号)。 计算该表达式的结果并判断其值是否为 0。 请你写一个程序找出所有产生和为零的长度为N的数列。 输入格式单独的一行表示整数 N(3≤N≤9)。 输出格式按照 ASCII码的顺序,输出所有在每对数字间插入 +,-, (空格) 后能得到结果为零的数列。 输入输出样例 #1输入 #117 输出 #11234561+2-3+4-5-6+71+2-3-4+5+6-71-2 3+4+5+6+71-2 3-4 5+6 71-2+3+4-5+6-71-2-3-4-5+6+7 说明/提示翻译来自NOCOW USACO...
刷题日记4.04
继续stl 1.CF808D Array Division题目描述Vasya has an array $ a $ consisting of positive integer numbers. Vasya wants to divide this array into two non-empty consecutive parts (the prefix and the suffix) so that the sum of all elements in the first part equals to the sum of elements in the second part. It is not always possible, so Vasya will move some element before dividing the array (Vasya will erase some element and insert it into an arbitrary position). Inserting an element in the same position...
刷题日记4.03
今天继续stl的简单应用 1.CF4C Registration system题目描述题目背景一个名为 “Berlanddesk” 的电子邮件系统即将在 Berland 上线运营。该电子邮件系统的管理员希望整个系统的建设可以尽早完成,因此他们找到了资深程序员您,希望您能够为他们开发一个用户注册系统的原型产品。 该系统的运行遵循以下原则: 新用户注册时,他将向系统发送一则内容为其用户名的请求,如果该用户名尚未存在于系统数据库内,则将该用户名插入数据库,同时用户得到回应信息 OK 表示其已经成功注册。如果用户请求的用户名已经存在于数据库内,那么系统将产生一个新的用户名并将其加入数据库。新用户名由用户请求的用户名与正整数 $i$ 构成,$i$ 为使 “用户名i” 尚未存在于数据库内的最小的 $i$。 输入格式第一行一个整数 $n(1 \le n \le 10^5)$。接下来 $n$ 行,每行表示用户向系统发出的一则请求。每行内容均非空且均为由至多 $32$ 个小写拉丁字母组成的字符串。 输出格式$n$ 行,每行表示系统对一则请求做出的回应。如果该用户名尚未存在于系统数据库内,则输出...
刷题日记4.02
今天刷洛谷题基础stl题。 1.CF112A Petya and Strings题目描述输入两个字符串,大小写无关紧要,比较它们的大小。 输入格式两个字符串(保证长度相等) 输出格式如果第一个字符串小于第二个字符串,则输出“-1”。如果第二个字符串小于第一个字符串,则输出“1”。如果字符串相同,则打印“0”。请注意,比较字符串时不考虑字母的大小写。 输入输出样例 #1输入 #112aaaaaaaA 输出 #110 输入输出样例 #2输入 #212absAbz 输出 #21-1 输入输出样例 #3输入 #312abcdefgAbCdEfF 输出 #311 今日题解:题目大意是大小写无关的字符串字典序比较,需要我们先统一一下大小写。利用ASCII码进行大小写转换,A->65 a->97 1234567891011121314151617181920212223242526272829303132#include<bits/stdc++.h>using namespace std;using ll = long long;int main()...
刷题日记3.23
动态规划找状态转移方程。 今日题解: 12345678910111213141516171819202122232425#include<bits/stdc++.h>using namespace std;using ll = long long;const int N = 105;ll dp[N * N];int main() { ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); int m, n; cin >> m >> n; for(int i=1;i<=n;++i) {//物品数量 int s, w, v;//对于每种物品而言 cin >> s >> w >> v; while(s--) { for(int j = m;j>=v;--j) { dp[j]=max(dp[j],dp[j-v]+w); } } } cout <<...
C++STL
C++ 标准模板库 (STL, Standard Template Library):包含一些常用数据结构与算法的模板的 C++ 软件库。其包含四个组件——容器 (Containers)、算法 (Algorithms)、迭代器 (Iterators)、仿函数 (Functors)。 示例: 算法:sort(a.begin(), a.end()) 容器:queue<int> que 仿函数:greater<int>() 迭代器:vector<int>::iterator it = a.begin() 队列queue特点:先进先出 操作: 作用 操作 实例 构造 queue<类型> que queue< int > que; 进队 .push(元素) que.push(1); 出队 .pop() que.pop(); 取队首 .front() int a = que.front(); 取队尾 .back() int a =...
刷题日记3.19
1.埃氏筛法解决:找出所有小于等于n的质数问题。 思想:任意一个数(大于1),它的倍数均不是质数。 核心代码:vis[0]=vis[1]=true;//1表示不是质数,被筛掉 for(int i=2;i<=n;++i){ if(!vis[i])for(ll j=1ll * i * i; j<=n;j+=i)vis[j]=true; } 复杂度:O(n*log(logn)), 小于1e7可用,再大用欧拉筛法 欧拉筛法欧拉筛法的核心思想是:每个合数只被它的最小质因数筛掉一次。通过这种方式,避免了埃氏筛法中合数被重复标记的问题,从而提高了效率。 1234567891011// 初始化for (int i = 2; i <= n; ++i) is_prime[i] = true;// 筛选for (int i = 2; i <= n; ++i) { if (is_prime[i]) prime.push_back(i); //...
Redis
Redis是什么:基于内存的key-value结构的数据库 特点: 基于内存存储,读写性能高 适合存储热点数据(热点商品、资讯、新闻) 官网:https://redis.io/ 中文网:https://www.redis.net.cn/ 数据类型 常用命令:字符串: set key value—设置指定key的值 get key—获取指定key的值 setex key seconds value—设置指定key的值,并在seconds后过期(常用于验证码) setnx key value—只有在key不存在时设置key的值 哈希: hset key field value—设置指定key的字段和值 hget key field—获取指定key的字段的值 hdel key field—删除指定key的字段 hkeys key—显示所有字段 hvals...
苍穹外卖
本文章记录学习苍穹外卖的过程和遇到的问题。 首次接手苍穹外卖这个项目,可以发现并不是让我们从零开始建立的,我们是在一定基础上进行后续的功能开发的。并且提供了前端所有的源码以便于我们进行前后端联调测试,先把学习重心放到后端实现上来。 我首先关注到的是这个项目的结构,跟目录下分了3个包,分别是common(普通类)、pojo(实体类等)和server(业务逻辑类等),把前端用nginx启动后,直接在server包下的SkyApplication类启动这个项目。发现这个项目运行在本地的8080上,登录和登出功能已经是做好了的。 然后老师带我们进行了需求分析,导入需要实现的功能接口,老师演示的是Yapi导入的接口,由于它已经停止服务我便使用apifox进行了接口导入。 第一个功能->新增员工 查看接口 在控制层EmployeeController类新增一个方法作为对外的接口 123456789101112/*** 新增员工* @param employeeDTO* @return*...




