首页 文章 精选 留言 我的

精选列表

搜索[去水印],共10000篇文章
优秀的个人博客,低调大师

2020年去一线大厂面试先过SSM框架源码这一关!

SSM框架介绍 (1)持久层(Mybatis):Dao层(mapper)DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。DAO层的设计首先是设计DAO的接口。然后在Spring的配置文件中定义此接口的实现类。然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰。DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。(2)业务层(Spring):Service层Service层:Service层主要负责业务模块的逻辑应用设计。首先设计接口,再设计其实现的类。接着再在Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。Service层的业务实现,具体要调用到已定义的DAO层的接口。封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。(3)表现层(springMVC):Controller层(Handler层)Controller层:Controller层负责具体的业务模块流程的控制。在此层里面要调用Service层的接口来控制业务流程。控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。(4)视图层:View层View层:View层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示。 关于框架源码的大体知识总结了一个思维导图分享给大家 SSM框架面试题 1、如何理解Spring?2、介绍一下Spring的事物管理3 、SSM优缺点、使用场景?4、MyBatis 中使用#和$书写占位符有什么区别?5、解释一下 MyBatis 中命名空间(namespace)的作用。6、什么是 IoC 和 DI?DI 是如何实现的?7、解释一下什么叫 AOP(面向切面编程)?8、你是如何理解"横切关注"这个概念的?9、你如何理解 AOP 中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念?10、Spring 支持的事务管理类型有哪些?你在项目中使用哪种方式?11、Spring MVC的工作原理是怎样的?12、什么是 XSS 攻击?13、SQL 注入攻击?14、什么是CSRF攻击?15、简述Mybatis一级、二级缓存16、JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的? SSM框架面试题解析 1、如何理解Spring? 具体来说Spring是一个轻量级的容器,用于管理业务相关对象的。核心功能主要为:IOC,AOP,MVC。IOC:控制反转,将对象的创建过程交给容器,让容器管理对象的生命周期如创建,初始化,销毁等。AOP:面向切面编程,对关注点进行模块化,通过对某一功能点进行编程,比如记录日志,有很多个类都需要记录日志的方法,则创建记录日志的代理方法,需要调用该功能是只需要调用代理方法,这就是AOP。MVC:SpringMvc,Spring提供的基于MVC模式设计的Web框架,如今比较流行的框架之一。 2、介绍一下Spring的事物管理 事务就是对一系列的数据库操作(比如插入多条数据)进行统一的提交或回滚操作,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有操作。这样可以防止出现脏数据,防止数据库数据出现问题。开发中为了避免这种情况一般都会进行事务管理。Spring中也有自己的事务管理机制,一般是使用TransactionMananger进行管 理,可以通过Spring的注入来完成此功能。Spring支持如下两种方式的事务管理:编程式事务管理:这意味着你可以通过编程的方式管理事务,这种方式带来了很大的灵活性,但很难维护。声明式事务管理:这种方式意味着你可以将事务管理和业务代码分离。你只需要通过注解或者XML配置管理事务。一般选择声明式事务管理,因为这种方式和应用程序的关联较少。 3 、SSM优缺点、使用场景? (1)Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。(2)Mybatis学习门槛低,简单易学,程序员直接编写原生态sql,可严格控制sql执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运营类软件等,因为这类软件需求变化频繁,一但需求变化要求成果输出迅速。但是灵活的前提是mybatis无法做到数据库无关性,如果需要实现支持多种数据库的软件则需要自定义多套sql映射文件,工作量大。(3)Hibernate对象/关系映射能力强,数据库无关性好,对于关系模型要求高的软件(例如需求固定的定制化软件)如果用hibernate开发可以节省很多代码,提高效率。但是Hibernate的学习门槛高,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡,以及怎样用好Hibernate需要具有很强的经验和能力才行。(4)总之,按照用户的需求在有限的资源环境下只要能做出维护性、扩展性良好的软件架构都是好架构,所以框架只有适合才是最好。 4、MyBatis 中使用#和$书写占位符有什么区别? 答:#将传入的数据都当成一个字符串,会对传入的数据自动加上引号;$将传入的数据直接显示生成在SQL 中。注意:使用$占位符可能会导致 SQL 注射攻击,能用#的地方就不要使用$,写 order by 子句的时候应该用$而不是#。 5、解释一下 MyBatis 中命名空间(namespace)的作用。 答:在大型项目中,可能存在大量的 SQL 语句,这时候为每个 SQL 语句起一个唯一的标识(ID)就变得并不容易了。为了解决这个问题,在 MyBatis 中,可以为每个映射文件起一个唯一的命名空间,这样定义在这个映射文件中的每个 SQL 语句就成了定义在这个命名空间中的一个 ID。只要我们能够保证每个命名空间中这个 ID 是唯一的,即使在不同映射文件中的语句 ID 相同,也不会再产生冲突了。 6、什么是 IoC 和 DI?DI 是如何实现的? 答:IoC 叫控制反转,是 Inversion of Control 的缩写,DI(Dependency Injection)叫依赖注入,是对 IoC 更简单的诠释。控制反转是把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的"控制反转"就是对组件对象控制权的转移,从程序代码本身转移到了外部容器,由容器来创建对象并管理对象之间的依赖关系。IoC 体现了好莱坞原则 -"Don’tcallme,we willcallyou"。依赖注入的基本原则是应用组件不应该负责查找资源或者其他依赖的协作对象。配置对象的工作应该由容器负责,查找资源的逻辑应该从应用组件的代码中抽取出来,交给容器来完成。DI 是对 IoC 更准确的描述,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中。 7、解释一下什么叫 AOP(面向切面编程)? 答:AOP(Aspect-Oriented Programming)指一种程序设计范型,该范型以一种称为切面(aspect)的语言构造为基础,切面是一种新的模块化机制,用来描述分散在对象、类或方法中的横切关注点(crosscutting concern)。 8、你是如何理解"横切关注"这个概念的? 答:"横切关注"是会影响到整个应用程序的关注功能,它跟正常的业务逻辑是正交的,没有必然的联系,但是几乎所有的业务逻辑都会涉及到这些关注功能。通常,事务、日志、安全性等关注就是应用中的横切关注功能。 9、你如何理解 AOP 中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念? 答:a. 连接点(Joinpoint):程序执行的某个特定位置(如:某个方法调用前、调用后,方法抛出异常后)。一个类或一段程序代码拥有一些具有边界性质的特定点,这些代码中的特定点就是连接点。Spring 仅支持方法的连接点。 切点(Pointcut):如果连接点相当于数据中的记录,那么切点相当于查询条件,一个切点可以匹配多个连接点。Spring AOP 的规则解析引擎负责解析切点所设定的查询条件,找到对应的连接点。 增强(Advice):增强是织入到目标类连接点上的一段程序代码。Spring 提供的增强接口都是带方位名的,如:BeforeAdvice、AfterReturningAdvice、ThrowsAdvice 等。很多资料上将增强译为“通知”,这明显是个词不达意的翻译,让很多程序员困惑了许久。说明: Advice 在国内的很多书面资料中都被翻译成"通知",但是很显然这个翻译无法表达其本质,有少量的读物上将这个词翻译为"增强",这个翻译是对 Advice 较为准确的诠释,我们通过 AOP 将横切关注功能加到原有的业务逻辑上,这就是对原有业务逻辑的一种增强,这种增强可以是前置增强、后置增 强、返回后增强、抛异常时增强和包围型增强。 引介(Introduction):引介是一种特殊的增强,它为类添加一些属性和方法。这样,即使一个业务类原本没有实现某个接口,通过引介功能,可以动态的未该业务类添加接口的实现逻辑,让业务类成为 这个接口的实现类。 织入(Weaving):织入是将增强添加到目标类具体连接点上的过程,AOP 有三种织入方式:①编译期织入:需要特殊的 Java 编译期(例如 AspectJ 的 ajc); ②装载期织入:要求使用特殊的类加载器, 在装载类的时候对类进行增强;③运行时织入:在运行时为目标类生成代理实现增强。Spring 采用了动 态代理的方式实现了运行时织入,而 AspectJ 采用了编译期织入和装载期织入的方式。 切面(Aspect):切面是由切点和增强(引介)组成的,它包括了对横切关注功能的定义,也包括了对连接点的定义。 10、Spring 支持的事务管理类型有哪些?你在项目中使用哪种方式? 答:Spring 支持编程式事务管理和声明式事务管理。许多 Spring 框架的用户选择声明式事务管理,因为这种方式和应用程序的关联较少,因此更加符合轻量级容器的概念。声明式事务管理要优于编程式事务管理,尽管在灵活性方面它弱于编程式事务管理,因为编程式事务允许你通过代码控制业务。 11、Spring MVC的工作原理是怎样的? 答:SpringMVC工作原理图如下: (1)客户端的所有请求都交给前端控制器 DispatcherServlet 来处理,它会负责调用系统的其他模块来真正处理用户的请求。(2) DispatcherServlet 收到请求后,将根据请求的信息(包括 URL、HTTP 协议方法、请求头、请求参数、Cookie 等)以及 HandlerMapping 的配置找到处理该请求的 Handler(任何一个对象都可以作为请求的 Handler)。(3)在这个地方 Spring 会通过 HandlerAdapter 对该处理器进行封装。(4)HandlerAdapter 是一个适配器,它用统一的接口对各种 Handler 中的方法进行调用。(5)Handler 完成对用户请求的处理后,会返回一个 ModelAndView 对象给 DispatcherServlet,ModelAndView 顾名思义,包含了数据模型以及相应的视图的信息。(6) ModelAndView 的视图是逻辑视图,DispatcherServlet 还要借助 ViewResolver 完成从逻辑视图到真实视图对象的解析工作。(7)当得到真正的视图对象后,DispatcherServlet 会利用视图对象对模型数据进行渲染。(8)客户端得到响应,可能是一个普通的 HTML 页面,也可以是 XML 或 JSON 字符串,还可以是一张图片或者一个 PDF 文件。 12、什么是 XSS 攻击? 答: XSS(Cross Site Script,跨站脚本攻击)是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式。跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意 脚本的链接以达到攻击的目标,目前有很多攻击者利用论坛、微博发布含有恶意脚本的 URL 就属于这种方式)和持久型攻击(将恶意脚本提交到被攻击网站的数据库中,用户浏览网页时,恶意脚本从数据 库中被加载到页面执行,QQ 邮箱的早期版本就曾经被利用作为持久型跨站脚本攻击的平台)。XSS 虽然不是什么新鲜玩意,但是攻击的手法却不断翻新,防范 XSS 主要有两方面:消毒(对危险字符进行转义)和HttpOnly (防范 XSS 攻击者窃取 Cookie 数据)。 13、SQL 注入攻击? 答: SQL 注入攻击是注入攻击最常见的形式(此外还有 OS 注入攻击(Struts 2 的高危漏洞就是通过OGNL 实施 OS 注入攻击导致的)),当服务器使用请求参数构造 SQL 语句时,恶意的 SQL 被嵌入到SQL 中交给数据库执行。SQL 注入攻击需要攻击者对数据库结构有所了解才能进行,攻击者想要获得表结构有多种方式:(1)如果使用开源系统搭建网站,数据库结构也是公开的(目前有很多现成的系统可以直接搭建论坛,电商网站,虽然方便快 捷但是风险是必须要认真评估的);(2)错误回显(如果将服务器的错误信息直接显示在页面上,攻击者可以通过非法参数引发页面错误从而通过错误信息了解数据库结构,Web应用应当设置友好的错误页,一方面符合最小惊讶原则,一方面屏蔽掉可能给系统带来危险的错误回显信息);(3)盲注。防范 SQL 注入攻击也可以采用消毒的方式,通过正则表达式对请求参数进行验证,此外,参数绑定也是很好的手段,这样恶意的 SQL 会被当做 SQL 的参数而不是命令被执行,JDBC 中的 PreparedStatement 就是支持参数绑定的语句对象,从性能和安全性上都明显优于 Statement。 14、什么是CSRF攻击? 答: CSRF 攻击(Cross Site Request Forgery,跨站请求伪造)是攻击者通过跨站请求,以合法的用户身份进行非法操作(如转账或发帖等)。CSRF 的原理是利用浏览器的 Cookie 或服务器的Session,盗取用户身份,其原理如下图所示。防范 CSRF 的主要手段是识别请求者的身份,主要有以下几种方式:(1) 在表单中添加令牌(token);(2) 验证码;(3) 检查请求头中的 Referer。令牌和验证都具有一次消费性的特征,因此在原理上一致的,但是验证码是一种糟糕的用户体验,不是必要的情况下不要轻易使用验证码,目前很多网站的做法是如果在短时间内多次提交一个表单未获得成功后才要求提供验证码,这样会获得较好的用户体验。 15简述Mybatis一级、二级缓存 1)一级缓存: 基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该 Session 中的所有 Cache 就将清空。2)二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap 存储,不同在于其存储作用域为 Mapper(Namespace),并且可自定义存储源,如 Ehcache。要开启二级缓存,你需要在你的 SQL 映射文件中添加一行:3)对于缓存数据更新机制,当某一个作用域(一级缓存 Session/二级缓存Namespaces)的进行了C/U/D 操作后,默认该作用域下所有 select 中的缓存将被 clear。 16、JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的? (1)数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。(2) Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。(3) 向sql语句传参数麻烦,因为sql语句的where条件不一定,可能多也可能少,占位符需要和参数一一对应。解决: Mybatis自动将java对象映射至sql语句。(4)对结果集解析麻烦,sql变化导致解析代码变化,且解析前需要遍历,如果能将数据库记录封装成pojo对象解析比较方便。解决:Mybatis自动将sql执行结果映射至java对象。另外的参考回答频繁的创建数据连接,关闭资源,造成性能的下降,使用数据文库连接池 解决这个问题用数据库连接池.在SqlMapConfig.xml 配置数据库连接池 c3p0 DBCPJdbc 编程sql 的可维护性不高. Mybatis采用配置文件的方式解决sql可维护的问题在mapper.xml中配置 ,是sql与代码分离 可维护行变高Jdbc 传入参数比较麻烦. 参数有时候多,参数要和占位符一一对应.Mybatis 使用statement 的 paremterType 定义输入的参数类型对结果解析比较麻烦. Mybatis 使用resultType 自动映射到pojo中解决了jdbc解析结果的麻烦欢迎大家关注我的公种浩【程序员追风】,2019年多家公司java面试题整理了120多页pdf文档,文章都会在里面更新,整理的资料也会放在里面。 最后 欢迎大家一起交流,喜欢文章记得关注我点个赞哟,感谢支持!

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

