首页 文章 精选 留言 我的

精选列表

搜索[快速模式],共10000篇文章
优秀的个人博客,低调大师

如何快速上手 angular.js

摘要:angular.js 准确的来说,应该不是一个框架,是一个 js 库,一个依赖于 jQuery 的进一步封装,去除繁琐的 DOM 操作,使用数据驱动的 MVC 模块化库。 哎,很难受,连续两个大坑,都被我碰上了,以前没有写过 angular,还以为 angular 就是跟 vue, react 一样的框架,没想到 angular.js 跟 angular2 ,竟然没有半毛钱关系,我是服了。竟然是一个老古董项目。 只能退一步想了,先把基础地基打好了,后面再深入框架原理。 还是按照三大步骤: what: 什么是 angular.js why: 为什么要使用 angular.js how: 如何使用 angular.js 什么是 angular.js angular.js 准确的来说,应该不是一个框架,是一个 js 库,一个依赖于 jQuery 的进一步封装,去除繁琐的 DOM 操作,使用数据驱动的 MVC 模块化库。 这里扯到 MVC 这个词语,也不是很清楚,我自己的理解 M 其实就是 Module 模块,一个 .html 就是一个模块, V 其实就是我们 .html 里面那些 DOM 元素, C 就是我们用来操作 V 那些 js 脚本。 我大概画了一个简单的草图: 不知道对不对,如果不对,恳请各位大佬,提出宝贵的建议,让我有更大的提升,谢谢。 为什么要使用 angular.js 额,我必须要吐槽一下,为毛还要使用 angular.js,为毛不使用 angular2,好歹让我入门 ts 也好啊,好了,既来之,则安之。 用这个 js 库的一个关键原因就是因为可以去除繁琐的 DOM 操作。 使用数据驱动视图的方式,进行开发,非常高效。 如何使用 angular.js ng-app 加载一个入口应用模块 var app = angular.module('ngApp', []); 有点类似,Vue 项目的 let app = new Vue(); ng-init 初始化数据, <div ng-app="ngApp" ng-init="message='hello world'"></div> 有点类似 Vue 中的 data() 属性。 ng-controller 控制器 <div ng-app="ngApp" ng-init="message='hello world'" ng-controller="ngController"></div> <script type="text/javascript"> var app = angular.module('ngApp', []) var controller app.controller('ngController', function($scopr) {}) </script> ng-bind 数据绑定 有点类似 Vue 中的 v-bind ng-model 数据双向绑定 有点类似 Vue 中的 v-model <input type="text" ng-model="message"> ng-repeat 数据循环 有点类似 Vue 中的 v-for <div ng-app="" ng-init="names=['Jani','Hege','Kai']"> <p>使用 ng-repeat 来循环数组</p> <ul> <li ng-repeat="x in names"> {{ x }} </li> </ul> </div> ng-if 为HTML增加选择功能,只有在表达式值为true时,当前元素才添加到DOM树 有点类似 Vue 中的 v-if ng-show 有点类似 v-show ng-src 有点类似 :src ng-click 有点类似 @click ng-style 有点类似 :style ng-class 有点类似 :class ng-show/ng-hide 有点类似 jq 的中 show(),hide() ng-disabled 有点类似 :disabled ng-checked 有点类似 :checked $scope 有点类似 Vue 中的 data() 属性 filter 过滤器,有点类似 Vue 中的 filter $scope.$watch 有点类似 Vue 中的 watch 属性 今天就先到这里吧,其实应该是有些先入为主了,因为其实 Vue 是学了 angular.js 的思想的。 这里有一个很重要的思考方式就是迁移思考。 点击关注,第一时间了解华为云新鲜技术~

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

高效 SIEM 用例快速指南

