首页 文章 精选 留言 我的

精选列表

搜索[轻量版],共10000篇文章
优秀的个人博客,低调大师

【官宣】EasyTrans 加入 Dromara 开源社区,一个注解搞定数据翻译,减少 30% SQL 代码量

介绍 easy trans适用于3种场景 1 有userId/idCardNo(身份证号码-唯一键场景) 需要 userName,无需联表查询。 2 有gender code 0 需要 男。 3 枚举指定属性给前端 亮点 1 缓存支持 2 跨微服务翻译支持(User和Order 是2个不同微服务,order里面有userId 需要userName) 3 国际化支持 4 多种ORM框架适配 5 多数据源支持 6 集合支持(userIds [1,2,3] 翻译为张三,李四,王五) 使用步骤 技术经理/架构 需要做的事情 1 、先把maven 引用加上(注意,阿里云Maven仓库可能无法获取最新版本,切到腾讯或者使用中央仓库即可。当然也可以选择阿里云有的版本使用) <dependency> <groupId>com.fhs-opensource</groupId> <artifactId>easy-trans-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency> Mybatis plus 扩展: <dependency> <groupId>com.fhs-opensource</groupId> <artifactId>easy-trans-mybatis-plus-extend</artifactId> <version>2.1.5</version> </dependency> JPA 扩展: <dependency> <groupId>com.fhs-opensource</groupId> <artifactId>easy-trans-jpa-extend</artifactId> <version>2.1.5</version> </dependency> Beetl SQL 扩展: <dependency> <groupId>com.fhs-opensource</groupId> <artifactId>easy-trans-beetl-sql-extend</artifactId> <version>2.1.5</version> </dependency> TK Mybatis(通用mapper) 扩展: <dependency> <groupId>com.fhs-opensource</groupId> <artifactId>easy-trans-tk-extend</artifactId> <version>2.1.5</version> </dependency> 如果使用Redis请添加redis的引用(如果之前加过了请不要重复添加) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2、在yaml中添加如下配置 easy-trans: #启用redis缓存 如果不用redis请设置为false is-enable-redis: true #启用全局翻译(拦截所有responseBody进行自动翻译),如果对于性能要求很高可关闭此配置 is-enable-global: true #启用平铺模式 is-enable-tile: true #字典缓存放到redis 微服务模式请开启 dict-use-redis: true # ruoyi相关的请开启 is-enable-map-result: true 3、如果不使用redis,请在启动类加禁用掉redis的自动配置类 @SpringBootApplication(exclude = { RedisAutoConfiguration.class }) 4、初始化字典数据(如果你们项目没字典表请忽略) @Autowired //注入字典翻译服务 private DictionaryTransService dictionaryTransService; //在某处将字典缓存刷新到翻译服务中,以下是demo Map<String,String> transMap = new HashMap<>(); transMap.put("0","男"); transMap.put("1","女"); dictionaryTransService.refreshCache("gender",transMap); 5、微服务配置 A、白名单添加 /easyTrans/proxy/** 保证其不被拦截,RPC trans的时候easytrans会自动调用目标微服务的接口来获取数据。 B、应用之间的认证可以通过filter/interceptor实现,然后自定义RestTemplate 保证easytrans在请求用户服务的时候带上需要认证的参数 普通程序员需要做的事情 pojo 中添加 @Data @Builder @AllArgsConstructor @NoArgsConstructor //实现TransPojo 接口,代表这个类需要被翻译或者被当作翻译的数据源 public class Student implements TransPojo { // 字典翻译 ref为非必填 @Trans(type = TransType.DICTIONARY,key = "sex",ref = "sexName") private Integer sex; //这个字段可以不写,实现了TransPojo接口后有一个getTransMap方法,sexName可以让前端去transMap取 private String sexName; //SIMPLE 翻译,用于关联其他的表进行翻译 schoolName 为 School 的一个字段 @Trans(type = TransType.SIMPLE,target = School.class,fields = "schoolName") private String schoolId; //远程翻译,调用其他微服务的数据源进行翻译 @Trans(type = TransType.RPC,targetClassName = "com.fhs.test.pojo.School",fields = "schoolName",serviceName = "easyTrans",alias = "middle") private String middleSchoolId; // 枚举翻译,返回文科还是理科给前端 @Trans(type=TransType.ENUM,key = "desc") private StudentType studentType = StudentType.ARTS; public static enum StudentType{ ARTS("文科"), SCIENCES("理科"); private String desc; StudentType(String desc){ this.desc = desc; } } } 然后访问你的controller,看返回结果。 easy trans 支持的五种类型 字典翻译(TransType.DICTIONARY) 需要使用者把字典信息刷新到DictionaryTransService 中进行缓存,使用字典翻译的时候取缓存数据源 简单翻译(TransType.SIMPLE) 比如有userId需要userName或者userPo给前端,原理是组件使用MybatisPlus/JPA的API自动进行查询,把结果放到transMap中。 跨微服务翻译(TransType.RPC) 比如订单和用户是2个微服务,但是我要在订单详情里展示订单的创建人的用户名,需要用到RPC翻译,原理是订单微服务使用restTemplate调用用户服务的一个统一的接口,把需要翻译的id传过去,然后用户微服务使用MybatisPlus/JPA的API自动进行查询把结果给订单微服务,然后订单微服务拿到数据后进行翻译,当然使用者只是需要一个注解,这些事情都是由组件自动完成的。 AutoTrans(TransType.AUTO) 还是id翻译name场景,但是使用者如果想组件调用自己写的方法而不通过Mybatis Plus/JPA 的API进行数据查询,就可以使用AutoTrans 枚举翻译(TransType.ENUM) 比如我要把SEX.BOY 翻译为男,可以用枚举翻译。 项目地址 https://gitee.com/dromara/easy_trans 示例项目 https://gitee.com/fhs-opensource/easy_trans_springboot_demo 插件文档 http://easy-trans.fhs-opensource.top/ 已经使用此插件的企业(非完全统计) 1、陕西小伙伴网络科技有限公司 2、中软国际云智能业务集团 3、深圳市易流科技股份有限公司 4、陕西逐道科技有限公司 5、深圳市易联联盟科技有限公司 6、中体数科(北京)体育发展有限公司 7、首都信息发展股份有限公司 8、航天神舟智慧系统技术有限公司 9、小诺V2 https://gitee.com/xiaonuobase/snowy 10、山东大小同屏科技有限公司 11、山东酸橙网络科技有限公司 12、桔子数字科技有限公司 13、成都新潮传媒集团股份有限公司 14、陕西汇每家信息科技有限公司(每一天便利店连锁) 15、江西云牛科技 16、广州彩讯数字技术有限公司 17、江苏誉鸣航智能科技有限公司 18、maku-boot https://gitee.com/makunet/maku-boot 19、北京大美星空科技有限公司

