首页 文章 精选 留言 我的

精选列表

搜索[orm框架],共10000篇文章
优秀的个人博客,低调大师

CakePHP 3.8.8 发布,PHP 快速开发框架

CakePHP 3.8.8 发布了,更新内容如下: Bugfixes 改进 API 文档 Text::slug()现在可以保留空格 修复了潜在的会话问题 SQLServerSchema 方言现在可以正确处理外键的限制模式 现在,匹配具有整数值的路由更具说服力 将Shims添加到 TestCase 中,以使getMock() 和getMockBuilder()不会在 PHP7.4 中发出弃用 修复了 FormHelper::dateTime()如何处理空值的回归问题 生成 URL 时,带有控制器和操作占位符的路由在未定义时不再剥离这些键 可选的路由占位符对于括号占位符和冒号占位符都可以一致地工作 更新说明:https://bakery.cakephp.org/2019/12/28/cakephp_388_released.html

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

CakePHP 3.8.7 发布,PHP 快速开发框架

CakePHP 3.8.7 发布了,更新内容如下: Bugfixes 如果未定义标题字符集,则Email::getHeaderCharset() 现在将电子邮件字符集用作后备。 添加了 IntegrationTestTrait::assertRedirectEquals(),可以更轻松地声明重定向值,而无需进行其他 Router 转换。 改进了文档块和类型注释。 如果文件名包含非 ascii 值,电子邮件附件现在可以在 Content-Disposition 标头中对文件名进行编码。 Http\Client 现在在其构造函数中接受 protocolVersion 选项。此选项使你可以控制所使用的 HTTP 版本。此更改使发出 HTTP2 请求更加简单。 当 ConsoleIntegrationTestTrait 用尽对交互式问题的答复时,改进了错误消息。 Http\Client 现在可以在 GET 请求中发送请求主体。 在测试矩阵中添加了 PHP7.4。 更新说明:https://github.com/cakephp/cakephp/releases/tag/3.8.7

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

Apache Flink 1.9.1 发布,流处理框架

Apache Flink 1.9.1 发布了,Apache Flink 项目的目标是开发一个流处理系统,以统一和支持多种形式的实时和离线数据处理应用程序以及事件驱动的应用程序。 此版本带来大量 bug 修复,摘取部分如下: Bug [FLINK-11630] - 本身终止时,TaskExecutor 不等待任务终止 [FLINK-13490] - 修复读取 JDBC 时一列值是否为空,以下值全部为空 [FLINK-13941] - 通过不清除 S3 中的小零件文件来防止数据丢失 [FLINK-12501] - AvroTypeSerializer 不适用于 avrohugger 生成的类型 [FLINK-13386] - 修复新的默认 Web UI 中的一些问题 [FLINK-13526] - 切换到不存在的目录或数据库会使 sql-client 崩溃 [FLINK-13568] - DDL 创建表不允许 STRING 数据类型 [FLINK-13805] - TaskManager 丢失时出现错误的Error Message [FLINK-14145] - CompletedCheckpointStore#getLatestCheckpoint(true) 返回错误的检查点 [FLINK-13059] - Cassandra 连接器在异常时泄漏信号量并在关闭时挂起 [FLINK-13534] - 无法查询带有小数列的 Hive 表 …… 更新说明:https://flink.apache.org/news/2019/10/18/release-1.9.1.html

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

go-netty 高性能网络框架