一个“保存”按钮同时存在“增删改”三种操作,该如何去实现?

一般情况下,对表格中的数据进行“增删改”操作,都是直接操作数据库。现在有些项目因为设计或者优化的缘故,不对表格中的数据进行“增删改”,而是通过最后“保存”按钮的操作,一次性将数据传至服务器,由服务器对数据进行“增删改”。 以下通过给用户分配角色这样的功能进行说明。 操作界面大致如下(直接手画,略显粗糙,能看明白就行): 序号 用户 角色 1 用户A 角色A 2 用户A 角色B 3 用户A 角色C 删除 新增 保存 说明: “新增”、“修改”和“删除”都不是直接操作数据库。 点击“保存”时才将数据传给服务器。 此项目中的删除均为逻辑删除(即,只是对数据打上“删除”状态的标记),不是物理删除。 文中说的“ID”为用户角色的主键。 第一种方法:先删后增 直接删除用户下的所有角色,将前端传过来的数据统一新增。 优缺点: 优点:逻辑简单,容易实现。 缺点:会产生大量的删除数据。 第二种方法:通过

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

如何将SAP Multi Target应用部署到SAP云平台的Cloud Foundry环境去

SHINA是SAP HANA Interactive Education的缩写,是一个demo应用,用于演示如何开发SAP HANA原生应用。 这个应用包含了sample数据以及HANA数据库表,view,OData服务和UI,符合SAP HANA Extended Service Advanced Programming Model,由如下几个包组成: core-db:核心数据模型 core-js: Data Generator, Purchase Order Worklist和Sales Dashboard的后端实现,基于nodejs user-js: User的CRUD实现,也是基于nodejs和XSOData库。同时也演示了如何使用Cloud Foundry的job scheduling服务来创建和调度任务。 web: SHINE Launchpad 和其他应用的UI实现,基于SAP UI5。 site-content: SAP Fiori Launchpad必需的配置文件。 1. 我们需要将SAP提供的SHINA源文件clone到本地并且打包成mtar格式,因此需要下载MTAR builder。 从SAP Service Market上下载,其实就是一个.jar文件。 MTA是什么意思呢?Multi-Target Application, 由一系列software modules组成,每个module可以由不同的编程语言开发,以及使用不同的部署技术,但是这些module在开发和部署时共享相同的生命周期。 上文介绍的SHINE就是一个很好的MTA例子,数据库用HANA原生模型进行开发,前端页面用SAP UI5,而业务逻辑使用nodejs开发。这些module将会通过下文介绍的MTA builder打包成一个文件,然后统一部署到Cloud Foundry上。 在每个MTA应用文件夹的根目录下面都有个mta.yaml文件,维护了组成该MTA应用的各个module的类型,打包方式和其他信息。 2. 从github上将SHINA应用clone到本地: 执行命令 java -jar mta.jar -build-target=CF -mtar=shine-cf.mtar build 最后生成该150MB大小的mtar文件。现在可以把这个文件部署到cloud foundry上。 使用命令行cf deploy shine-cf.mtar将前一步打包生成的mtar文件部署到SAP云平台上。 成功部署之后,即可访问自动设置为Started状态的两个应用shine-web和site-web。 如果需要将部署的应用从Cloud Foundry上移除,执行命令行:cf undeploy com.sap.refapps.shine -f –delete-services 要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

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