成功设置安全运营中心 (SOC) 的环节之一是定义 SIEM 用例。 用例能够在安全分析师和威胁监控目标上提供帮助和支持。什么是用例?用例可以是 SIEM 工具中多个技术规则的组合,也可以是多个规则中的操作组合,具体视需求而定。用例能够将业务威胁转换为 SIEM 技术规则,然后检测可能的威胁并将警报发送给 SOC。建立和定义正确的用例有助于区分真实警报和误报。用例还会根据当前或历史活动来给出建议操作,这些活动可能就是进行中或未来攻击的一部分。了解如何设置 SIEM 用例及其对 SOC 的帮助。 部分 SIEM 用例 首先要注意,我们可以在各种用例之间建立关联。从本质上讲,单独采用用例的效果不佳。用例的组合输入或操作链将决定传入攻击的复杂性或类型。 所有用例都有三个主要的组成部分: ·规则,用于根据目标事件检测和触发警报 ·逻辑,定义如何考虑事件或规则 ·操作,确定在满足逻辑或条件时需要执行的操作。 如何构建 SIEM 用例? 在开始选择用例之前,务必为其确定一个框架。 1.选择工具,选择一个可以设计和映射用例框架的工具。决定使用何种框架后,开始确定优先级并集中处理对团队财务、声誉和数据有影响的业务威胁和风险。 2.考虑攻击类别。这意味着定义可能会产生影响的商业威胁,比如网络钓鱼、数据提取等。将适用的每种攻击类型链接到一个或多个商业威胁。最终,我们将得到一张图,显示业务风险与攻击之间的关系。 3.创建另一种关系:通过创建另一种关系来指定化解攻击的途径和方式。确定列出的攻击类型,并将其置于所选框架中。举例来说,我们可以将外部扫描攻击归于框架内的侦察/目标之中。 4.在两种关系之间建立联系:即业务威胁和攻击的关系,以及攻击和框架的关系。 在此基础上,您可以将这些关系编入 SIEM 用例。已识别的业务威胁将会是高级别用例。我们可以进一步将其细分为低级别用例。每个高级别用例中可以嵌套两三个用例。一般在用例如何适用于多个业务威胁/高级别用例的情况下,我们总会发现一些重叠。举例来说,如果已有“数据丢失”这个高级别用例,嵌套在数据丢失用例中的低级别用例将是服务器泄密、从服务器导出数据以及服务器上未经授权的管理员活动。 每个低级别用例都会与某些攻击类型之间有逻辑连接,进而辅助定义技术规则。每个低级别用例可能都适合多个规则,而且一个规则可能与多个低级别用例有关。我们有必要通过定义其结构来展示连接情况,因为这将进一步定义要使技术规则生效所需的日志源。 SIEM 用例生命周期 图片由 IBM 提供 在 SIEM 用例的生命周期中,用例有多个输入点。这取决于将数据馈送到用例的源头。在 SOC 的日常操作过程中,用例将通过 1 级或 2 级 SOC 分析师获取输入信息。这些输入信息中的大部分均归因于误报检测。如果 SOC 内配备威胁搜捕和情报功能,则将根据当前用例未检测到的流量或其在威胁情报输入信息中识别的新威胁来输入信息。 根据 1 级和 2 级 SOC 分析师发现的误报,我们可以通过修改用例来减少 SIEM 平台生成的不良警报。SIEM 管理员或用例工程师还将通过识别半匹配事件、生成的重复警报数和其他标准来研究用例的效率。 用例管理 和任何其他应用或产品一样,用例必须不时地加以管理和维护,方可确保其有效性。用例要经历多个阶段才能完成从计划到部署的周期: 图片由 IBM 提供 定义/审核需求:在设置 SIEM 用例之前,我们要先考虑业务威胁和风险。有关如何构建用例,请参见上述章节。 识别数据源:明确目标数据后,我们紧接着就是要考虑如何找到这些数据。攻击是根据攻击源定义的。 内接/外接数据源:开始将识别的数据/日志源集成到 SIEM 中。这可能需要在源头进行一些配置,具体视配置的 SIEM 而定。这其中还可能需要对防火墙进行一些更改,以确保数据源与 SIEM 之间进行通信。 设计/审核逻辑:在获得数据/日志之后,我们就可以查看日志并确定检测攻击所需的内容(事件字段)。构建此逻辑/规则的重要因素是识别正确的事件字段以执行关联或聚合。 定义基线:在用例/规则中,定义阈值/基线以聚合类似事件。 测试和调优:我们必须对用例中定义的逻辑和基线进行测试。根据测试结果,我们需要进行调整以确保降低噪声。 基于成效进行优化:根据测试,优化基线以检测攻击。 监控性能:在生产中部署用例并开始监控性能和生成的警报,以检查误报和总体运行状况。 用例框架 我们可以采用多种框架来构建 SIEM 用例。在本例中,我们来了解一下两种最有效的框架:MITRE ATT&CK 和 Lockheed Martin Cyber Kill Chain。这两种框架都包含两个部分:攻击前和攻击后。攻击前包括与目标选择和发现漏洞相关的所有用例/规则。攻击后则涉及与交付、执行、连接和提取相关的用例/规则。 图片由 IBM 提供 SIEM 用例是确保 SOC 处于最佳状态的重要环节。这些用例可以确定是已检测到还是已错失网络内的攻击,以及我们可以在什么阶段检测到传入威胁。SOC 分析师的专业程度也会因定义的用例不同而有所差异。用例的优化和完善程度越高,检测和分析的质量也就越高。 作者简介 Asheesh Kumar IBM Security 安全架构师、咨询师,从事网络安全领域工作的安全架构师兼顾问。 *立即前往 IBM安全专家问诊互动专区,掌握 SIEM最新安全技术趋势。 历史精彩文章推荐 >>> *2021 SIEM 必看趋势:如何选择安全分析提供商 *SOC 2.0 时代:更强大、更安全的安全运营团队的构建指南 关于 IBM Security>>> IBM Security 是 IBM 的信息安全解决方案及服务部门,具有多年深耕全球和本地各行各业客户的经验。IBM Security 在全球守护95%的全球五百强企业和组织的信息安全,客户覆盖金融、医疗、汽车、科技、电信、航空等行业公司及集团,包括50家全球最大的金融和银行机构中的49家、15家最大的医疗机构中的14家,15家全球最大科技企业中的14家等。IBM Security 在 Gartner、Forrester、IDC 和其他机构发布的12份不同的分析报告中,有12项技术解决方案被列为领导者,在产业中跻身首列。 【责任编辑:贺鑫 TEL:(010)68476606】

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

