feat:新增spring

master
old-tom 2 years ago
parent 50620f9fd0
commit 351d1e074d

@ -0,0 +1,717 @@
:root
{
--font-size-normal: 19px;
--font-size-code: 16px;
--font-size-side-dock: 16px;
--font-size-side-dock-title: 18px;
--font-size-status-bar: 16px;
--font-size-h1: 24px;
--font-size-h2: 23px;
--font-size-h3: 22px;
--font-size-h4: 21px;
--font-size-h5: 20px;
--font-size-h6: 19px;
--font-family-editor: Avenir, Avenir Next, sans-serif;
--font-family-preview: Avenir, Avenir Next, sans-serif;
}
.theme-light,
.theme-dark {
--background-primary: #282a36;
--background-primary-alt: #44475a;
--background-secondary: #44475a;
--background-secondary-alt: #282a36;
--background-accent: #f8f8f2;
--background-modifier-border: #f8f8f2;
--background-modifier-form-field: rgba(0, 0, 0, 0.2);
--background-modifier-form-field-highlighted: rgba(0, 0, 0, 0.5);
--background-modifier-box-shadow: rgba(0, 0, 0, 0.3);
--background-modifier-success: #50fa7b; /*no sure*/
--background-modifier-error: #3d0000; /*no sure*/
--background-modifier-error-rgb: 61, 0, 0;
--background-modifier-error-hover: #470000;
--background-modifier-cover: rgba(0, 0, 0, 0.6);
--text-accent: #ffb86c;
--text-accent-hover: #8be9fd;
--text-normal: #f8f8f2;
--text-muted: #f8f8f2;
--text-faint: #bd93f9;
--text-highlight-bg: #ff5555;
--text-error: #ff79c6;
--text-error-hover: #ff79c6;
--text-selection: #6272a4; /* Chromium precess this color with alpha channel */
--text-on-accent: #bd93f9;
--interactive-normal: #ffb86c;
--interactive-hover: #ff5555;
--interactive-accent: #ffb86c;
--interactive-accent-rgb: 123, 108, 217;
--interactive-accent-hover: #ff5555;
--scrollbar-active-thumb-bg: rgba(255, 255, 255, 0.2);
--scrollbar-bg: rgba(255, 255, 255, 0.05);
--scrollbar-thumb-bg: rgba(255, 255, 255, 0.1);
--text-title-h1: #ff79c6;
--text-title-h2: #bd93f9;
--text-title-h3: #ff5555;
--text-title-h4: #ffb86c;
--text-title-h5: #50fa7b;
--text-title-h6: #8be9fd;
--inline-code: #bd93f9;
--code-block: #8be9fd;
--pre-code: #44475a;
--blockquote-border: #ffb86c;
--vim-cursor: #ff5555;
--border-color: #2b2727; /*also like transparent*/
}
/*-------------------------------------*/
/* Search the following lines */
/* to jump to specific section */
/*-------------------------------------*/
/* resize-handle and borders */
/* tags */
/* link */
/* Cursor */
/* basic format in EDITOR and PREVIEW */
/* Headings - EDITOR and PREVIEW */
/* Code block in Preview */
/* Code block in Editor */
/* Brackets */
/* Blockquote */
/* table */
/* Checkbox */
/* html in editor */
/* popover */
/* Side panel */
/* internal embedded link in preview */
/* graph view */
/* settings */
/* Hide side bar */
/* width of content */
/* at a rule line before ul list *
/* Hide Scrollbar (recommend for mac) */
/*-------------------------------------*/
/***************************************/
/* resize-handle and borders */
/***************************************/
/*vertical resize-handle*/
.workspace-split.mod-vertical > * > .workspace-leaf-resize-handle,
.workspace-split.mod-left-split > .workspace-leaf-resize-handle,
.workspace-split.mod-right-split > .workspace-leaf-resize-handle{
width: 1px !important;
background-color: var(--border-color);
}
/*horizontal resize-handle*/
.workspace-split.mod-horizontal > * > .workspace-leaf-resize-handle{
height: 1px !important;
background-color: var(--border-color);
}
/*workspace ribbon when collapsed*/
.workspace-ribbon.is-collapsed {
background-color: var(--background-primary-alt);
}
/*the vertical split*/
.workspace-split.mod-root .workspace-split.mod-vertical .workspace-leaf-content,
.workspace-split.mod-vertical > .workspace-split,
.workspace-split.mod-vertical > .workspace-leaf,
.workspace-tabs{
padding-right: 0px;
}
/*status-bar*/
.status-bar{
font-size: var(--font-size-status-bar);
background-color: var(--background-secondary-alt);
border-top: 0px;
}
.document-search-container{
border-top: 0px;
border-right: 0px;
z-index: inherit;
}
.workspace-ribbon.mod-left.is-collapsed{
border-right: 1px solid var(--border-color);
}
.workspace-ribbon.mod-right.is-collapsed{
border-left: 1px solid var(--border-color);
}
/*************************************/
/* tags */
/*************************************/
/* Tag hover in preview */
a.tag:hover {
color: var(--text-accent) !important;
}
/* Tag Color in editor and preview*/
.cm-hashtag, a.tag {
color: var(--text-accent-hover) !important;
text-decoration: none !important;
font-style: normal !important;
}
/*********************************/
/* link */
/*********************************/
/* link */
a,
.internal-link,
.cm-hmd-internal-link,
.cm-link,
.cm-formatting-link,
.cm-url {
text-decoration: none !important;
}
/* the url string in editor */
.cm-s-obsidian span.cm-string{
color: var(--text-accent-hover) !important;
}
/* make external links italics to differentiate */
a:not(.internal-link) {
font-style: italic;
}
/*footnote*/
.cm-s-obsidian pre.HyperMD-footnote span.cm-hmd-footnote,
.cm-s-obsidian span.cm-footref {
color: var(--text-accent) !important;
}
/***************************************/
/* Cursor */
/***************************************/
/* Cursor color and opacity */
.cm-fat-cursor .CodeMirror-cursor, .cm-animate-fat-cursor
{
width: 0.5em;
background: var(--vim-cursor);
opacity: 60% !important;
}
/**************************************/
/* basic format in EDITOR and PREVIEW */
/**************************************/
/* font for everything outside of editor/preview panes */
.app-container {
font-family: var(--font-family-preview);
}
/* set the text selection color for preview mode */
::selection {
background-color: var(--text-selection);
}
/* normal text outside of headings and code of editor */
.cm-s-obsidian, .mod-single-child .cm-s-obsidian {
font-family: var(--font-family-editor);
font-size: var(--font-size-normal);
}
/* normal text outside of headings and code of preview */
.markdown-preview-view, .mod-single-child .markdown-preview-view {
font-family: var(--font-family-editor);
font-size: var(--font-size-normal);
padding-top: 0px;
padding-left: 2% !important;
padding-right: 1% !important;
}
/* bold in preview and editor */
strong, .cm-strong {
font-weight: 600;
color: #50fa7b;
}
/* emphasis in preview and editor */
em, .cm-em {
color: var(--text-muted);
font-style: italic;
}
/* strikethrough in preview and editor */
s, .cm-strikethrough {
color: var(--text-muted);
}
/* list in editor */
.cm-s-obsidian span.cm-formatting-list {
color: var(--text-normal) !important;
}
/* horizontal line in preview */
.markdown-preview-view hr {
background-color: var(--text-faint) !important;
}
/* embedded images */
img:not(.emoji) {
display: block;
margin-left: auto;
margin-right: auto;
}
/* img hover zoom out img*/
img:hover {
transform: scale(1.04);
transition: transform 0.25s ease-in-out 0s;
}
.community-theme img:hover{
transform: none;
}
/*********************************/
/* Headings - EDITOR and PREVIEW */
/*********************************/
/* headings for editor and preview */
.cm-header-1, .markdown-preview-view h1
{
font-family: var(--font-family-editor);
font-weight: 500;
font-size: var(--font-size-h1);
color: var(--text-title-h1);
}
.cm-header-2, .markdown-preview-view h2
{
font-family: var(--font-family-editor);
font-weight: 500;
font-size: var(--font-size-h2);
color: var(--text-title-h2);
}
.cm-header-3, .markdown-preview-view h3
{
font-family: var(--font-family-editor);
font-weight: 500;
font-size: var(--font-size-h3);
color: var(--text-title-h3);
}
.cm-header-4, .markdown-preview-view h4
{
font-family: var(--font-family-editor);
font-weight: 500;
font-size: var(--font-size-h4);
color: var(--text-title-h4);
}
.cm-header-5, .markdown-preview-view h5
{
font-family: var(--font-family-editor);
font-weight: 500;
font-size: var(--font-size-h5);
color: var(--text-title-h5);
}
.cm-header-6, .markdown-preview-view h6
{
font-family: var(--font-family-editor);
font-weight: 500;
font-size: var(--font-size-h6);
color: var(--text-title-h6);
}
/***************************************/
/* Code block in Preview */
/***************************************/
/* code blocks in preview */
pre code {
font-family: monaco !important;
font-size: var(--font-size-code) !important;
padding: 6px !important;
line-height: normal;
display: block;
color: var(--code-block) !important;
}
/* padding of code blocks in preview */
.markdown-preview-view pre {
padding: 0px !important;
}
/* font-size of in-line block for preview */
.markdown-preview-view code
{
font-size: var(--font-size-code);
}
/* remove the shadow that typically affect light mode */
.theme-dark code[class*="language-"],
.theme-dark pre[class*="language-"],
.theme-light code[class*="language-"],
.theme-light pre[class*="language-"]
{
text-shadow: none !important;
color: var(--text-faint) !important;
background-color: var(--pre-code);
}
/***************************************/
/* Brackets */
/***************************************/
.cm-s-obsidian span.cm-formatting-link {
color: var(--text-accent) !important;
}
/***************************************/
/* Blockquote */
/***************************************/
/* for editor */
.cm-quote {
color: var(--text-normal) !important;
font-style: italic;
}
/* for preview */
.markdown-preview-view blockquote {
background-color: var(--pre-code);
border: 0px solid;
border-color: var(--blockquote-border) !important;
border-left-width: 4px !important;
border-radius: 0 8px 8px 0;
line-height: 1.5em;
margin: 30px 0px;
font-style: italic;
}
/***************************************/
/* table */
/***************************************/
th {
font-weight: 800 !important;
}
.markdown-preview-view th {
font-weight: 800;
background-color: var(--background-secondary) !important;
}
thead {
border-bottom: 3px solid var(--background-modifier-border);
}
.table {
padding: 4px;
line-height: normal;
display: block;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
}
/***************************************/
/* Checkbox */
/***************************************/
.markdown-preview-view .task-list-item-checkbox:checked::before {
content: '✓';
position: absolute;
color: var(--text-accent);
font-size:1em;
line-height: 1.25em;
width:1.2em;
text-align:center;
text-shadow: 0 0 0.1em var(--text-accent);
}
.markdown-preview-view .task-list-item-checkbox {
-webkit-appearance: none;
top: 0.2em !important;
right: 4px;
box-sizing: border-box;
border: 1px solid var(--text-muted);
position: relative;
width: 1.25em;
height: 1.25em;
margin: 0;
box-shadow: 0 0 0.1em var(--text-muted);
}
.checkbox-container {
background-color: var(--background-primary);
}
/***************************************/
/* popover */
/***************************************/
.popover{
border: 1px solid var(--border-color);
background-color: var(--background-secondary);
}
/***************************************/
/* Side panel */
/***************************************/
/* search result in backlink or file search */
.search-result-file-title {
font-size: 15px ;
}
.search-result-file-matches, .search-empty-state {
font-size: var(--font-size-side-dock);
}
/*decrease the spacing between result items*/
.search-result-file-title,
.search-result-file-match {
padding: 0px 10px;
}
.nav-file-title, .nav-folder-title {
border-bottom-left-radius: 0 !important;
border-bottom-right-radius: 0 !important;
border-top-left-radius: 0 !important;
border-top-right-radius: 0 !important;
}
/*backlink pane*/
.workspace-leaf-content[data-type="backlink"] .view-content{
background-color: var(--background-secondary);
}
.workspace-leaf-content[data-type="tag"] .tag-pane-tag-count,
.workspace-leaf-content[data-type="tag"] .tag-pane-tag-text {
font-size: var(--font-size-side-dock);
}
.workspace-leaf-content[data-type="backlink"] .search-result-file-matches {
font-size: var(--font-size-side-dock);
}
/***************************************/
/* internal embedded link in preview */
/***************************************/
/* Naked Embeds */
.markdown-embed-title { display: none; }
.markdown-preview-view .markdown-embed-content>:first-child { margin-top: 0; }
.markdown-preview-view .markdown-embed-content>:last-child { margin-bottom: 0; }
/*remove the following two line, you will get border and scroll*/
.markdown-preview-view .markdown-embed { border:none; padding:0; margin:0; }
.markdown-preview-view .markdown-embed-content
{
max-height: unset;
background-color: var(--background-secondary);
}
/* the link on the top right corner*/
.markdown-embed-link {
color: var(--text-faint) !important;
}
.markdown-embed-link:hover {
color: var(--text-accent) !important;
}
/***************************************/
/* graph view */
/***************************************/
.graph-view.color-circle,
.graph-view.color-fill-highlight,
.graph-view.color-line-highlight
{
color: var(--text-accent) !important;
}
.graph-view.color-text
{
color: var(--text-normal) !important;
}
.graph-view.color-line {
color: #6272a4;
}
.graph-view.color-fill{
color: var(--text-muted);
}
.workspace-leaf-content[data-type = "graph"] .view-content{
background-color: var(--background-primary);
}
/***************************************/
/* settings */
/***************************************/
.modal.mod-settings button:not(.mod-cta):hover {
background-color: var(--interactive-accent-hover);
}
/***************************************/
/* Hide side bar */
/***************************************/
.workspace-ribbon:not(:hover) .workspace-ribbon-collapse-btn,
.workspace-ribbon:not(:hover) .side-dock-actions,
.workspace-ribbon:not(:hover) .side-dock-settings {
display:none;
transition: all 300ms ease-in-out;}
.workspace-ribbon:not(:hover) {
width: 0px;
transition: all 300ms ease-in-out;}
.workspace-split.mod-left-split {margin-left: 0px;}
.workspace-split.mod-right-split {margin-right: 0px;}
/***************************************/
/* width of content */
/***************************************/
.markdown-source-view.is-readable-line-width .CodeMirror {
max-width: 900px;
margin-left: auto;
margin-right: auto;
}
.markdown-preview-view.is-readable-line-width .markdown-preview-section {
max-width: 900px;
margin-left: 30px;
margin-right: 30px;
}
/* header */
.theme-dark .view-header {
background-color: var(--background-primary) !important;
border-top: 1px solid var(--border-color) !important;
border-bottom: 1px solid var(--border-color) !important;
}
.theme-dark .view-header-title-container:after {
background: linear-gradient(to bottom, transparent, var(--background-primary)) !important;
}
.theme-dark .workspace-leaf.mod-active .view-header {
background-color: var(--background-secondary-alt) !important;
border-top: 0px !important;
border-bottom: 3px solid var(--interactive-accent) !important;
}
.workspace-leaf.mod-active .view-header-title-container:after {
background: linear-gradient(to bottom, transparent, var(--background-secondary-alt)) !important;
}
.workspace-leaf.mod-active .view-header-title,
.workspace-leaf.mod-active .view-header-icon
{
color: var(--background-modifier-border);
}
.view-header-title, .view-header-icon, .view-action{
color: var(--text-faint);
}
.view-header-title
{
font-size: 20px;
}
/***************************************/
/* at a rule line before ul list */
/***************************************/
ul ul { position: relative; }
ul ul::before {
content:'';
border-left: 1px solid var(--border-color);
position: absolute;
}
ul ul::before { left: -1em; top: 0; bottom: 0; }
/* rule line when there are checkboxes*/
ul .task-list-item ul::before {left: 0.15em !important}
/***************************************/
/* Code block in Editor */
/***************************************/
/* in-line block for editor */
.cm-s-obsidian span.cm-inline-code,
.cm-s-obsidian span.cm-inline-code.cm-hmd-indented-code,
.cm-s-obsidian span.cm-inline-code:not(.cm-formatting):not(.cm-hmd-indented-code)
{
background-color: var(--pre-code-bg);
color: var(--inline-code) !important;
bottom: 0px !important;
}
/* Editor CodeBlock TEXT Appearance */
.cm-s-obsidian pre.HyperMD-codeblock {
font-family: monaco !important;
font-size: var(--font-size-code) !important;
padding: 1px !important;
display: block;
color: var(--code-block) !important;
font-weight: 500;
text-indent: 0px !important;
}
/*remove the border of codeblock in editor */
.HyperMD-codeblock-bg{
border: 0px !important;
}
/*an active line highlight in vim normal mode
.cm-fat-cursor .CodeMirror-activeline .CodeMirror-linebackground{
background-color: var(--text-selection) !important;
} */
/* in-line block for preview */
code{
color: var(--inline-code) !important;
bottom: 0px !important;
}
/* graph css */
.theme-dark .graph-view.color-arrow {
color: #50fa7b;
}
.theme-dark .graph-view.color-fill-tag {
color: #ffb86c;
}
.theme-dark .graph-view.color-fill-attachment {
color: #ff5555;
}
.theme-dark .graph-view.color-fill-unresolved {
color: #6272a4;
}
.search-result-collapse-indicator {
position: absolute;
left: 0;
top: -3px;
color: var(--text-faint);
transition: transform 100ms ease-in-out;
padding: 0px !important;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

@ -0,0 +1,7 @@
用于linux 及类unix下连接sqlserver
```shell
# 查看freetds状态
tsql -C
# 连接数据库
tsql -H 172.16.1.2 -p 1433 -U sa -P atdPriME@Gy9# -D credit
```

@ -242,4 +242,32 @@ select 'exec dbms_stats.unlock_table_stats("'||user||'","'||table_name||'");' fr
## 2.7 创建唯一索引
```sql
create unique index gd_person_edu_uniq on GD_PERSON_EDU(PERSON_ID,EDU_,EDU_CODE,EDU_TYPE,EDU_TYPE_CODE);
```
## 2.8 查询表约束
```sql
-- 查询约束
select * from user_constraints where table_name='EA_DIVISION_CATEGORY_INFO'
-- 删除约束
alter table EA_DIVISION_CATEGORY_INFO drop constraints SYS_C00682807
```
## 2.9 查询锁表
```sql
select object_name, machine, s.sid, s.serial#
from v$locked_object l, dba_objects o, v$session s
where l.object_id  =  o.object_id
and l.session_id = s.sid;
----- 删除锁
alter system kill session 'SID,serial#';
alter system kill session '909,10021';
```
## 2.10 查看执行历史
```sql
-- 根据表名查询执行历史
select * from v$sqlarea a where a.SQL_TEXT like '%JTXY_CREDIT_RECORDS%' order by a.LAST_ACTIVE_TIME desc;
```

@ -107,6 +107,8 @@ dt_whocheckedout_u
## 3.5 查看字符集
```sql
SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage');
select SERVERPROPERTY('Sqlcharsetname');
```
| 字符集编码 | 类型 |
| ---------- | --------------- |

@ -0,0 +1,2 @@
## 一、fullGC
![[Pasted image 20230824061227.png]]

@ -68,4 +68,9 @@ http://220.165.247.94:9580/home admin/atd#mlgs2023
kkFileview [kkFileView演示首页](http://172.16.3.71:8013/)
基投 http://172.16.2.167/saasjtWeb
基投 http://172.16.2.167/saasjtWeb
国道219设计图
https://elvu02.axshare.com/#id=klsy48&p=%E4%BA%BA%E5%91%98%E4%BF%A1%E6%81%AF%E7%99%BB%E8%AE%B0&g=1
.!hz93XBsY

@ -1,18 +0,0 @@
## 一、第一阶段
### 1. 视图、存储过程逆向分析并构建关系图
已完成
### 2. 定时构建
1. 通过apscheduler实现定时任务 (暂不支持动态添加定时任务)
2. stopwatch 实现(完成)
## 二、第二阶段
### 1. 数据库版本差异扫描及版本管理
### 2. 数据比对工具
### 3. 数据探查
### 4. 表结构生成(支持不同类型数据库互转)
### 5. FastApi 开发http查询接口
## 三、第三阶段
### 1. 元查询、展示
### 2. 字段级别血缘关系分析实现
### 3. 字段级别、表级别血缘关系展示

@ -0,0 +1,41 @@
# 一、在service层事务中使用锁失效
```java
//伪代码
@Transactional
public sync Object test(){
xxx()
}
```
上述代码执行过程:
1. spring AOP 生成代理对象,开启事务
2. 线程1获得锁
3. 线程1执行xxx方法
4. 线程1释放锁
5. 事务提交
问题点线程1释放锁之后事务提交之前。由线程2获取锁执行此时线程2查到的数据是脏数据因此出现脏写。
## 解决:
### 1. 将加锁过程上移至controller层
原理是将事务包在锁内
```java
private final Lock lock = new ReentrantLock(false);
public ServiceResult<?> save(@RequestBody CreditRecordsParam params) {
try {
if (lock.tryLock(5, TimeUnit.SECONDS)) {
return creditRecordsService.save(params);
} else {
return ServiceResult.fail("锁获取失败,请重新提交");
}
} catch (Exception e) {
return ServiceResult.fail(e.getMessage());
} finally {
lock.unlock();
}
}
```
### 2. 在service层新建无事务方法
原理和1相同使用无事务方法加锁后调用有事务方法。
Loading…
Cancel
Save