JavaWeb事务进阶-propagation
事务传播行为:指的就是当一个事务办法被另外一个实物办法调用时,这个事务方法应该如何进行事务控制
REQUIRED: 默认值- 需要事务,有则加入,无则创建新事务
REQUIRES_NEW: 需要新事务,无论有无,总是创建新事务
123456@Transactional(propagation = Propagation.REQUIRES_NEW) // 这个方法在新的事务中创建并提交@Overridepublic void insertLog(EmpLog empLog) { empLogMapper.insert(empLog);}
文件上传简介
将我们的文件上传到服务器,供其他用户浏览或下载的过程
比如发微博和发朋友圈
前端代码示例
后端代码12345678910111213141516171819202122232425262728293031/** * @author Wiretender * @version 1.0 */package com.itheima.controller;import ...
ACL(Access Control List)
访问控制列表 用来实现数据包识别功能。
ACL 应用在接口上,每个接口的出入双向分别过滤。
仅当数据包经过一个接口时,才能被此接口的此方向的 ACL 过滤。
通配符掩码
通配符掩码和 IP 地址结合使用以描述一个 地址范围
通配符掩码的匹配规则:
0 表示对应位需比较
1 表示对应位不比较
ACL 的标识
基本 ACL
基本访问控制列表只根据报文的 源 IP 地址信息 制定规则
二层 ACL
二层 ACL 根据报文的源 MAC 地址、目的 MAC 地址、802.1p 优先级、二层协议类型等二层信息制定匹配规则
用户自定义 ACL 可以根据任意位置的任意字串制定匹配规则
报文的报文头、IP 头等为基准,指定从第几个字节开始与掩码进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文。(IDS)
配置 ACL 包过滤
1234567891011121314151617181920212223242526272829303132333435开启防火墙[sysname] firewall ...
Exception 异常123456789101112131415161718192021222324252627package com.hspedu.exception_;import java.util.Scanner;public class Test { public static void main(String[] args) { // 创建 Scanner 对象 Scanner scanner = new Scanner(System.in); int num = 0; String inputStr = ""; while(true) { System.out.println("Please input a Integer"); inputStr = scanner.next(); try { num = Integer. ...
Java 学习笔记对象的成员方法 当程序执行到方法时,就会开辟一个独立的空间(栈空间)
1234567891011121314151617181920212223242526272829303132333435363738394041424344package javahsp.day04;public class Method01 { public static void main(String[] args) { Person wangXinNuo = new Person(); wangXinNuo.speak(); wangXinNuo.cal01(); wangXinNuo.cal02(10); }}class Person { String name; int age; // 1.public 公开方法 // 2. void 无返回值 // 3. speak 方法名 () 形参列表 // 4. {} 方法体 要执行的代码 public void speak() { System.out. ...
Java 学习笔记bool 类型12345678910public class Boolean01 { public static void main(String[] args) { boolean isPass = true; if (isPass == true) { System.out.println("考试通过, 恭喜!"); } else { System.out.println("考试没有通过, 下次努力"); } }}
自动类型转化123456789101112131415161718192021222324252627282930313233package day01;public class AutoConvertDetail { public static void main(String[] args) { // 有多重类 ...
飞机降落(十四届真题)[P9241 蓝桥杯 2023 省 B] 飞机降落 - 洛谷
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#include <cstring>#include <algorithm>#include <unordered_set>#include <iostream>#include <bitset>#define io ios::sync_with_stdio(0), cin.tie(0)#define ll long longusing namespace std;const int N = 15;int n;int t[N], d[N], l[N];bitset<N> vis;/* 初始状态 (time=0) ├─ 选择飞机1 (新time=max(0,t1)+l1) │ ...
最大子段和刷洛谷的题的时候学到的新知识点,算法描述为下:
概念描述给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。
而这个其中最大的数字就是这个数组的 最大字段和
算法代码展示123456789101112131415161718192021222324#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 2e5 + 10;int n, a[N];int main(){ scanf("%d", &n); for (int i = 1;i <= n;i ++) scanf("%d", &a[i]); long long ans = -1e9; long long cur = a[1]; for (int i = 2;i <= n;i ++) { cur = max(cur + a[i], a[i] + 0LL); ...
图上 BFS(我目前只会 STL 哈哈哈)
简单的图上 BFS
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace std;using PII = pair<int, int>;const int N = 410;int dx[8]={-2,-2,2,2,1,-1,1,-1};int dy[8]={-1,1,-1,1,2,-2,-2,2};int n, m, x, y;bool vis[N][N];int dis[N][N];bool inmp(int x, int y) ...
选数异或
12345678910111213141516171819202122232425262728#include <cstring>#include <iostream>#include <algorithm>#include <cstdio>using namespace std;const int N = 1e5 + 10;const int mod = 998244353;int n, x;int a[N];int f[N][65]; // 表示选择到第i个数字,异或运算的值为x的int main(){ scanf("%d%d", &n, &x); f[0][0] = 1; for(int i = 1;i <= n;i ++) scanf("%d", &a[i]); for(int i = 1;i <= n;i ++) for(int j = 0;j <= 64;j ++) ...
回溯法解决排列型枚举
1234567891011121314151617181920212223242526272829303132333435363738#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <bitset>using namespace std;const int N = 10;int n;int ans[N];bitset<N> vis;void dfs(int dep){ if(dep > n) { for(int i = 1;i <= n;i ++) cout << ans[i] << " \n"[i == n]; return ; } for(int i = 1;i <= n;i ++) { if(vis[i]) continue; vis[i] = true; a ...