这 9 个 Java 开源项目 yyds
码农突围
共 14539字,需浏览 30分钟
· 2021-12-01
点击上方“码农突围”,马上关注
这里是码农充电第一站,回复“666”,获取一份专属大礼包 真爱,请设置“星标”或点个“在看
1. Sa-Token
// 在登录时写入当前会话的账号id
StpUtil.login(10001);
// 然后在需要校验登录处调用以下方法:
// 如果当前会话未登录,这句代码会抛出 `NotLoginException` 异常
StpUtil.checkLogin();
@SaCheckPermission("user:add")
@RequestMapping("/user/insert")
public String insert(SysUser user) {
// ...
return "用户增加";
}
// 使账号id为 10001 的会话强制注销登录
StpUtil.logoutByLoginId(10001);
StpUtil.login(10001); // 标记当前会话登录的账号id
StpUtil.getLoginId(); // 获取当前会话登录的账号id
StpUtil.isLogin(); // 获取当前会话是否已经登录, 返回true或false
StpUtil.logout(); // 当前会话注销登录
StpUtil.logoutByLoginId(10001); // 让账号为10001的会话注销登录(踢人下线)
StpUtil.hasRole("super-admin"); // 查询当前账号是否含有指定角色标识, 返回true或false
StpUtil.hasPermission("user:add"); // 查询当前账号是否含有指定权限, 返回true或false
StpUtil.getSession(); // 获取当前账号id的Session
StpUtil.getSessionByLoginId(10001); // 获取账号id为10001的Session
StpUtil.getTokenValueByLoginId(10001); // 获取账号id为10001的token令牌值
StpUtil.login(10001, "PC"); // 指定设备标识登录,常用于“同端互斥登录”
StpUtil.logoutByLoginId(10001, "PC"); // 指定设备标识进行强制注销 (不同端不受影响)
StpUtil.openSafe(120); // 在当前会话开启二级认证,有效期为120秒
StpUtil.checkSafe(); // 校验当前会话是否处于二级认证有效期内,校验失败会抛出异常
StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号
/**
* 高德地图服务客户端接口
*/
@BaseRequest(baseURL = "http://ditu.amap.com")
public interface Amap {
/**
* 根据经纬度获取详细地址
* @param longitude 经度
* @param latitude 纬度
* @return 详细地址信息
*/
@Get("/service/regeo")
Map getLocation(@Query("longitude") String longitude, @Query("latitude") String latitude);
}
......
Amap amap = Forest.client(Amap.class);
// 发送请求查询经纬度
Map locationInfo = amap.getLocation("32.1242832", "56.3290434");
// 直接将 MyUserInfo 转换成 JSON
// 将服务端响应返回的 JSON 数据转换成 Result类对象
@Post("http://localhost:8080/user")
ResultcreateUser(@JSONBody MyUserInfo user);
3. LiteFlow
//这里普通组件
@LiteflowComponent(id = "a", name = "组件A描述")
public class ACmp extends NodeComponent {
@Override
public void process() {
//do your business
}
}
//这是条件组件
@LiteflowComponent(id = "b", name = "组件B描述")
public class BCondCmp extends NodeCondComponent {
@Override
public String processCond() {
//do your business
return "e";
}
}
xml version="1.0" encoding="UTF-8"?>
<flow>
<chain name="chain1">
<then value="a,b(c|d|e)"/>
<then value="sub_chain"/>
chain>
<chain name="sub_chain">
<when value="f,g,h"/>
<then value="j,k" />
chain>
flow>
@LiteflowComponent(id = "a", name = "组件A描述")
public class ACmp extends NodeComponent {
@Override
public void process() {
Slot slot = this.getSlot();
//通过对slot的getData,setData,或者存取你自己扩展的slot属性
}
}
xml version="1.0" encoding="UTF-8"?>
<flow>
<nodes>
<node id="s1" name="普通脚本" type="script">
def a=3;
def b=2;
slot.setData("s1",a*b);
]]>
node>
<node id="s2" name="条件脚本" type="cond_script">
count = slot.getData("count");
if(count > 100){
return "a";
}else{
return "b";
}
]]>
node>
nodes>
<chain name="chain1">
<then value="a,b,c,s1"/>
chain>
<chain name="chain2">
<then value="d,s2(a|b)"/>
chain>
flow>
4. JPom
创建、修改、删除项目、Jar 包管理; 实时查看控制台日志、备份日志、删除日志、导出日志; 在线构建项目发布项目一键搞定; 多节点管理、多节点自动分发; 在线 SSH 终端,并且有终端日志和禁用命令; 实时监控项目状态异常自动报警; CPU、内存监控、导出堆栈信息、查看项目进程端口、服务器状态监控; 多用户管理,用户项目权限独立(上传、删除权限可控制),完善的操作日志; 系统路径白名单模式,杜绝用户误操作系统文件; 在线管理 Nginx 配置文件、SSL 证书文件。
yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Agent
备用地址 yum install -y wget && wget -O install.sh https://cdn.jsdelivr.net/gh/dromara/Jpom/docs/install.sh && bash install.sh Agent
支持自动安装 JDK 环境 yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Agent jdk
yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Server
备用地址 yum install -y wget && wget -O install.sh https://cdn.jsdelivr.net/gh/dromara/Jpom/docs/install.sh && bash install.sh Server
支持自动安装 JDK 环境。 yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Server jdk
支持自动安装 JDK 和 Maven 环境。 yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Server jdk+mvn
5. Cubic
兼容性:整体监控不管你是 IDC、ECS、Docker 部署,都可完美兼容; 易用:无需任何配置,开箱即用,基于 agent 无侵入接入,升级应用端无感知; 强大:支持对应用的基础监控、堆栈监控、线程池监控等等; 高扩展:提供良好的扩展接口,给你自主选择。
6. Sureness
于是乎 Sureness 诞生了,我们希望能解决这些问题。提供一个面向 REST API、无框架依赖、可以动态修改权限、多认证策略、更快速度、易用易扩展的认证鉴权框架。
面向 REST API 的认证鉴权,基于 RBAC(用户-角色-资源)主要关注于对 API 的安全保护。无特定 Web 框架依赖,开箱即用(已有 SpringBoot、Quarkus、Javalin、Ktor、Micronaut、Jfinal、Solon 等集成样例); 支持动态修改权限配置(动态修改配置每个 API 的访问权限)
支持 Websocket 、主流 HTTP 容器 Servlet、JAX-RS、Spring Reactive;支持多种认证策略 JWT、Basic Auth、Digest Auth ... 可扩展自定义认证方式; 基于改进的字典匹配树拥有的高性能; 良好的扩展接口、样例和文档,帮助急速理解、扩展与使用 Sureness 的低配置; 易扩展,不耦合其他框架,希望能对系统多场景快速安全的保护。
[x] Sureness 集成 Spring Boot 样例(配置文件方案)sample-bootstrap [x] Sureness 集成 Spring Boot 样例(数据库方案)sample-tom [x] Sureness 集成 Quarkus 样例 sample-quarkus [x] Sureness 集成 Javalin 样例 sample-javalin [x] Sureness 集成 Ktor 样例 sample-ktor [x] Sureness 集成 Spring Webflux 样例 sample-spring-webflux [x] Sureness 集成 Micronau t样例 sample-micronaut [x] Sureness 集成 MicroProfile 样例 sample-microProfile [x] Sureness 集成 Jfinal 样例 sample-jfinal [x] Sureness 集成 Solon 样例 sample-solon [x] Sureness 集成 Spring Gateway 样例 sample-spring-gateway [x] Sureness 集成 Zuul 样例 sample-zuul [x] Sureness 集成 Session 样例 sureness-session [x] Sureness 集成分布式缓存 Session 样例 sureness-redis-session [x] More samples todo
7. TLog
通过对日志打标签完成轻量级微服务日志追踪; 提供三种接入方式:javaagent 完全无侵入接入,字节码一行代码接入,基于配置文件的接入; 对业务代码无侵入式设计。使用简单,10 分钟即可接入; 支持常见的 log4j、log4j2、logback 三大日志框架,并提供自动检测,完成适配; 支持 Dubbo、Dubbox、Spring Cloud 三大 RPC 框架; 支持 Spring Cloud Gateway 和 Soul 网关; 适配 HttpClient 和 Okhttp 的 HTTP 调用标签传递; 支持三种任务框架,JDK 的 TimerTask、Quartz、XXL-JOB; 支持日志标签的自定义模板的配置,提供多个系统级埋点标签的选择; 支持异步线程的追踪,包括线程池,多级异步线程等场景; 几乎无性能损耗,快速稳定。经过压测,损耗在0.01%。
public void simpleDemo() throws Exception {
//合成器
ImageCombiner combiner = new ImageCombiner("http://xxx.com/image/bg.jpg", OutputFormat.JPG);
//加图片元素
combiner.addImageElement("http://xxx.com/image/product.png", 0, 300)
.setAlpha(.8 f) //透明度(0.0~1.0)
.setRotate(45) //旋转(0~360)
.setBlur(20); //高斯模糊(1~100);
//加文本元素
combiner.addTextElement("周末大放送", 0, 150, 1400)
.setCenter(true) //居中绘制(会忽略x坐标,改为自动计算)
.setColor(Color.Red) //颜色
//执行图片合并
combiner.combine();
//可以获取流(并上传oss等)
InputStream is = combiner.getCombinedImageStream();
//也可以保存到本地
combiner.save("d://image.jpg");
9. MaxKey
提供标准的认证接口以便于其他应用集成 SSO,安全的移动接入,安全的 API、第三方认证和互联网认证的整合; 提供用户生命周期管理,支持 SCIM 2 协议,基于 Apache Kafka 代理,通过连接器(Connector)实现身份供给同步; 认证中心具有平台无关性、环境多样性。支持 Web、手机、移动设备等。如 Apple iOS、Andriod 等。将认证能力从 B/S 到移动应用全面覆盖; 多种认证机制并存,各应用系统可保留原有认证机制,同时集成认证中心的认证;应用具有高度独立性,不依赖认证中心,又可用使用认证中心的认证,实现单点登录; 基于 Java EE 平台,采用 Spring、MySQL、Tomcat、Redis、Apache Kafka 等开源技术,微服务架构,扩展性强; 开源、安全、自主可控,许可证 Apache 2.0 License & MaxKey 版权声明。
最后
-End-
最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!
面试题
】即可获取评论
轻松掌握开源项目的二次开发技巧
大厂技术 高级前端 Node进阶点击上方 程序员成长指北,关注公众号回复1,加入高级Node交流群本文作者:@方长_beezen 原文链接:https://juejin.cn/post/7358647992608489535前言随着软件行业的迅速
程序员成长指北
0
人工智能周刊#18:微软发布手机端大模型、Llama 3 中文模型列表、苹果开源新项目、
主打尊重隐私的搜索引擎 duckduckgo,也推出了 ai chat 服务,可以使用 chatgpt 或者 claude机器学习周刊:关注 Python、机器学习、深度学习、大模型等硬核技术本期目录:1、Qwen1.5-110B:Qwen1.5 系列的首个千亿参数开源模型2、苹果开源
机器学习算法与Python实战
0
豆瓣9.7,这部Java神作第3版重磅上市!
文末赠书Java 程序员们开年就有重磅好消息,《Effective Java 中文版(原书第 3 版)》要上市啦!该书的第1版出版于 2001 年,当时就在业界流传开来,受到广泛赞誉。时至今日,已热销近20年,本书第 3 版已是 Java 程序员的必读神书,被誉为“Java 四大名著之一”,甚至连
编码之外
0
微软开源MS-DOS操作系统源码,冲到GitHub第一了!
大家好,我是轩辕。这两天逛GitHub的时候,突然发现一个叫 MS-DOS的项目冲到Trending榜首了!定睛一看,微软官方啊,搜了一下才知道,原来前两天,微软把MS-DOS 4.0系统开源了!关于这个系统,估计现在很多程序员都不知道了,或者只在古老的教科书上看过这玩意儿。MS-DOS,全称为Mi
编程技术宇宙
6
五一抢票难,Github上这几个Python项目,你可以试试
又到五一长假啦(虽然其实就放了1天),大家是打算家里蹲or出去玩,又或者是在公司加班呢...今天给大家介绍三个和12306相关的项目,看看你是否用得上。/01/ py12306py12306购票助手,顾名思义,12306买票的~需要在python 3.6以上版本运行程序。1. 安装依赖gi
Crossin的编程教室
0
真心建议大家搞个香港身份,再不冲就晚了
香港一直有“互联网荒漠”之称,疫情这三年,香港开始大力扶持互联网 科技工程 /IT产业,公布了《香港智慧城市蓝图》。目前规划已经覆盖到交通、医疗、经济、教育、环境等多个方面。目前在智能制造,5G网络、智慧城市等领域人才,通过香港优才计划入境都极具优势。什么是香港优才计划优才计划,全称优秀人才入境计划
公子龙
0
好甜!这颜值身材,妹妹太会撩了
好甜!天赋优势尽显,这身材和颜值也是杠杠的!有这样的女朋友,请把我焊在家里!杨幂体操服写真,火辣身材尽显眼底兼具性感和可爱,腰臀比十分夸张,堪称顶级身材!空姐制服跳舞,还有女仆装,顶的住吗?二次元老婆萌妹子合集https://pan.xunlei.com/s/VNsEXBRo5po8a
逆锋起笔
0
Open-Sora全面开源升级:支持16s视频生成和720p分辨率
机器之心发布 机器之心编辑部Open-Sora 在开源社区悄悄更新了,现在单镜头支持长达16秒的视频生成,分辨率最高可达720p,并且可以处理任何宽高比的文本到图像、文本到视频、图像到视频、视频到视频和无限长视频的生成需求。我们来试试效果。生成个横屏圣诞雪景,发b站再生成个竖屏,发抖音还能
机器学习算法与Python实战
0