优秀的个人博客,低调大师

美国运营商 T-Mobile:用户数据泄露量约 5000 万,而非 1 亿

8 月 18 日消息 美国运营商 T-Mobile 上周日表示,公司正在调查一个网络论坛帖子提出的指控。该帖子称,逾 1 亿用户的个人数据已经泄露。 近日,T-Mobile 公布了初步调查结果,确认包括已有客户或潜在客户在内的近 5000 万个帐户信息被黑客窃取。 我们的初步分析是,大约 780 万个当前 T-Mobile 后付费客户帐户信息被窃取,以及超过 4000 万条向 T-Mobile 申请信贷的已有客户或潜在客户的记录。泄露的数据中确实包含客户的姓名、出生日期、SSN 以及后付费客户和潜在 T-Mobile 客户的驾照/身份证信息。不过,这些文件中没有任何电话号码、帐号、PIN、密码或财务信息被泄露。 此时,我们还能够确认大约 85 万个活跃的 T-Mobile 预付费客户姓名、电话号码和帐户 PIN 被窃取。我们已经主动重置了这些帐户上的所有 PIN 码以保护这些客户,并向他们发出了通知。 T-Mobile 表示正在采取以下步骤,来挽救本次数据泄露事件: 通过 McAfee 的 ID Theft Protection Service 提供 2 年的免费身份保护服务。 建议所有 T-Mobile 后付费客户通过线上或拨打电话 611 致电客户服务团队,来主动更改 PIN。 为后付费客户提供帐户接管保护功能,从而使客户帐户更难以被欺诈性地移植和窃取。 周三晚些时候,将发布一个特殊的网页,提供一站式信息和解决方案,以帮助客户采取措施进一步保护自己。 T-Mobile 表示将继续调查,目前正就此事与执法机构合作。

优秀的个人博客,低调大师

Erupt 1.6.13 发布,纯注解开发,超低代码量,零前端代码,零CURD,通用后台管理框架