带你了解“不拘一格去创新,别出心裁入场景”的锐捷

大家可能关注过物联网、云计算、大数据等一些让人赞叹的高新科技,但是对将他们变为现实的行业魔术师却知之甚少,包括手机卖的很出名的华为。其实在这些高新科技的背后有许多不为大众所熟知的魔术师,刚刚年满17岁的“后起之秀”——锐捷,就是这个行业的创新魔术师,也是全国N多无线WiFi使用者的 锐捷,成立于福建福州,现在全国各地建立分支机构多家,参与2016年里约奥运会新华社 移动报道平台网络建设及服务,主理广电集客业务,苏宁易购门店数据网络建设设备供应、奇虎360数据中心建设等大型项目。 同专注技术革新的华为一样,锐捷也是一个讲求技术创新驱动的企业,专注于技术、设备的研发升级,致力于为用户提供更快捷高效的服务。 不同于华为努力开拓海外市场,向微软、亚马逊、甲骨文等知名企业看齐、与他们合作,专注于以虚拟机为主的云数据技术建设;锐捷专注于为国内的企业提供适合他们的设备和技术。 仅2016年,他就结下了累累硕果。2016年1月,锐捷的newton18018-x系列数据中心核心交换机落地,发布高效智慧运营BRAC解决方案,助力智慧教室建设。 2016年3月,锐捷云课堂3.0解决方案发布,助力主课教学信息化,成为中国移动通信WLAN项目设备主要提供商。 2016年4月,锐捷为智慧交通建设再添一砖,为全国公交提供10万台MTFI设备,助力公交系统向“公交车上有高速的WiFi”的目标迈进,同时正式推出RIIL BMC综合业务管理平台6.7.8版本、RIIL Insight V1.1大数据分析平台、RIIL Emotion自动化运维平台等产品。 2016年5月,锐捷赞助中央电教馆举办“锐捷杯“云课堂互动教学创新奖,推动教育信息化技术革新,继续成为中国电信交换机路由器提供商,成为阿里菜鸟全年网络框架建构服务商,联手万达飞凡,推进购物中心精准营销。 2016年6月,锐捷与联新移动医疗达成战略合作,成为爱奇艺第78期网络建设最大设备供应商,云课堂项目成果斐然蝉联市场占有率第一,市场份额达77.1%。 2016年7月,锐捷参与公安部视频专网关键技术课题研究,与公安部就该课题进行深入、细致的方案、场景分析,技术策略建设,并发布全面支持802.11ac wave2的RG-AP740-I无线AP,解决用户”IP地址管理“问题的RG-DDI产品,全面服务世界500强”北汽集团“及其六大生产基地的生产网和办公网。 2016年8月,锐捷的极简办公网解决方案应用于阿里西溪园区,负责的阿里巴巴完整数据中心全面建成…… 由于篇幅有限,小编我实在列举不过来了。从已列的成果中,我们可以看出,锐捷专注于推动产品更新、技术更新,以敲中中国企业的真实痛点,满足政府、企业的智能化、信息化建设需求,推动中国社会向前发展、转型升级。 好的企业,就是专注于自己的产品、服务,慢慢研发、不断创新、砥砺前行、厚积薄发,锐捷便是这样的企业。它具有“不固步自封”美人之美、美美与共、天下大同“的开放包容奉献的发展态度。锐捷作为一家年轻的企业来说,能够坚持创新,将继续大有作为。

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

