1.沉浸式英语翻译插件安装:
如何安装沉浸式翻译
来源:https://immersive-translate.owenyoung.com/
桌面端
Edge 浏览器
已上架 Edge 商店,点击这里 安装
https://microsoftedge.microsoft.com/addons/detail/amkbmndfnliijdhojkpoglbnaaahippg
类 Chrome 浏览器
已上架 Chrome 商店, 点击这里 安装
https://chrome.google.com/webstore/detail/immersive-translate/bpoadfkcbjbfhfodiogcnhhhpibjhbnh
Firefox
已上架 Firefox Addon 商店,点击这里 安装
https://addons.mozilla.org/zh-CN/firefox/addon/immersive-translate/
油猴脚本地址
油猴脚本地址: https://immersive-translate.owenyoung.com/immersive-translate.user.js , 在已安装油猴扩展的浏览器中打开该地址,即可安装
https://immersive-translate.owenyoung.com/immersive-translate.user.js
苹果 iOS/macOS 系统
使用 Safari 浏览器,桌面版和移动版都支持,需配合油猴插件安装,以 Userscripts (https://apps.apple.com/us/app/userscripts/id1463298887)为例:
安装 Userscripts safari 插件(https://itunes.apple.com/us/app/userscripts/id1463298887),并授予其 “始终允许访问任何网站” 的权限。
安装本扩展的 油猴脚本(https://immersive-translate.owenyoung.com/immersive-translate.user.js)(在 Safari 浏览器中打开该链接即可看到安装页面)
安装后,打开任意网页刷新一下,在网页右侧会出现本扩展的浮动窗口。(如果遇到没有出现浮窗的问题,建议多刷新一下网页,或者强制重启一下 Safari,以使其生效)
如果安装有困难,可以点击参考 YouTube 视频教程,抖音视频教程 。
https://v.douyin.com/B4aeGYt/
安卓端 (Android)
火狐浏览器
下载 Firefox 最新版本 版本
在 Firefox 的附加组件推荐里找到 Tamper Monkey,安装
安装本扩展的 油猴脚本 (在 Firefox Beta 浏览器中打开该链接即可看到安装页面)
安装后,打开任意网页,在右侧会出现沉浸式翻译扩展的浮窗图标。
https://play.google.com/store/apps/details?id=org.mozilla.firefox&hl=en_US&gl=US
https://www.tampermonkey.net/
https://immersive-translate.owenyoung.com/immersive-translate.user.js
其他浏览器
比如 Kiwi 浏览器,狐猴浏览器等,只要支持油猴脚本的浏览器,都可以通过油猴脚本安装本扩展。如果支持 Chrome 商店,也可以直接安装商店版本。
油猴脚本 GreasyFork 地址
你也可以通过 Greasy Fork 商店安装油猴脚本,但是缺点是 iOS 的 Userscripts油猴扩展似乎不支持 Greasyfork 托管的脚本的自动更新,因为 GreasyFork 不允许填写 updateURL 属性。
手动安装 (追踪最新开发特性)
手动安装的优点在于无需等待商店审核,可以立即体验到最新开发版本的功能。
下载安装包。使用 git clone 将仓库下载到本地:git clone https://github.com/immersive-translate/next-immersive-translate.git。(如果你不习惯命令行操作,你可以直接在 发布页面 下载压缩包。此外,你也可以通过下载 Github 桌面客户端 将该 Github 仓库 同步到本地。)
类 Chrome 浏览器安装:(1) 在地址栏输入:chrome://extensions,打开扩展管理窗口;(2) 打开“开发人员模式”,选择“加载解压缩的扩展”,选择 dist/chrome 载入。
Firefox 浏览器安装:(1) 在地址栏输入: about:debugging#/runtime/this-firefox,打开扩展管理窗口;(2) 临时载入附加组件,选择 dist/firefox/manifest.json 即可。
更新方法:如果你使用 git 下载的安装包,那么使用 git pull 拉取最新文件,然后在扩展管理页面选择 Reload 即可。如果你在 发布页面 下载的安装包,那么还在这里下载最新的版本替换旧的即可。 作者:BA7MRY https://www.bilibili.com/read/cv22205732 出处:bilibili
2. logback.xml配置文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<springProperty scope="context" name="logName" source="spring.application.name" defaultValue="localhost.log"/>
<property name="logBase" value="./logs"/>
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logBase}/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logBase}/info/info-%d{yyyy-MM-dd}.gz</fileNamePattern>
<totalSizeCap>100GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
<append>true</append>
</appender>
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logBase}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${logBase}/error/error-%d{yyyy-MM-dd}.gz</FileNamePattern>
<totalSizeCap>100GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logBase}/warn.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${logBase}/warn/warn-%d{yyyy-MM-dd}.gz</FileNamePattern>
<totalSizeCap>100GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO"/>
<appender-ref ref="ERROR"/>
<appender-ref ref="WARN"/>
</root>
<logger name="com.jee" level="DEBUG" />
<logger name="com.jee" level="INFO" />
</configuration>
3. maven引入外部Jar包注意事项:

<dependency>
<groupId>com.unicom</groupId>
<artifactId>api-sign-decoder</artifactId>
<version>1</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/api-sign-decoder-1.0-SNAPSHOT.jar</systemPath>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
<fork>true</fork>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
3. idea代码模板注释:
*
* @params: $param$
* @return $return$
* @author yming wang
* @date $date$ $time$
* @desc
*/
#time
time()
#param
groovyScript("def result = '';def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] != '')result+='* @param ' + params[i] + ((i < params.size() - 1) ? '\\r\\n ' : '')}; return result == '' ? null : '\\r\\n ' + result", methodParameters())
#date
date()
#return
groovyScript("return \"${_1}\" == 'void' ? null : \"${_1}\"", methodReturnType())

4. a标签携带token下载文件
<!DOCTYPE html>
<html>
<head></head>
<body>
<button onclick="download()">点击下载</button>
</body>
<script>
function download(){
debugger;
let consturl = "http://localhost:4502/idc-electric-charge/confirmation?preview=1&workId=89";
var xhr = new XMLHttpRequest();
xhr.open("get", consturl, true);
xhr.responseType = "blob";
xhr.setRequestHeader("Authorization","Bearer Cookies.get(Admin-Token)");
xhr.onload = function() {
debugger;
if(xhr.status==200){
let blob = new Blob([this.response], {
type: 'application/zip' });
var a = document.createElement("a")
var url = window.URL.createObjectURL(blob)
a.href = url
a.download = '签名导出.pdf'
}
a.click()
window.URL.revokeObjectURL(url)
}
xhr.send();
}
</script>
</html>
5. tomcat启动慢配置随机数
VM Options 配置参数 -Djava.security.egd=file:/dev/urandom
6Java的Web项目配置