Spring Boot 快速迁移至 Quarkus

Quarkus 是一个目前非常火的 Java 应用开发框架,定位是轻量级的微服务框架。,Quarkus 提供了优秀的容器化整合能力,相较于传统开发框架(Spring Boot)有着更快的启动速度、更小的内存消耗、更短的服务响应。 本文将演示将 SpringBoot 迁移至 Quarkus Spring Boot 示例程序 使用 JPA 完成 数据库的增删改查操作,基础代码如下 maven 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> jpa crud public interface DemoUserDao extends CrudRepository<DemoUser, Long> { } 迁移至 Quarkus quarkus-bom 管理了全部 quarkus 插件 maven 依赖的版本信息,引入后所有依赖不需要再定义版本。 <dependencyManagement> <dependencies> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-bom</artifactId> <version>1.10.5.Final</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 迁移 spring-web 、spring-jpa 至 quarkus 技术栈。 <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-spring-data-jpa</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-spring-web</artifactId> </dependency> 配置文件调整 (还是在 application.yml) quarkus.datasource.db-kind=mysql quarkus.datasource.jdbc.driver=com.mysql.cj.jdbc.Driver quarkus.datasource.username=root quarkus.datasource.password=root quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3306/pig_demo?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE Main 方法调整为 实现 QuarkusApplication ,且需要通过 Quarkus.waitForExit() 保持服务运行。 @QuarkusMain public class SimpleApplication implements QuarkusApplication { public static void main(String[] args) { Quarkus.run(SimpleApplication.class,args); } @Override public int run(String... args) { Quarkus.waitForExit(); return 0; } } 启动运行 main 方法启动, 输出 Quarkus banner __ ____ __ _____ ___ __ ____ ______ --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \ --\___\_\____/_/ |_/_/|_/_/|_|\____/___/ 2021-01-12 22:31:46,341 INFO [io.qua.arc.pro.BeanProcessor] (build-21) Found unrecommended usage of private members (use package-private instead) in application beans: - @Inject field com.example.simple.controller.DemoController#userDao 2021-01-12 22:31:48,702 INFO [io.quarkus] (Quarkus Main Thread) Quarkus 1.10.5.Final on JVM started in 4.613s. Listening on: http://localhost:8080 2021-01-12 22:31:48,703 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated. 2021-01-12 22:31:48,703 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [agroal, cdi, hibernate-orm, hibernate-orm-panache, mutiny, narayana-jta, resteasy, resteasy-jackson, smallrye-context-propagation, spring-data-jpa, spring-di, spring-web] 非常重要的是输出了当前已经安装的功能 Installed features: [agroal, cdi, hibernate-orm, hibernate-orm-panache, mutiny, narayana-jta, resteasy, resteasy-jackson, smallrye-context-propagation, spring-data-jpa, spring-di, spring-web] 【扩展】 actuator 监控迁移 添加以下依赖 <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-health</artifactId> </dependency> 指定访问监控断点路径 quarkus.smallrye-health.root-path=/actuator/health 访问监控检查断点测试 curl http://localhost:8080/actuator/health { "status": "UP", "checks": [ { "name": "Database connections health check", "status": "UP" } ] }⏎ 【扩展】Flyway 迁移 添加 quarkus flyway 插件 <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-flyway</artifactId> </dependency> 指定插件启动策略即可 quarkus.flyway.migrate-at-start=true >>> 源码 https://gitee.com/log4j/pig,欢迎署名转载 <<<

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

