Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
Lorchr committed Jul 28, 2024
1 parent bad3a78 commit cd19f67
Show file tree
Hide file tree
Showing 6 changed files with 103 additions and 138 deletions.
24 changes: 14 additions & 10 deletions diy/homelab.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
1. [Awesome-Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) 自建家庭服务
2. [Aquar-Home](https://github.com/firemakergk/aquar-home)
3. [Debian-HomeNAS](https://github.com/kekylin/Debian-HomeNAS)
4. []()


### 基础类
Expand All @@ -15,22 +14,27 @@
4. [Redis](https://github.com/redis/redis) 键值存储的非关系数据库
5. [Gitlab](https://github.com/gitlabhq/gitlabhq) 私有代码仓库
6. [Minio](https://github.com/minio/minio) 私有文件管理服务
7. []()


### 网络类
1. [WireGuard](https://github.com/angristan/wireguard-install)
2. [Tailscale](https://github.com/tailscale/tailscale)
3. [ZeroTier](https://github.com/zerotier/ZeroTierOne)
4. [Netbird](https://github.com/netbirdio/netbird)


### 安全类
1. [VaultWarden](https://github.com/dani-garcia/vaultwarden)
2. [BitWarden](https://github.com/bitwarden/server)


### 面板类
1. [1Panel](https://github.com/1Panel-dev/1Panel) Linux服务器运维面板
2. [SunPanel](https://hub.docker.com/r/hslr/sun-panel) 个人开源NAS面板
3. []()


### 编程类
1. [IT-Tools](https://github.com/CorentinTh/it-tools) 聚合常用编程工具
2. []()


### 文档类
Expand All @@ -43,22 +47,23 @@
8. [Trilium](https://github.com/zadam/trilium)
9. [Memos](https://github.com/usememos/memos)


### 相册类
1. [Photoprism](https://github.com/photoprism/photoprism)
2. [Immich](https://github.com/immich-app/immich)
3. []()


### 影音类
1. [NasTools](https://github.com/NAStool/nas-tools) 视频自动下载
2. [Jellyfin](https://github.com/jellyfin/jellyfin)
3. []()


### 下载类
1. [qBittorrent](https://github.com/qbittorrent/qBittorrent)
2. [Aria2](https://github.com/aria2/aria2)
3. [Transmission](https://github.com/transmission/transmission)
4. [jackett](https://github.com/Jackett/Jackett)
5. []()


### 网盘类
1. [Alist](https://github.com/alist-org/alist) Webdev网盘聚合工具
Expand All @@ -67,20 +72,19 @@
4. [FileRun](https://github.com/filerun/docker)
5. [Seafile](https://github.com/haiwen/seafile)
6. [Clouddrive](https://github.com/sublaim/clouddrive2)
7. []()


### 备份类
1. [Syncthing](https://github.com/syncthing/syncthing) 多端支持的文件同步工具
2. [Rclone](https://github.com/rclone/rclone)
3. [Rsync](https://github.com/RsyncProject/rsync)
4. [Duplicati](https://github.com/duplicati/duplicati) 一个开源的文件加密备份工具
5. []()


### 其他类
- [chatgpt-on-wechat](https://github.com/zhayujie/chatgpt-on-wechat) 集成ChatGPT到企业微信
- [requestrr](https://github.com/darkalfx/requestrr) 一个开源的聊天机器人
- []()


## 需要解决的问题
1. 来电自启 Weak-On-Lan
Expand Down
2 changes: 1 addition & 1 deletion diy/network/10-Tailscale.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ $ wget https://github.com/juanfont/headscale/raw/main/config-example.yaml -O /et

- 如果暂时用不到 DNS 功能,可以先将 magic_dns 设为 false。

- server_url 设置为 http://<PUBLIC_IP>:8080,将 <PUBLIC_IP> 替换为公网 IP 或者域名。
- server_url 设置为 `http://<PUBLIC_IP>:8080`,将 `<PUBLIC_IP>` 替换为公网 IP 或者域名。

- 可自定义私有网段,也可同时开启 IPv4 和 IPv6:

Expand Down
2 changes: 1 addition & 1 deletion diy/network/11-Docker-Deploy-Tailscale-Derper-Headscale.md
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ func (b *backend) Start(notify func(n ipn.Notify)) error {
修改为:
- 其中<公网IP地址>修改为Headscale服务器的地址。
- 其中`<公网IP地址>`修改为Headscale服务器的地址。
```go
func (b *backend) Start(notify func(n ipn.Notify)) error {
Expand Down
17 changes: 13 additions & 4 deletions docs/zh-cn/java/apt/How-To-Use-APT.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ public synchronized void init(ProcessingEnvironment processingEnv)

init方法可以让我们处理器的初始化阶段,通过ProcessingEnvironment来获取一些帮助我们来处理注解的工具类

```java
// Element操作类,用来处理Element的工具
Elements elementUtils = processingEnv.getElementUtils();

Expand All @@ -80,13 +81,21 @@ Messager messager = processingEnv.getMessager();

// 文件工具类,常用来读取或者写资源文件
Filer filer = environment.getFiler();
```

```java
public Set<String> getSupportedAnnotationTypes()
```
getSupportedAnnotationTypes方法用来指定需要处理的注解集合,返回的集合元素需要是注解全路径(包名+类名)

```java
public SourceVersion getSupportedSourceVersion()
```
getSupportedSourceVersion方法用来指定当前正在使用的Java版本,一般返回SourceVersion.latestSupported()表示最新的java版本即可

```java
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv)
```

process是注解处理器核心方法,注解的处理和生成代码或者配置资源都是在这个方法中完成。

Java官方文档给出的注解处理过程的定义:注解处理过程是一个有序的循环过程。在每次循环中,一个处理器可能被要求去处理那些在上一次循环中产生的源文件和类文件中的注解。
Expand Down Expand Up @@ -132,9 +141,9 @@ public class AutoComponentProcessor extends AbstractComponentProcessor {
```

3、注册处理器
因为处理器是通过SPI机制实现,因此它的注册,其实就是在META-INF/services底下创建javax.annotation.processing.Processor文件,文件内容为自定义的处理器类
因为处理器是通过SPI机制实现,因此它的注册,其实就是在`META-INF/services`底下创建`javax.annotation.processing.Processor`文件,文件内容为自定义的处理器类

com.github.lybgeek.apt.process.AutoComponentProcessor
`com.github.lybgeek.apt.process.AutoComponentProcessor`
不过我们可以在项目的POM中引入GAV
```xml
<dependency>
Expand Down Expand Up @@ -185,7 +194,7 @@ com.github.lybgeek.test.service.EchoService
com.github.lybgeek.test.service.HelloService
```

接下来就是解析lybgeek.components,并通过spring提供的扩展点和API进行bean注册,因为这块内容不属于APT的内容,本文就不再论述,对这部分感兴趣的朋友,可以通过文末提供的demo链接查看
接下来就是解析`lybgeek.components`,并通过spring提供的扩展点和API进行bean注册,因为这块内容不属于APT的内容,本文就不再论述,对这部分感兴趣的朋友,可以通过文末提供的demo链接查看

## 总结
在未接触APT之前,我们可能会通过反射去解析注解并实现功能,接触APT之后,我们又多了额外一种比反射更能提升性能的实现实现。不过任何东西都有其适用场景,APT主要还是用在编译期帮我们生成代码或者配置等,如果我们项目要使用APT生成的代码,有可能还是需要通过反射处理。
Expand Down
Loading

0 comments on commit cd19f67

Please sign in to comment.