GO-NETTY github.com/go-netty/go-netty Introduction (介绍) go-netty is heavily inspired bynetty go-netty 大量参考了netty的设计并融合Golang本身的协程特性而开发的一款高性能网络库 Feature (特性) Extensible multi-transport protocol support, default support TCP, KCP, Websocket 可扩展多种传输协议,并且默认实现了 TCP, KCP, Websocket Extensible multi-codec support 可扩展多种解码器,默认实现了常见的编解码器 Based on responsibility chain model 基于责任链模型的流程控制 TODO (待完成) test case docs examples Examples (例子) chat_server (基于websocket的聊天室) file_server (基于http的文件浏览器) tcp_server (自义定tcp服务器) Usage (使用) 创建bootstrap, 用于提供服务或者对外建立连接 var bootstrap = netty.NewBootstrap() 配置服务连接的处理器 (同样还有一个ClientInitializer 对应客户端连接处理器配置) bootstrap.ChildInitializer(func(channel netty.Channel) { channel.Pipeline(). // 按照自定义协议解码帧(2字节的长度字段) AddLast(frame.LengthFieldCodec(binary.LittleEndian, 1024, 0, 2, 0, 0)). // 消息内容为文本格式(可自定义为 json,protobuf 等编解码器) AddLast(format.TextCodec()). // 处理消息 AddLast(LogHandler{"Server"}) }) 配置服务器(客户端)所使用的传输协议 bootstrap.Transport(tcp.New()) 开始监听端口并开始提供服务,直到收到指定信号后退出 bootstrap.Listen("tcp://0.0.0.0:6565").RunForever(os.Kill, os.Interrupt) LogHandler 处理器 type LogHandler struct { role string } func (l LogHandler) HandleActive(ctx netty.ActiveContext) { fmt.Println(l.role, "->", "active:", ctx.Channel().RemoteAddr()) // 给对端发送一条消息,将进入如下流程(视编解码配置) // Text -> TextCodec -> LengthFieldCodec -> Channel.Write // 文本 文本编码 组装协议格式(长度字段) 网络发送 ctx.Write("Hello I'm " + l.role) // 向后续的handler传递控制权 // 如果是最后一个handler或者需要中断请求可以不用调用 ctx.HandleActive() } func (l LogHandler) HandleRead(ctx netty.InboundContext, message netty.Message) { fmt.Println(l.role, "->", "handle read:", message) // 向后续的handler传递控制权 // 如果是最后一个handler或者需要中断请求可以不用调用 ctx.HandleRead(message) } func (l LogHandler) HandleInactive(ctx netty.InactiveContext, ex netty.Exception) { fmt.Println(l.role, "->", "inactive:", ctx.Channel().RemoteAddr(), ex) // 向后续的handler传递控制权 // 如果是最后一个handler或者需要中断请求可以不用调用 ctx.HandleInactive(ex) }

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

Riot 4.6.0 发布,JavaScript 的 MVP 框架

Riot 4.6.0 发布了,更新内容如下: 修复了在<template>标签中呈现文本表达式的情况下的小写问题 更新改进了核心代码、编译器和 dom 绑定 通过<slot>属性添加对 HOC(高阶组件)组件的支持,例如: Provider <hoc-component> <slot message={ message } theme={ theme }/> <script> export default { message: 'hello', theme: 'dark' } </script> </hoc-component> Consumer <app> <hoc-component> <!-- the {message} property will be provided by the <hoc-component> --> <h1>{ message }</h1> <!-- the {theme} property will be provided by the <hoc-component> --> <sidebar theme={ theme }/> </hoc-component> <!-- the {message} property is not available outside of the <hoc-component> --> <p>{ message }</p> </app> Riot 是一个简单而优雅的基于组件的 UI 库,为所有现代浏览器带来了自定义组件。其支持浏览器包括: 它的体积也很小,只有 6k:

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

PhalApi 2.8.1 发布,PHP 开源接口框架

PhalApi 2.8.1 [主要更新] 1、文件日志PhalApi\Logger\FileLogger区分隐式静默和显式异常两种模式,可通过\PhalApi\DI()->debug全局模式或初始化时指定调试模式。为调试模式时,若写入失败将500异常提示 1、文件配置PhalApi\Config\FileConfig区分隐式静默和显式异常两种模式,可通过\PhalApi\DI()->debug全局模式或初始化时指定调试模式。为调试模式时,若配置不存在将500异常提示 [辅助更新] [BUG修复] 1、URI路由匹配模式下默认接口读取不到 2、配置多个数据库时候, 调用get、update时会提示 dbs.tables should not be empty (issue 97)

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

CakePHP 3.8.3 发布,PHP 快速开发框架

CakePHP 3.8.3 发布了,这是一个维护版本,修复了以下问题: 添加了 IntegrationTestTrait::setUnlockedFields(),使测试中的 SecurityComponent 更简单 改进了 EntityInterface::setDirty() 的向前兼容注释 TestEmailTransport::send()的返回值与实际实现相匹配 修复了分页元标记中的双重转义 改进 API 文档 传递给 FunctionExpression 对象的子查询现在封装在括号中 Cake\Network\Socket现在可以连接到 unix 套接字 控制台错误代码现在约束在 1 到 244 之间 详情可查看发布公告。

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

Mockito框架里面的@Mock注解原理

@Mock注解就是其实就是用cglib的原理帮我们new了一个@Mock注解作用类的子类,什么意思呢,往下看 首先是Company,此时hh方法返回值是”字符串”, package com.one.util; import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsConstructor public class Company { private String name; public String hh(){ return "字符串"; } } User类,mm()的返回值就是Company类的hh()返回值 package com.one.util; import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsConstructor public class User { private Company company; private int age; public String mm(){ return company.hh(); } } 然后UserTest类如下,此时可以看到下面的Company上面放了@Mock注解,他的作用就是帮我们生产一个Company类的子类(假如是CompanyZi),然后使用多态赋值给下面的company(就像这样Company company=new CompanyZi),而且这个ComanyZi类里面的hh()方法的返回值是null,为什么这样说呢,我们看下面的结果 package com.one.util; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import static org.assertj.core.api.Assertions.catchThrowable; @RunWith(MockitoJUnitRunner.class) public class UserTest { @Mock private Company company; private User user; @Before public void setUp() { user = new User(company, 1); } @Test public void tt() { catchThrowable(() -> { String mm = user.mm(); System.out.println(mm); }); } } 此时可以看到结果是null 简单来说上面的代码可以变成下面这样 首先是Company,此时hh方法返回值是”字符串”, package com.one.util; import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsConstructor public class Company { private String name; public String hh(){ return "字符串"; } } User类,mm()的返回值就是Company类的hh()返回值 package com.one.util; import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsConstructor public class User { private Company company; private int age; public String mm(){ return company.hh(); } } 然后UserTest类如下,此时下面的类ComapanyZi就相当于上面的被@Mock注解的company的最终被new的对象,只不过@Mock注解帮我做了下面的CompanyZi这个类,此时可以看到下面的ComapanyZi返回的是null package com.one.util; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import static org.assertj.core.api.Assertions.catchThrowable; @RunWith(JUnit4.class) public class UserTest { class ComapanyZi extends Company{ public ComapanyZi(String name) { super(name); } public String hh(){ return null; } } private User user; @Test public void name() { user=new User(new ComapanyZi("zi"),1); Throwable throwable = catchThrowable(() -> { System.out.println(user.mm()); }); } } 此时可以看到结果是null 我们可以验证上面的结论 就是给@Mock注解的类添加一个final,然后在运行的时候就报错了 Company类,此时可以看到Compan已经被final修改了 package com.one.util; import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsConstructor public final class Company { private String name; public String hh(){ return "字符串"; } } User类 package com.one.util; import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsConstructor public class User { private Company company; private int age; public String mm(){ return company.hh(); } } 然后测试如下,然后运行下面的name方法,然后结果如下所示 package com.one.util; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) public class UserTest { @Mock private Company company; private User user; @Before public void setUp(){ user = new User(company,1); } @Test public void name() { user.mm(); } } 此时可以看到报错了,说Company不能被final修改,者更好符号cglib的规则 原文链接

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

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

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部分的功能。

用户登录
用户注册