快速读懂 JS 原型链

最近参加了公司内部技术分享,分享同学提到了 Js 原型链的问题,并从 V8 的视角展开发散,刷新了我之前对原型链的认识,听完后决定重学一下原型链,巩固一下基础。 理解原型链 深入原型链 总结与思考 理解原型链 Js 中的原型链是一个比较有意思的话题,它采用了一套巧妙的方法,解决了 Js 中的继承问题。 按我的理解,原型链可以拆分成: 原型(prototype) 链( __proto__) 原型(prototype) 原型(prototype)是一个普通的对象,它为构造函数的实例共享了属性和方法。在所有的实例中,引用到的原型都是同一个对象。 例如: functionStudent(name){this.name=name;this.study=function(){console.log("studyjs");};}//创建2个实例conststudent1=newStudent("xiaoming");conststudent2=newStudent("xiaohong");student1.study();student2.study(); 上面的代码中,我们创建了 2 个 Student 实例,每个实例都有一个 study 方法,用来打印 "study js"。 这样写会有个问题:2 个实例中的 study 方法都是独立的,虽然功能相同,但在系统中占用的是 2 份内存,如果我创建 100 个 Student 实例,就得占用 100 份内存,这样算下去,将会造成大量的内存浪费。 所以 Js 创造了 prototype。 functionStudent(name){this.name=name;}Student.prototype.study=function(){console.log("studyjs");};//创建2个实例conststudent1=newStudent("xiaoming");conststudent2=newStudent("xiaohong");student1.study();student2.study(); 使用 prototype 之后, study 方法存放在 Student 的原型中,内存中只会存放一份,所有 Student 实例都会共享它,内存问题就迎刃而解了。 但这里还存在一个问题。 为什么 student1 能够访问到 Student 原型上的属性和方法? 答案在 __proto__ 中,我们接着往下看。 链(__proto__) 链(__proto__)可以理解为一个指针,它是实例对象中的一个属性,指向了构造函数的原型(prototype)。 我们来看一个案例: functionStudent(name){this.name=name;}Student.prototype.study=function(){console.log("studyjs");};conststudent=newStudent("xiaoming");student.study();//studyjsconsole.log(student.__proto__===Student.prototype);//true 从打印结果可以得出:函数实例的 __proto__ 指向了构造函数的 prototype,上文中遗留的问题也就解决了。 但很多同学可能有这个疑问。 为什么调用 student.study 时,访问到的却是 Student.prototype.study 呢? 答案在原型链中,我们接着往下看。 原型链 原型链指的是:一个实例对象,在调用属性或方法时,会依次从实例本身、构造函数原型、构造函数原型的原型... 上去寻找,查看是否有对应的属性或方法。这样的寻找方式就好像一个链条一样,从实例对象,一直找到 Object.prototype ,专业上称之为原型链。 还是来看一个案例: functionStudent(name){this.name=name;}Student.prototype.study=function(){console.log("studyjs");};conststudent=newStudent("xiaoming");student.study();// study js。//在实例中没找到,在构造函数的原型上找到了。//实际调用的是:student.__proto__.say 也就是 Student.prototype.say。student.toString();//"[objectObject]"//在实例中没找到。//在构造函数的原型上也没找到。//在构造函数的原型的原型上找到了。//实际调用的是 student.__proto__.__proto__.toString 也就是 Object.prototype.toString。 可以看到, __proto__ 就像一个链一样,串联起了实例对象和原型。 同样,上面代码中还会存在以下疑问。 为什么 Student.prototype.__proto__ 是 Object.prototype? 这里提供一个推导步骤: 先找 __proto__ 前面的对象,也就是 Student.prototype 的构造函数。 判断 Student.prototype 类型, typeof Student.prototype 是 object。 object 的构造函数是 Object。 得出 Student.prototype 的构造函数是 Object。 所以 Student.prototype.__proto__ 是 Object.prototype。 这个推导方法很实用,除了自定义构造函数对象之外,其他对象都可以推导出正确答案。 原型链常见问题 原型链中的问题很多,这里再列举几个常见的问题。 Function.__proto__ 是什么? 找 Function 的构造函数。 判断 Function 类型, typeof Function 是 function。 函数类型的构造函数就是 Function。 得出 Function 的构造函数是 Function。 所以 Function.__proto__ = Function.prototype。 Number.__proto__ 是什么? 这里只是稍微变了一下,很多同学就不知道了,其实和上面的问题是一样的。 找 Number 的构造函数。 判断 Number 类型, typeof Number 是 function。 函数类型的构造函数就是 Function。 得出 Number 的构造函数是 Function。 所以 Number.__proto__ = Function.prototype。 Object.prototype.__proto__ 是什么? 这是个特例,如果按照常理去推导,Object.prototype.__proto__ 是 Object.prototype,但这是不对的,这样下去原型链就在 Object 处无限循环了。 为了解决这个问题,Js 的造物主就直接在规定了 Object.prototype.__proto__ 为 null,打破了原型链的无线循环。 明白了这些问题之后,看一下这张经典的图,我们应该都能理解了。 深入原型链 介绍完传统的原型链判断,我们再从 V8 的层面理解一下。 V8 是怎么创建对象的 Js 代码在执行时,会被 V8 引擎解析,这时 V8 会用不同的模板来处理 Js 中的对象和函数。 例如: ObjectTemplate 用来创建对象 FunctionTemplate 用来创建函数 PrototypeTemplate 用来创建函数原型 细品一下 V8 中的定义,我们可以得到以下结论。 Js 中的函数都是 FunctionTemplate 创建出来的,返回值的是 FunctionTemplate 实例。 Js 中的对象都是 ObjectTemplate 创建出来的,返回值的是 ObjectTemplate 实例。 Js 中函数的原型(prototype)都是通过 PrototypeTemplate 创建出来的,返回值是 ObjectTemplate 实例。 所以 Js 中的对象的原型可以这样判断: 所有的对象的原型都是 Object.prototype,自定义构造函数的实例除外。 自定义构造函数的实例,它的原型是对应的构造函数原型。 在 Js 中的函数原型判断就更加简单了。 所有的函数原型,都是 Function.prototype。 下图展示了所有的内置构造函数,他们的原型都是 Function.prototype。 看到这里,你是否也可以一看就看出任何对象的原型呢? 附:V8 中的函数解析案例 了解完原型链之后,我们看一下 V8 中的函数解析。 functionStudent(name){this.name=name;}Student.prototype.study=function(){console.log("studyjs");};conststudent=newStudent('xiaoming') 这段代码在 V8 中会这样执行: //创建一个函数v8::Local<v8::FunctionTemplate>Student=v8::FunctionTemplate::New();//获取函数原型v8::Local<v8::Template>proto_Student=Student->PrototypeTemplate();//设置原型上的方法proto_Student->Set("study",v8::FunctionTemplate::New(InvokeCallback));//获取函数实例v8::Local<v8::ObjectTemplate>instance_Student=Student->InstanceTemplate();//设置实例的属性instance_Student->Set("name",String::New('xiaoming'));//返回构造函数v8::Local<v8::Function>function=Student->GetFunction();//返回构造函数实例v8::Local<v8::Object>instance=function->NewInstance(); 以上代码可以分为 4 个步骤: 创建函数模板。 在函数模板中,拿到函数原型,并赋值。 在函数模板中,拿到函数实例,并赋值。 返回构造函数。 返回构造函数实例。 V8 中的整体执行流程是符合正常预期的,这里了解一下即可。 总结与思考 本文分别从传统 Js 方面、V8 层面组件剖析了原型链的本质,希望大家都能有所收获。 最后,如果你对此有任何想法,欢迎留言评论! 本文分享自微信公众号 - 前端日志(gh_12dcc43e6039)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

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