回顾Gartner 报告:2010年至2017年那些最酷的存储初创公司去哪儿了

几年前,分析机构Gartner开始针对多IT类别发布它的供应商研究报告。我们依次列出了2010年至今8份它盘点的最酷的存储初创公司。 其中的一些公司人间蒸发,一些公司被收购,剩下的公司依然活跃于存储市场,存储之战本身就是存亡之战,总有人旗开得胜,总有人一败如水。我们标出了公司类型,大家可以从中找到一些规律。Gartner对于如云存储及联合网关、文件存储、SSD/闪存、对象存储、新数据保护方案和软件定义存储等趋势的追逐与预判。 年份 公司名称 收购 倒闭2017 融合型二级存储初创公司Cohesity, 面向全闪存的存储软件初创公司Elastifile, 混合云存储初创企业Igneous, 智能数据存储初创企业Komprise, Docker容器存储企业Portworx – –2016 服务器解决方案提供商Datrium, 软件定义存储公司Hedvig, 云存储公司Minio, 数据分析访问公司Peaxy, 云数据管理公司Rubrik – –2015 数据安全保护公司DataGravity, 企业级高端存储解决方案提供商Infinidat(由企业级高端存储之父Moshe Yanai创立), 虚拟化存储性能公司Infinio, 超融合解决方案供应商Maxta, 私有云环境冷却数据服务提供商Storiant – Storiant2014 高性能软件优化技术提供商Condusiv, 对象存储解决方案提供商Exablox, VMware虚机管理程序缓存软件方案提供商PernixData, 统一存储云公司Zadara 2017年StorageCraft 收购Exablox;2016年Nutanix收购PernixData。 –2013 云存储网关公司Ctera, 数据库数据虚拟化公司Delphix, Panzura, 全闪存解决方案供应商Pure Storage, Scality – –2012 数据虚拟化与存储服务提供商Actifio, 云存储平台Amplidata, 数据安全公司Druva,自动化软件开发公司 iWave Software, 全闪存阵列初创公司Skyera 2013年 EMC收购iWave Software;2014年HGST/WD收购Skyera;2015年HGST/WD收购Amplidata –2011 企业端点备份和数据保护公司Datacastle, 全闪存阵列初创公司Kaminario, 可部署云存储平台Mezeo, 混合阵列供应商Nimble Storage, 大数据分析和营销应用提供商RainStor, 闪存存储供应商Violin Memory(一个曾经辉煌的名字) 2014年Zimbra收购Mezeo;2014年Teradata 收购 RainStor;2017年HPE收购Nimble Storage –2010 企业级存储资源管理公司Aptare, 云存储服务提供商Atrato, 混合云数据存储公司Avere Systems, 企业级SSD公司Pliant, 在线存储服务公司StorSimple 2011年闪迪收购Pliant;2012年微软收购StorSimple Atrato从上表来看: 8份报告,40家公司上榜,两家公司倒闭:Atrato和Storiant占整体比例的5%,10家公司被收购占25%。 Nimble Storage、Pure Storage和Violin Memory这三家公司已经上市,但现在Pure成了“独行侠”,根据我们近期得到的消息,Pure第一季度营收表现良好,然而摩根士丹利投资管理公司降低了对Pure的信用评级,理由是Pure的新产品FlashBlade竞争激烈,吸引力较低,事实也确实如此,除了Nimble,去年8月份,还没有宣布核电业务危机的东芝也站出来凑热闹,发布了FlashMatrix,直言要与 FlashBlade竞争,前者是一个由Atom CPU支持的实时,向外扩展型,计算加闪存分析引擎。 而HPE继以6.5亿美元收购第二大超融合厂商Simplivity后,近期又以10亿美元的价格收购了Nimble。全闪存阵列先驱Violin Memory在经历了漫长的挣扎期之后低头了,连续季度亏损加上纽约证券交易所施压,在12月份宣布破产。2017年4月份作为一家私营存储企业回归,Violin被昆腾的合作伙伴,由索罗斯基金管理公司运营的私募投资基金收购。但它的新管理团队都是偏软件开发的,没有高管关注硬件开发,其CEO兼总裁,Ebrahim Abbasi是原Violin运营部门高级副总裁。 三家公司总部位于以色列的企业——Elastifile、Infinidat和Kaminario,两家来自欧洲,其余35家公司都来自美国。 28家公司在加入Gartner的报告时成立4年时间甚至更短。具体来说,5%的公司成立只有一年时间,13%成立两年时间,23%成立有三年时间,30%成立有4年时间。 本文转自d1net(转载)

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