本次更新内容 🌟 @Drill无需配置code参数,可根据注解的hashCode自动生成 🌟 @RowOperation无需配置code参数,可根据注解的hashCode自动生成 🌟 一对多新增支持默认参数获取 🌟 @EruptRecordOperate支持非登录情况下请求信息记录 🌟 优化过滤器性能细化过滤颗粒度 🌟 优化http消息转换器 🐞 修复代码生成器一对多引用组件,生成的代码不正确bug 🐞 修复一对多新增BOOLEAN类型组件不能校验空数据的bug 🐞 修复多对一引用,label多级数据获取时出现field not found问题 🐞 修复多数据源数据无法删除的bug Erupt Framework Erupt 是一个低代码全栈类框架,它使用Java 注解动态生成页面以及增、删、改、查、权限控制等后台功能。 零前端代码、零 CURD、自动建表,仅需一个类文件+简洁的注解配置,快速开发企业级 Admin 管理后台。 提供企业级中后台管理系统的全栈解决方案,大幅压缩研发周期,专注核心业务。 Github 码云 后端源码 https://github.com/erupts/erupt https://gitee.com/erupt/erupt 前端源码 https://github.com/erupts/erupt-web https://gitee.com/erupt/erupt-web 项目官网:www.erupt.xyz 特性 | Features 自动建表:表结构自动生成,无需手动建表 易于上手:会简单的Spring Boot基础知识即可 使用简单:仅需了解@Erupt与@EruptField两个注解即可上手开发 代码简洁:仅需一个.java文件, template、controller、service、dao 都不需要创建 功能强大:动态条件处理,逻辑删除,LDAP,自定义登录逻辑,RedisSession,操作日志等 多数据源:支持:MySQL、Oracle、SQL Server、PostgreSQL、H2,甚至支持MongoDB 高扩展性:支持自定义数据源实现、自定义登录逻辑、动态权限管理、生命周期函数、自定义 OSS 大量组件:滑动输入、时间选择、一对多、图片上传、代码编辑器、自动完成、树、多对多、地图等23类组件 丰富展示:普通文本、二维码、链接、图片、HTML、代码段、iframe、swf等 低侵入性:几乎所有功能都围绕注解而展开,不影响Spring Boot其他功能或三方库库的使用 前后端分离:后端与前端可分开部署 响应式布局:支持PC端手机端等各种规格的设备中使用 自定义页面:支持自定义页面,自定义弹出层,且支持:原生H5 / Freemarker / Thymeleaf等方式渲染 前端零代码:前端布局自动构建,一行前端代码都不用写 无需二次开发:仅需引用 jar 包即可 ! 演示截图 | Screenshot 为什么要做 Erupt ? 虽然近些年来代码生成器成了后台开发的新宠,但它真的是后台开发的最优解吗? 代码生成器的本质还是生成繁琐的前端与后台代码,一旦修改后期生成的代码很难合并,想想 Mybatis-Generator,基本上就是一次性的东西,虽然减轻了部分工作,可解决方式并非最佳。 开发后台管理系统大部分情况下只想做个普通的增删改查界面,用于数据管理,类似下面这种: @Erupt( name = "简单的例子", power = @Power(importable = true, export = true) ) @Table(name = "demo_simple") @Entity public class Simple extends BaseModel { @EruptField( views = @View(title = "文本"), edit = @Edit(title = "文本", notNull = true, search = @Search) ) private String input; @EruptField( views = @View(title = "数值", sortable = true), edit = @Edit(title = "数值", search = @Search) ) private Float number; @EruptField( views = @View(title = "布尔"), edit = @Edit(title = "布尔", search = @Search) ) private Boolean bool; @EruptField( views = @View(title = "时间"), edit = @Edit(title = "时间", search = @Search(vague = true)) ) private Date date; @EruptField( views = @View(title = "滑动条"), edit = @Edit(title = "滑动条", type = EditType.SLIDER, search = @Search, sliderType = @SliderType(max = 90, markPoints = {0, 30, 60, 90}, dots = true)) ) private Integer slide; } 这个界面虽然用 Vue + Ant Design + SSM 也能做出个大概,但仔细观察会发现它有大量细节功能如: 有按钮可以查询、新增、批量删除、excel 导入导出 可以对数据做筛选、隐藏某列、按某列排序 表格有分页与汇总,可预览单行数据 多种组件、有校验规则 全部实现这些仅前端就需要大量的代码,后端的接口与业务逻辑更不在少数。 但可以看到,用 erupt 只需要30几行代码就能完成, 完全不需要了解Angular / React / Vue / Jquery 而且不需要了解JavaScript / HTML / CSS 甚至不需要了解Spring MVC / Mybatis / SQL 即便没学过 erupt 也能猜到大部分配置的作用,只需要简单配置就能完成所有后台页面开发。 这正是建立 erupt 的初衷,对于大部分常用页面,应该使用最简单的方法来实现,甚至不需要学习各种框架和工具,专注核心业务,告别 996,省下的时间做自己喜欢做的事,从此不再因为繁琐的后台开发而焦头烂额。 在线体验 | Demo 演示地址:https://www.erupt.xyz/demo 账号密码:guest / guest 支持主流 4 款现代浏览器,以及 Internet Explorer 11+,可直接运行在 Electron 等基于 Web 标准的环境上 Edge / IE Firefox Chrome Safari Opera Electron Edge 16 / IE 11+ 522 57 11 44 Chromium 57 相关链接

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册