借助URLOS快速安装nodejs环境

环境需求 最低硬件配置:1核CPU,1G内存(1+1)提示:如果你的应用较多,而主机节点的硬件配置较低,建议在部署节点时开通虚拟虚拟内存; 生产环境建议使用2G或以上内存; 推荐安装系统:Ubuntu-16.04、Ubuntu-18.04、CentOS7.X、Debian9X的64位的纯净的操作系统; URLOS安装 curl -LO www.urlos.com/iu && sh iu nodejs环境安装流程 登录URLOS系统后台,在应用市场中搜索“nodejs”,找到之后,直接点击安装按钮 填写服务名称、选择运行节点、服务端口、选择智能部署 填写ssh密码(这里的密码是root密码) 然后点击“提交”按钮,等待部署完成;

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

借助URLOS快速安装swoole环境

环境需求 最低硬件配置:1核CPU,1G内存(1+1)提示:如果你的应用较多,而主机节点的硬件配置较低,建议在部署节点时开通虚拟虚拟内存; 生产环境建议使用2G或以上内存; 推荐安装系统:Ubuntu-16.04、Ubuntu-18.04、CentOS7.X、Debian9X的64位的纯净的操作系统; URLOS安装 curl -LO www.urlos.com/iu && sh iu swoole环境安装流程 登录URLOS系统后台,在应用市场中搜索“swoole”,找到之后,选择合适的版本点击安装按钮 填写服务名称、选择运行节点、服务端口、选择智能部署 填写ssh密码(这里的密码是root密码) 然后点击“提交”按钮,等待部署完成;

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

30 分钟快速入门 Docker 教程

原文地址:梁桂钊的博客 博客地址:http://blog.720ui.com 欢迎关注公众号:「服务端思维」。一群同频者,一起成长,一起精进,打破认知的局限性。 一、欢迎来到 Docker 世界 1. Docker 与虚拟化 在没有 Docker 的时代,我们会使用硬件虚拟化(虚拟机)以提供隔离。这里,虚拟机通过在操作系统上建立了一个中间虚拟软件层 Hypervisor ,并利用物理机器的资源虚拟出多个虚拟硬件环境来共享宿主机的资源,其中的应用运行在虚拟机内核上。但是,虚拟机对硬件的利用率存在瓶颈,因为虚拟机很难根据当前业务量动态调整其占用的硬件资源,因此容器化技术得以流行。其中,Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。 Docker 容器不使

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

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

用户登录
用户注册