失真图片修复-实景图像去雾-画面拉伸复原-雾感图像净化API接口介绍

在实际拍摄过程中,环境因素和设备操作往往会影响图像质量。例如,户外拍摄遇到浓雾天气时,空气中的水汽会降低光线传播效果,使照片出现灰蒙、低对比度、细节缺失等问题;而在图片编辑、传输或显示过程中,错误的拉伸操作又可能导致人物、建筑等内容比例失真,影响视觉效果。 针对这些常见问题,本接口通过深度学习算法自动分析图像内容,实现智能去雾与图像比例修复,帮助用户快速恢复清晰、自然、真实的视觉效果。

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

构建可复核的媒体整理流水线:哈希去重、元数据抽取与模型标注

图片、录屏、短视频和扫描件一旦进入共享盘或个人资料库,整理成本通常并不来自“文件太多”,而来自三个不一致:同一内容有多份副本,文件名不表达业务含义,自动标签的依据又难以回看。直接把目录交给模型分类看似省事,却会带来更棘手的问题:重复文件被重复计费或重复处理;模型输出格式不稳定;敏感素材可能在未经审批时被发送到外部服务;以后发现分类错误,也无法判断是原文件、提示词还是模型配置导致。

资源下载

更多资源
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文件系统,支持十年生命周期更新。

WebStorm

WebStorm

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

用户登录
用户注册