开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 开源中国社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

社区给了PSI哪些帮助

PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。PSI以商贸企业的核心业务:采购、销售、库存(进销存)为切入点,最终目标是行业化的ERP解决方案。 PSI官网:https://gitee.com/crm8000/PSI 一个开源项目,越开放越能从社区获得力量。这是PSI这几年实践中获得的最大的感受。 那么PSI到底从社区中获得了哪些帮助和成长的力量呢? 1、被吐槽代码写得太垃圾。 吐槽也是生产力,被吐槽之后,就不断地改进代码的写法。 老司机都是从小白和翻车开始的起步的。 写的垃圾代码还能被人关注和鼓励,其实是说明PSI的代码很有价值,让人又爱又恨。 2、发现bug 虽然PSI的官方研发团队很小,但是依靠社区却拥有一只庞大的测试人员队伍。 3、反馈需求 https://gitee.com/crm8000/PSI/issues 上有堆积成山的新需求! 依靠社区,PSI同样拥有一只庞大的产品经理助理队伍。 4、GVP PSI荣获2017 GVP (https://gitee.com/gvp)大奖!既是荣誉又是极大的鼓励力量。 5、允许他人完全私有化PSI的代码 常常有PSI用户告诉我,他又用PSI的代码为自己或者公司完成了什么新的功能和赚了钱。 一个开源项目被他人使用就已经创造了社会价值,能让他人赚钱更是实现了极好的客户价值。...
PSI 发布于 5小时前 阅读 50

【区块链】以太坊区块链技术初探

LinApex个人简介     今年刚接触到区块链网络,奋斗在数字货币交易平台,底层框架设计,区块链钱包,区块链解决方案一线,做过人工智能,金融支付行业,目前正在做一款区块链+黄金的App系统。   连载系列(基于以太坊)     开发系列         1、【区块链】以太坊区块链技术初探         2、【区块链】以太坊区块链环境搭建         3、【区块链】以太坊区块链概念了解         4、【区块链】以太坊区块链技术进阶     源码系列         1、【以太坊源码】编译以太坊源码,打造自己的公链私链         2、【以太坊源码】以太坊源码研究系列(以太坊模拟机、挖矿、点对点网络库、节点发现、合约代码传输、加密签名等)   区块链基本概念     区块链就是通过密码学的方式形成的一个由集体维护的分布式数据库。     区块链的概念最近很火,它来自于比特币等加密货币的实现,但是目前,这项技术已经逐步运用在各个领域。什么是区块链技术?为了感性认识这个问题,我们可以使用谷歌地球的例子做类比,ajax不是什么新技术,但组合在一起就成就了产品谷歌地球,与之类似,区块链也不是什么新技术,但与加密解密技术、P2P网络...
linapex 发布于 4天前 阅读 991 评论 15 点赞 3

基于Activiti扩展的工作流引擎OpenWebFlow

开源地址:https://gitee.com/bluejoe/openwebflow(欢迎star) 1.    OpenWebFlow概述 OpenWebFlow是基于Activiti扩展的工作流引擎。Activiti (官方网站http://activiti.org/,代码托管在https://github.com/Activiti/Activiti)是一个新兴的基于 Apache 许可的支持 BPMN 2.0 标准的开源 BPM 产品,它是一个轻量级,可嵌入的 BPM 引擎,并且提供了功能丰富的开发和流程设计工具。OpenWebFlow与业务应用系统之间的关系如下图所示。 相对于Activiti,OpenWebFlow扩展的功能包括: 1) 完全接管了Activiti对活动(activity)权限的管理。 Activiti允许在设计model的时候指定每个活动的执行权限,但是,业务系统可能需要根据实际情况动态设置这些任务的执行权限(如:动态的Group)。OpenWebFlow完全实现了与流程定义时期的解耦,即用户对活动的访问控制信息单独管理(而不是在流程定义中预先写死),这样有利于动态调整权限,详见自定义活动权限管理; 2) 完全接管了Activiti对用户表(IDENTITY_XXX表)的管理。 在标准的工作流定义中,每个节点可以指定其候选人和候选用户组,但是比较惨的是,Activiti绑架了用户信息表的设计!这个是真正致命的,因为几乎每个业务系统...
白乔 发布于 6天前 阅读 1613 评论 6 点赞 3

如何通过Mysql的二进制日志恢复数据库数据

经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响。所以本文我们将和大家一起分享学习下如何通过Mysql的二机制日志(binlog)来恢复数据。   系统环境: 操作系统:CentOS 6.5 X64  (虚拟机); WEB服务:PHP+Mysql+apache; 网站:为方便,直接在本地搭建一个DEMO站点;   操作步骤: 1.开启binlog功能及基本操作; 2.往站点添加数据; 3.刷新binlog日志; 4.删除数据; 5.binlog日志内容解析; 6.恢复指定数据;   1.开启binlog功能及基本操作 要使用Mysql的binlog日志功能,首先要在Mysql的配置文件中开启该功能,操作很简单。找到Mysql的配置文件,在文件中添加一行”log_bin = mysql-bin”即可。其实在我安装的各种Mysql环境中,该功能通常都是默认开启的。 开启binlog功能后,在mysql的数据库目录下就会有诸如mysql-bin.000001、mysql-bin.000002等文件,这就是mysql的二进制日志文件。每当mysql启动或手动刷新日志后都会新建一个二进制日志文件。 首先我们mysql命令行中,用”show master logs”命令查看已有的binlog文件。   2.往站点添加数据 在网站后台文章模块里,我添加了几条...
GavinHsueh 发布于 4周前 阅读 366 评论 1 点赞 2

如何使用Jenkins持续集成C#网站项目

上两节分别讲了如何从vss迁移C#网站项目到gitlab和如何使用nuget管理C#网站项目,其实都是为了最后一节的内容做铺垫:持续集成C#网站项目,这里我们使用的持续集成工具是Jenkins
暗夜孤灯 发布于 4周前 阅读 43 点赞 1

为什么允许任何人完全私有化PSI的代码?

PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。PSI以商贸企业的核心业务:采购、销售、库存(进销存)为切入点,最终目标是行业化的ERP解决方案。 PSI官网:https://gitee.com/crm8000/PSI PSI一直坚持:允许任何人完全私有化PSI的代码。这里的完全私有化包括但不限于:直接销售获利;去掉代码里面关于PSI的任何标志,包括版权标志;用PSI的代码去申请专利。只要是能想到的商业行为,都许可。 这是为什么呢? 1、PSI本身在不断地开发中,私有化的代码在将来合并升级方面,将会有巨大的工作量。现实是一旦私有化,基本上也就不太可能合并新代码了。 2、PSI经过不断发展,形成了依托开源中国和码云的一个社区。私有化代码的公司,就需要以单个公司的资源与整个开源社区抗衡,其难度之大可想而知。 3、这也是PSI本身的品牌策略,通过许可他人全面的权利,并帮助别人赚钱,会帮助PSI形成良好的口碑。 4、任何一个公司的市场能力都是有限的,特别是在管理软件市场,大量的个性化需求导致需要众多的公司去服务。所以即使不允许私有化,也不会给PSI本身带来巨大的好处。反而倒不如完全开放,和大家一起开拓市场。 在实际的社区运营中,除了允许完全私有...
PSI 发布于 1个月前 阅读 413 点赞 2

tangyuan-mongo,使用SQL语法访问MongoDB

## 1. 介绍 tangyuan-mongo是tangyuan框架中的MONGO服务组件,tangyuan-mongo组件将一系列的Mongo操作封装成Tangyuan中的服务,并提供统一的方式进行访问;同时还提供以SQL语法的方式访问Mongo。 ![示意图](http://www.xson.org/project/mongo/1.2.0/images/01.png) 项目源码: 官网地址: ## 2. 使用SQL语法访问Mongo 如果我们要查询性别为女性,年龄在18岁到28岁之间的用户,如果使用Mongo原始的语法,我们需要这样写: db.user.find({"gender":"Female", "age":{"$gte":18, "$lte":28}}) 现在,我们可以使用下面的方式: select * from user where gender = 'Female' and age >= 18 and age <= 28 是不是感觉就像SQL查询?是的没错,tangyuan-mongo就是提供以SQL语法的方式访问Mongo。 ## 3. 支持的SQL语法 ### 3.1 插入 > 语法 INSERT INTO tbl_name (col_name,...) VALUES (col_value,...) > 示例 INSERT INTO user_info(id, name, age, amount) VALUES(1, 'xsonorg', 18, 1000); > 解析后Mongo语法 db.user_info.insert({ "id" : 1 , "name" : "xsonorg" , "age" : 18 , "amount" : 1000}) ### 3.2 查询 > 语法 SELECT {col_name | expr}, ... [FROM tbl_name [WHER...
xson_org 发布于 2个月前 阅读 252 评论 5

单点优化系列--session共享踩坑记

由于公司一直使用nginx的iphash负载策略,iphash的优劣这里不做分析,在大量请求下,iphash策略是个坑, 抛开此策略,多个服务器做负载均衡就要先做session共享
java_龙 发布于 2个月前 阅读 736 评论 2

微服务开发的入门级框架Spring Boot详解(五)

        通过第四章的介绍,大家可能更能理解使用SpringBoot开发是多么爽并且快捷的了。         比如使用SSM框架开发写一个HelloWord,会经过以下几个步骤:         写POM文件,下载依赖包。         配置Spring MVC,视图解析器等         配置Spring,开启注解扫描器等(发现配置了一大堆,还没开始写真正的业务逻辑)         写Controller,实现HellWord         配置容器         应用打WAR包         放到容器里跑         以上步骤甚是繁琐,而使用Spring Boot呢?你只需以下几步就可以实现:          写POM文件,下载依赖包。         写Controller,实现HellWord         启动程序      对比后,我来说今天真正的主题,如何使用注解写动态SQL 1、动态SQL注解详解        写动态SQL使用的注解不再是:             @Select             @Update             @Delete             @Insert     而是对应 以下四个注解: @SelectProvider @UpdateProvider @DeleteProvider @InsertProvider     注解没有太多...
二十岁以后 发布于 2个月前 阅读 1547 评论 18 点赞 3

微服务开发的入门级框架Spring Boot详解(四)

         前几章把Spring Boot大概都介绍了个遍,如果各位朋友有什么疑问和指教欢迎在评论指出。下面我将介绍如何使用Spring Boot进行企业级开发。大概会从以下几点开始介绍。 如何使用Spring Boot进行企业开发 Spring Boot与Spring Cloud(Spring Cloud会单独写一系列,包括PaaS云环境如何使用) Spring Boot集成Mybatis(这里会重点说,包括事物,用注解写SQL及动态SQL等等) 1、使用Spring Boot进行企业开发         刚开始接触微服务的开发我基本是一脸懵逼的状态,因为以前是做传统电商项目的开发,还好我的经理是个大牛(Pivotal原厂出来的),他对于微服务的开发以及PaaS云可以说是理解到骨子里了,感谢我的经理给了我很多的建议和思路。首先微服务的开发最先思考的应该是模型的设计,从数据库模型开始,因为微服务架构就是要高内聚低耦合,一个功能挂了,我应用其他模块照样跑。数据库模型很重要,可以说一个数据库的设计表结构就代表了你要实现的功能部分。写微服务就像是在搭积木,你的积木颜色可能不同,但最终却能完美的搭在一起,即使抽掉几块也不会倒。        当数据库建立好后,我又在思考,传统架构一般都是Controller接收数据,返回...
二十岁以后 发布于 2个月前 阅读 1384 评论 8 点赞 10

微服务开发的入门级框架Spring Boot详解(三)

首先,感谢各位朋友指出的问题,我会更加认真负责的写下去,希望帮助正在微服务前进的朋友,大家一起努力!
二十岁以后 发布于 2个月前 阅读 892 评论 12 点赞 5

微服务开发的入门级框架Spring Boot详解(二)

1、Spring Boot的属性配置文件         1.1 Spring Boot的属性配置文件的第一种形式             使用properties配置文件,如下两个属性的含义是更改访问端口为8081,并且加了一个contextPath,可以理解为在地址栏多加层地址。 server.port=8081 server.context-path=/joyou                 右键点击DemoApplication.java ——》Run As ——》Spring Boot App启动程序             效果如下,首先从日志上看,端口已经变为8081             浏览器访问效果如下。                 补充:             属性文件是最常见的管理配置属性的方式。Spring Boot 提供的 SpringApplication 类会搜索并加载 application.properties 文件来获取配置属性值。SpringApplication 类会在下面位置搜索该文件: 1.当前目录的/config子目录 2.当前目录 3.classpath 中的/config包 4.classpath 上面的顺序也表示了该位置上包含的属性文件的优先级。优先级按照从高到低的顺序排列。 可以通过spring.config.name这个key的配置属性来指定不同的属性文件名称。也可以通过spring.config.location来添加额外...
二十岁以后 发布于 3个月前 阅读 4700 评论 24 点赞 4

微服务开发的入门级框架Spring Boot详解(一)

前几天把thymeleaf写完了,在写thymeleaf的时候就提过几嘴微服务,那么接下来就讲一讲微服务开发的那点事!
二十岁以后 发布于 3个月前 阅读 2059 评论 16 点赞 2

Nginx代理webSocket经常中断的解决方案, 如何保持长连接

## **背景** 这天气够热的,要处理的事情也够多的。。。。 ## **想看解决的,直接 ctrl+f搜索关键字‘配置点’**## ## **开始前交代(想看原因的看这个,个人观点,不代表正确)**## 解说:今天用nginx反代通讯项目,发现平均1分钟左右,就会出现webSocket连接中断,然后查看了一下,是nginx出现的问题。 **原因是:**nginx等待你 **第一次通讯和第二次通讯的时间差**,**超过**了它设定的**最大等待时间**,简单来说就是,**超时**,所以就啪的一声断了,开始上解决步骤。 ## **解决方案一** 其实只要配置nginx.conf的对应localhost里面的这几个参数就好 1. proxy_connect_timeout; 2. proxy_read_timeout; 3. proxy_send_timeout; ## **解决方案二** 发心跳包,原理就是在有效地再读时间内进行通讯,重新刷新再读时间 **备注:配置的位置为localhost,给出简略地址** ``` http { server { location / { root html; index index.html index.htm; proxy_pass http://webscoket; proxy_http_version 1.1; proxy_connect_timeout 4s; #配置点1 proxy_read_timeout 60s; #配置点2,如果没效,可以考虑这个时间配置长一点 proxy_send_timeout 12s; #配置点3 proxy_set_header Up...
jack-0023 发布于 3个月前 阅读 813 评论 9

xson 1.0.2 发布,新增byte[] buffer,支持XCO

## 1. 项目介绍 ![Xson](http://www.xson.org/project/xson/1.0.2/images/00.png) Xson是一个Java对象序列化和反序列化框架。支持Java对象到字节数组的序列化,和从字节数组到Java对象的反序列化。 官网地址: 项目地址: ## 2. 新版本特性 1. 新增`buffer`包,此包中的相关类提供对序列化过程中的byte[]进行分配、使用、回收的管理;进一步提供序列化的速度,并减少Full GC。 2. 提供带有偏移内容的API支持; 3. 提供XCO对象序列化和反序列的支持; 4. 提供扩展配置文件的支持; ## 3. 使用教程 ### 3.1 基本使用 > a. 添加依赖 org.xson xson 1.0.2 > b. 序列化 User user = new User(); // set... byte[] data = XSON.encode(user); > c. 反序列化 // byte[] data User user = XSON.decode(data); > d. 带有偏移内容的序列化和反序列化 ![偏移内容](http://www.xson.org/project/xson/1.0.2/images/01.png) int x = 6; User user = new User(); // set... byte[] data = XSON.encode(x, user); // byte[] data User user = XSON.decode(x, data); ### 3.2 配置文件 > 1.xson.properties文件配置示例: # Support for XCO xco=true # ByteArrayManager configuration by...
xson_org 发布于 3个月前 阅读 809 评论 2

微信小程序下nginx代理wss,实现兼容原本服务协议ws,Java版本

## 开始前说明 #### 微信小程序如果使用webSocket协议的话,那么按照官网上的要求是必须使用了wss协议,使用了一个框架,但不支持wss,所以后面用nginx代理解决了这个问题,接下来上代码#### ### 软件列表 1. 我使用的是 **nginx-1.12.1**,附上下载地址http://nginx.org/, 详细的nginx教程可以看一下这位的博客 http://www.cnblogs.com/edward2013/p/5506588.html 2. 需要有**SSL证书的域名**一个 3. 我使用的是**tomcat7**,**JDK7** 4. **服务器**一个(有公网IP的那种,别问我为什么强调这个。。。) ## 熟悉这些的直接ctrl+f搜索关键字 '全文最主要',看着一步就好了 ## 好了开始搞事情 1. 首先先在服务器上部署你的项目,并且测试运行起来(保证外网访问的到,**通过公网IP访问**) 在tomcat7上运行项目,我去掉项目名,直接是**ROOT文件夹** 像这样 ![输入图片说明](https://static.oschina.net/uploads/img/201707/27114132_BnpV.jpg "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201707/27114159_oyCU.jpg "在这里输入图片标题") 2. 在服务器上部署nginx,然后修改配置,然后测试跑起来 配置这样修改,**listen是监听的端口*...
jack-0023 发布于 3个月前 阅读 136 点赞 1

spring boot 注入 property的三种方式

            以前使用spring的使用要注入property要配置PropertyPlaceholder的bean对象。在springboot除  了这种方式以外还可以通过制定 配置ConfigurationProperties直接把property文件的 属性映射到 当前类里面。 @ConfigurationProperties(prefix = "mypro", merge = true, locations = { "classpath:my.properties" }) ConfigurationProperties prefix 属性指示property文件中属性的前缀是什么。我这里写的是mypro。 因此property文件的属性必须mypro.x.y=z的形式;      配置好ConfigurationProperties 之后就可以把property文件的属性映射到当前类了。 mypro.a:1 mypro.b:2 abc.d:123 property 文件里面mypro前缀的有a 和b两个。因此我在当前类就可以新建这两个属性。 private int a; private int b; 这些需要映射的属性一定要加上getter 和setter。因为spring是通过反射调用方法来修改属性值的             以前使用spring注入property的方式也同样适用。以前是xml配置PropertyPlaceholder。现在使用@bean 或者直接@Component配置这个类。只要把PropertyPlaceholderConfigurer添加到bean工厂,就可以使用@Value 取值了。 @Component pub...
安西都护府首席程序员 发布于 3个月前 阅读 1062 评论 4 点赞 4

XLSUnit,面向数据库的单元测试工具

大多数程序员和项目经理回避单元测试是因为工作量巨大且在面向数据库应用没有很好的工具能支撑,XLSUnit是我在公司研发部开发的一款面向数据库的单元测试工具,它能有效减少单元测试代码量和辅助面向数据库应用测试
闲大赋 发布于 4个月前 阅读 360

Petya勒索病毒疫苗出现,分分钟让电脑对病毒免疫

继wannacry之后,Petya勒索软件攻击再次席卷全球,对欧洲、俄罗斯等多国政府、银行、电力系统、通讯系统、企业以及机场造成了不同程度的影响。   研究发现,Petya 会锁定磁盘的 MFT 和 MBR 区,导致计算机无法启动。除非受害者支付赎金解锁,否则无法恢复他们的系统。但在此前的wannacry勒索软件事件发生的时候,阿里聚安全就建议大家不要支付赎金,一方面支付赎金后不一定能找回数据,其次这些赎金会进一步刺激攻击者挖掘漏洞,并升级攻击手段。   好消息是Cybereason安全研究员Amit Serper已经找到了一种方法来防止Petya (notpetya / sortapetya / petna)勒索软件来感染电脑,这种方法简直一劳永逸!   研究员蜂拥寻找killswitch机制 在Petya 爆发的第一时间,国内外安全研究人员们蜂拥而上对其进行分析,一开始他们认为Petya无非是新瓶装旧酒,和其他勒索软件相似。但在进一步研究过程中,他们发现这是一种全新的勒索蠕虫病毒。因此它的名字从Petya逐渐变为Notpetya,Petna,以及SortaPetya。   研究员分析勒索软件的运作机制后,发现NotPetya会搜索本地文件,如果文件已经在磁盘上存在,那么勒索软件就会退出加密。这意味着,受害者只需要在自己电脑上创建这个文...
阿里聚安全 发布于 4个月前 阅读 543 点赞 1

Jboot发布啦,如果你做微服务架构,你应该看看。

Jboot发布啦   Jboot是什么呢? 详情地址地址:https://git.oschina.net/fuhai/jboot jboot是一个类型springboot的开源框架,基于jfinal和undertow等非常优秀的、已经在商业项目中应用多年的、有良好口碑的、性能非常不出的诸多框架开发而成。 Jboot是一个新的轮子,但是是集大家之所长的一个极度好用的轮子。 如何使用Jboot呢? 第一步:maven依赖。 <dependency> <groupId>io.jboot</groupId> <artifactId>jboot</artifactId> <version>1.0-alpha3</version> </dependency>   第二步:coding 废话,都低coding都支持什么样的coding,有什么样的好处呢?   我们从几个方面来看: 一、mvc @RequestMapping("/") public class MyController extend JbootController{    public void index(){ renderText("hello jboot"); } public static void main(String [] args){ Jboot.run(args); } }   启动main方法,然后访问 http://127.0.0.1:8088,然后你就能看到浏览器输出:hello jboot.   怎么样?是否极度简单呢?   我们继续.     二、数据库查询。 表结构:   CREATE TABLE `user` (   `id` int(11) uns...
michaely 发布于 4个月前 阅读 2529 评论 23 点赞 7

社区给了PSI哪些帮助

PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。PSI以商贸企业的核心业务:采购、销售、库存(进销存)为切入点,最终目标是行业化的ERP解决方案。 PSI官网:https://gitee.com/crm8000/PSI 一个开源项目,越开放越能从社区获得力量。这是PSI这几年实践中获得的最大的感受。 那么PSI到底从社区中获得了哪些帮助和成长的力量呢? 1、被吐槽代码写得太垃圾。 吐槽也是生产力,被吐槽之后,就不断地改进代码的写法。 老司机都是从小白和翻车开始的起步的。 写的垃圾代码还能被人关注和鼓励,其实是说明PSI的代码很有价值,让人又爱又恨。 2、发现bug 虽然PSI的官方研发团队很小,但是依靠社区却拥有一只庞大的测试人员队伍。 3、反馈需求 https://gitee.com/crm8000/PSI/issues 上有堆积成山的新需求! 依靠社区,PSI同样拥有一只庞大的产品经理助理队伍。 4、GVP PSI荣获2017 GVP (https://gitee.com/gvp)大奖!既是荣誉又是极大的鼓励力量。 5、允许他人完全私有化PSI的代码 常常有PSI用户告诉我,他又用PSI的代码为自己或者公司完成了什么新的功能和赚了钱。 一个开源项目被他人使用就已经创造了社会价值,能让他人赚钱更是实现了极好的客户价值。...
PSI 发布于 5小时前 阅读 50

微信小程序下nginx代理wss,实现兼容原本服务协议ws,Java版本

## 开始前说明 #### 微信小程序如果使用webSocket协议的话,那么按照官网上的要求是必须使用了wss协议,使用了一个框架,但不支持wss,所以后面用nginx代理解决了这个问题,接下来上代码#### ### 软件列表 1. 我使用的是 **nginx-1.12.1**,附上下载地址http://nginx.org/, 详细的nginx教程可以看一下这位的博客 http://www.cnblogs.com/edward2013/p/5506588.html 2. 需要有**SSL证书的域名**一个 3. 我使用的是**tomcat7**,**JDK7** 4. **服务器**一个(有公网IP的那种,别问我为什么强调这个。。。) ## 熟悉这些的直接ctrl+f搜索关键字 '全文最主要',看着一步就好了 ## 好了开始搞事情 1. 首先先在服务器上部署你的项目,并且测试运行起来(保证外网访问的到,**通过公网IP访问**) 在tomcat7上运行项目,我去掉项目名,直接是**ROOT文件夹** 像这样 ![输入图片说明](https://static.oschina.net/uploads/img/201707/27114132_BnpV.jpg "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201707/27114159_oyCU.jpg "在这里输入图片标题") 2. 在服务器上部署nginx,然后修改配置,然后测试跑起来 配置这样修改,**listen是监听的端口*...
jack-0023 发布于 3个月前 阅读 136 点赞 1

Cboard开源BI商业智能的新秀,从数据库到图表生成,简单!

此文根据CBoard官方文档整理 原文地址:https://github.com/yzhang921/CBoard/wiki/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3 系统需求 请确认您的安装环境 JDK version above 1.8 MySQL(注意:如果为8.0版本,请将项目的pom.xml中的驱动mysql-connector-java版本设置为5.1.44。否则连接数据库会报错。) Maven Tomcat Phantomjs (for export dashbaord) Mail Servier How to build project 1 Download or git clone project git clone https://github.com/yzhang921/CBoard.git 2 Install metadata of CBoard (take MySQL database as example) 2.1 Install demo metadata and sample foodmart db Download cboard_demo & foodmart Enter into the path of these two files Use MySQL Command Line tool login and execute source cboard_demo.sql source foodmart.sql After success completed, check if cboard_demo2 and foodmart2 databases have been created 2.2 You can alternative choose start from a blank settingmysql -- CREATE DATEBASE cboard; Execute ddl to create metadata table: sql/mysql/mysql.sql 3 Modify metadata connection properties fil...
gugudu 发布于 3个月前 阅读 179

SpringBoot:深入探索内嵌tomcat启动流程

1.SpringBoot启动过程中所涉及的类: springApplication -> run stopwatch AnnotationConfigApplicationContext: register, refresh -> AbstractApplicationContext -> refresh AnnotationConfigEmbeddedWebApplicationContext XmlBeanDefinitionReader RepositoryConfigurationDelegate ClassPathMapperScanner ConfigurationClassPostProcessor GenericScope AutowiredAnnotationBeanPostProcessor TomcatEmbeddedServletContainer StandardService StandardEngine WebApplicationContext ContextLoader ServletRegistrationBean FilterRegistrationBean RequestMappingHandlerMapping EndpointHandlerMapping SimpleUrlHandlerMapping RequestMappingHandlerAdapter ExceptionHandlerExceptionResolver arterDeprecationWarningAutoConfiguration URLConfigurationSource AnnotationMBeanExporter DefaultLifecycleProcessor DocumentationPluginsBootstrapper ApiListingReferenceScanner CachingOperationNameGenerator TomcatEmbeddedServletContainer Application 2.初步分析SpringBoot启动过程 先看看在SpringApplication.run方法做了什么: public Configurable...
wiitht 发布于 2个月前 阅读 30

快速了解人工智能结晶之语音转换文字

科技解放生产力,人工智能的应用如今是大热,那么今天就来给各位介绍一下IBM在这方面的一个小的尝试,语音转换文字。咱们来看一看相较于传统的转换,结合Watson的IBM是如何做到让识别率飙升的。
IBM Bluemix

SpringMVC整合fastdfs-client-java实现web文件上传下载

版权声明:本文为博主原创文章,转载请标明出处(http://blog.csdn.net/wlwlwlwl015)Thanks. 目录(?)[+] 前言 上一篇博客记录了FastDFS v5.0.5在Linux CentOS 7中的安装与配置(分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置),本篇blog主要记录一下SpringMVC整合FastDFS的java客户端实现web中的文件上传与下载。 下载编译 在余大的GitHub上可以下载到fastdfs-client-java的源代码:  如上图,这个版本是通过JDK1.5编译的,根据需求可以通过源码重新编译jar包,我这里将原项目的maven编译插件的版本改为JDK 1.7之后重新进行了编译,编译安装成功后可以在我们本地的maven仓库看到fastdfs-client-java的jar包:    最后在我们项目的pom中添加fastdfs-client-java的坐标信息就OK了: <!-- fastdfs-client --> <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.25</version> </dependency> 1 2 3 4 5 6 文件上传 首先来实现文件上传,fastdfs-client-java的上传是通过传入一个byte[ ]来完成的,简单看一下源码: public String[] upload_file(byte[] file_buff, String file_ext_name, ...
glen_xu 发布于 2个月前 阅读 41

【区块链】以太坊区块链技术初探

LinApex个人简介     今年刚接触到区块链网络,奋斗在数字货币交易平台,底层框架设计,区块链钱包,区块链解决方案一线,做过人工智能,金融支付行业,目前正在做一款区块链+黄金的App系统。   连载系列(基于以太坊)     开发系列         1、【区块链】以太坊区块链技术初探         2、【区块链】以太坊区块链环境搭建         3、【区块链】以太坊区块链概念了解         4、【区块链】以太坊区块链技术进阶     源码系列         1、【以太坊源码】编译以太坊源码,打造自己的公链私链         2、【以太坊源码】以太坊源码研究系列(以太坊模拟机、挖矿、点对点网络库、节点发现、合约代码传输、加密签名等)   区块链基本概念     区块链就是通过密码学的方式形成的一个由集体维护的分布式数据库。     区块链的概念最近很火,它来自于比特币等加密货币的实现,但是目前,这项技术已经逐步运用在各个领域。什么是区块链技术?为了感性认识这个问题,我们可以使用谷歌地球的例子做类比,ajax不是什么新技术,但组合在一起就成就了产品谷歌地球,与之类似,区块链也不是什么新技术,但与加密解密技术、P2P网络...
linapex 发布于 4天前 阅读 991 评论 15 点赞 3

PSI的技术难度在哪里?

PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。PSI以商贸企业的核心业务:采购、销售、库存(进销存)为切入点,最终目标是行业化的ERP解决方案。 PSI官网:https://gitee.com/crm8000/PSI   今天我们讨论一下PSI的技术难度在哪里? 1、PSI的技术难度之一:不在局部细节而是整体架构 这是企业管理软件的一个共有的特性:局部细节代码都很简单,但是要总体把握就难度加大。   2、PSI的技术难度之二:把业务建模转化为技术建模 这是个需要不断实践,总结经验的环节。   3、PSI的技术难度之三:让其他人迅速掌握二次开发技术 PSI是开源项目,代码运行任何人完全私有化。如果他人不能迅速掌握二次开发技术,PSI对他们而言就毫无价值。 编写开发文档、提供技术支持服务都是解决这个问题的方法。 看似只是写文档工作,其实从软件工程的角度来看,这是设计性质的工作。把文档写好,是一个实实在在的技术活儿,也是很多软件从业人员不擅长的工作。   4、PSI的技术难度之四:如何处理底层框架的升级 PSI的UI用的是ExtJS 4.2,PHP框架是ThinkPHP 3.2,这两个框架的版本都不是最新版本,要不要升级到最新版本?如果不升级到最新版本,那么以后怎么处理?...
PSI 发布于 1天前 阅读 61 点赞 2

基于Activiti扩展的工作流引擎OpenWebFlow

开源地址:https://gitee.com/bluejoe/openwebflow(欢迎star) 1.    OpenWebFlow概述 OpenWebFlow是基于Activiti扩展的工作流引擎。Activiti (官方网站http://activiti.org/,代码托管在https://github.com/Activiti/Activiti)是一个新兴的基于 Apache 许可的支持 BPMN 2.0 标准的开源 BPM 产品,它是一个轻量级,可嵌入的 BPM 引擎,并且提供了功能丰富的开发和流程设计工具。OpenWebFlow与业务应用系统之间的关系如下图所示。 相对于Activiti,OpenWebFlow扩展的功能包括: 1) 完全接管了Activiti对活动(activity)权限的管理。 Activiti允许在设计model的时候指定每个活动的执行权限,但是,业务系统可能需要根据实际情况动态设置这些任务的执行权限(如:动态的Group)。OpenWebFlow完全实现了与流程定义时期的解耦,即用户对活动的访问控制信息单独管理(而不是在流程定义中预先写死),这样有利于动态调整权限,详见自定义活动权限管理; 2) 完全接管了Activiti对用户表(IDENTITY_XXX表)的管理。 在标准的工作流定义中,每个节点可以指定其候选人和候选用户组,但是比较惨的是,Activiti绑架了用户信息表的设计!这个是真正致命的,因为几乎每个业务系统...
白乔 发布于 6天前 阅读 1613 评论 6 点赞 3

为什么允许任何人完全私有化PSI的代码?

PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。PSI以商贸企业的核心业务:采购、销售、库存(进销存)为切入点,最终目标是行业化的ERP解决方案。 PSI官网:https://gitee.com/crm8000/PSI PSI一直坚持:允许任何人完全私有化PSI的代码。这里的完全私有化包括但不限于:直接销售获利;去掉代码里面关于PSI的任何标志,包括版权标志;用PSI的代码去申请专利。只要是能想到的商业行为,都许可。 这是为什么呢? 1、PSI本身在不断地开发中,私有化的代码在将来合并升级方面,将会有巨大的工作量。现实是一旦私有化,基本上也就不太可能合并新代码了。 2、PSI经过不断发展,形成了依托开源中国和码云的一个社区。私有化代码的公司,就需要以单个公司的资源与整个开源社区抗衡,其难度之大可想而知。 3、这也是PSI本身的品牌策略,通过许可他人全面的权利,并帮助别人赚钱,会帮助PSI形成良好的口碑。 4、任何一个公司的市场能力都是有限的,特别是在管理软件市场,大量的个性化需求导致需要众多的公司去服务。所以即使不允许私有化,也不会给PSI本身带来巨大的好处。反而倒不如完全开放,和大家一起开拓市场。 在实际的社区运营中,除了允许完全私有...
PSI 发布于 1个月前 阅读 413 点赞 2

为什么说PSI是一款基于SaaS模式的企业管理软件?

PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。PSI以商贸企业的核心业务:采购、销售、库存(进销存)为切入点,最终目标是行业化的ERP解决方案。 PSI官网:https://gitee.com/crm8000/PSI 一、SaaS模式 SaaS:Software as a Service 软件即服务,说PSI是SaaS,本质上就是说PSI是服务。 首先PSI是软件,这个很显然,是用PHP写的开源ERP系统。因为PHP强大的跨平台功能,所以PSI的很多用户把PSI部署在单机、局域网、自己的虚拟空间、阿里云服务器上。 但是也因为这种多样的部署方式,容易让人误解PSI仅仅是一款软件而已。 那么说PSI是服务,体现在哪些方面呢? 1、PSI本身的代码完全开源,任何人都可以完全私有化PSI的代码,PSI官方也不从销售PSI的代码副本来获利。这和传统的商业软件销售模式就已经完全不一样了。 2、提供免费的二次开发技术支持,这种技术支持包括:提供完善的数据库设计文档;提供完善的产品使用手册;提供免费VIP QQ群;提供免费的email技术支持;提供免费的电话技术支持。这些免费的服务足够满足需要省钱的企业用户的技术需求了。 3、对于没有IT力量的企业用户,PSI还提供付费的二次开发技术服务。 4、因为ERP这个产品的特殊...
PSI 发布于 1周前 阅读 144 评论 1 点赞 2

xtophp开发教程之安装配置视频1

视频地址: https://v.qq.com/x/page/t0563qdh6gm.html 项目地址:https://gitee.com/xtoyun/xtophp 如果您觉得XtoPHP还不错,不妨打赏我们一下; 我们的愿景:帮助开发者节省时间挣钱 https://gitee.com/xtoyun/xtophp#project-donate-overview QQ群:96050256 您可能还对以下文章感兴趣:   1、关于xtophp开源一二三
xtophp 发布于 1天前 阅读 9

Spring Quartz提示:This scheduler instance is still active but was recovered by another in the cluster

    项目启动提示:org.springframework.scheduling.quartz.LocalDataSourceJobStore 2017-09-18 11:06:48,260-- WARN -- This scheduler instance (xxx) is still active but was recovered by another instance in the cluster. This may cause inconsistent behavior.      控制台重复输出以上内容,不执行定时器。     原因:在相同的数据库(集群)下,存在另外一个相同的应用(可能是测试或其他开发环境)已经在执行该定时任务,Quartz为保证数据一致性,后启动的定时任务不会执行。     解决:关掉另外一个地方的定时任务,重启当前应用。
Jacktanger 发布于 1个月前 阅读 122

记一次为公司搭建maven私服的过程

本来我用的是阿里云的maven仓库,速度快的飞起. 但是这仅仅是对于公共的类库来说的.而公司有自己的一些集成工具包,需要自己在推送到本地仓库,这个步骤是重复且麻烦,公司每个人都要推送一次,想想也觉得这是不合理的,遂想为公司搭建一个nexus-maven私服,为公司提升点效率,减少不必要的时间损耗吧. 大致流程如下: ![安装流程](https://static.oschina.net/uploads/img/201710/23123608_dlsQ.png "在这里输入图片标题") ## 安装环境 安装环境为: centOS 6.5\ ![输入图片说明](https://static.oschina.net/uploads/img/201710/23111054_25uR.png "在这里输入图片标题") JDK的版本是 : jdk1.8\ ![输入图片说明](https://static.oschina.net/uploads/img/201710/23111108_Bk5S.png "在这里输入图片标题") nexus是当前(2017-10)的最新版本: nexus oss 3.6 ## 下载 ``` http https://www.sonatype.com/download-oss-sonatype ``` 下载完成后, 解压到nexus的 home目录下面 得到的两个目录,nexus-版本信息(**下称:ne-home**),sonatype-work.这两个目录. 一直以为这个是收费使用的,没想到是免费的. 这个真是良心产品.至少现在我认为是的. ## 安装 添加linux用户 nexus ``` bash adduser...
gxLong 发布于 1天前 阅读 5

(九)整合spring cloud云服务架构 - HongHu commonservice-eureka 项目构建过程

整合spring cloud云服务架构 - HongHu commonservice-eureka 项目构建过程
SpringCloud关注者 发布于 2周前 阅读 42 评论 6 点赞 3

Nginx代理webSocket经常中断的解决方案, 如何保持长连接

## **背景** 这天气够热的,要处理的事情也够多的。。。。 ## **想看解决的,直接 ctrl+f搜索关键字‘配置点’**## ## **开始前交代(想看原因的看这个,个人观点,不代表正确)**## 解说:今天用nginx反代通讯项目,发现平均1分钟左右,就会出现webSocket连接中断,然后查看了一下,是nginx出现的问题。 **原因是:**nginx等待你 **第一次通讯和第二次通讯的时间差**,**超过**了它设定的**最大等待时间**,简单来说就是,**超时**,所以就啪的一声断了,开始上解决步骤。 ## **解决方案一** 其实只要配置nginx.conf的对应localhost里面的这几个参数就好 1. proxy_connect_timeout; 2. proxy_read_timeout; 3. proxy_send_timeout; ## **解决方案二** 发心跳包,原理就是在有效地再读时间内进行通讯,重新刷新再读时间 **备注:配置的位置为localhost,给出简略地址** ``` http { server { location / { root html; index index.html index.htm; proxy_pass http://webscoket; proxy_http_version 1.1; proxy_connect_timeout 4s; #配置点1 proxy_read_timeout 60s; #配置点2,如果没效,可以考虑这个时间配置长一点 proxy_send_timeout 12s; #配置点3 proxy_set_header Up...
jack-0023 发布于 3个月前 阅读 813 评论 9

spring boot配置druid

在pom中添加starter依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.4</version> </dependency>   在properties中添加连接池配置 ## DB spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # JDBC url of the database. spring.datasource.url= jdbc:mysql://127.0.0.1:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false # Login user of the database. spring.datasource.username= xxx # Name of the datasource. spring.datasource.name=test # Login password of the database. spring.datasource.password=xxx spring.jooq.sql-dialect=mysql spring.datasource.druid.max-active=15 ##druid view spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=admin888 spring.datasource.druid.aop-patterns=com.demo.service.* spring.aop.proxy-target-class=true   启动...
hc24 发布于 5天前 阅读 19

VSCode拓展插件推荐(HTML、Node、Vue、React开发均适用)

相似功能的插件,不推荐全都装上,请挑选一个使用 本列表所有插件都经过本人测试,且认为相对好用,但是不代表不存在任何问题,大多数可能与编辑器版本或是插件版本有关
楠木楠 发布于 1个月前 阅读 128 点赞 1

使用MyEclipse盗版的若干危害

数据显示,每年有超过数十家企业被厂商打击盗版,遭遇账户封停、禁止继续使用相关产品,迫使研发流程瘫痪,造成企业不可估量的巨大损失和潜在风险。不仅如此,使用盗版还将面临被起诉赔付高额罚金的风险,不管对企业还是个人来说都是得不偿失的。 我们曾收到部分MyEclipse用户的使用问题反馈,然而经技术研发人员详细了解情况和测试后,发现这些问题都是曾经使用过盗版而造成的。下面我们将给大家列举一些使用MyEclipse盗版会出现的问题: 1、MyEclipse破解后,软件启动会经常出现闪退,并出现错误提示: 2、MyEclipse破解完只能用5天,不利用项目开发或学习: 3、MyEclipse 安装破解后总出现报错,并自动退出: 4、使用MyEclipse 盗版过程中会频繁出现各种类型报错: 5、已有多名MyEclipse客户使用盗版后发现极大的安全隐患转而使用正版,然而盗版未卸载干净,导致之后购买的正版无法正常激活,影响项目开发进度: 6、如上,使用MyEclipse盗版经常会出现security alert integrity check error这个问题 7、MyEclipse破解版中,输入完usercode,点击systemId不能自动生成 8、MyEclipse破解版中,点击Active后,ACTIVATION_KEY 为null 9、破解完成后运行MyEclipse,点击tom...
Miss_Hello_World 发布于 1天前 阅读 5

java 电子商务云平台b2b b2c o2o springmvc+mybatis+spring cloud+spring boot

b2b b2c o2o电子商务平台
SpringCloud关注者 发布于 17小时前 阅读 5

ETCD轮换使用场景与工作原理(学习笔记)

ETCD使用案例 据公开资料显示,至少有CoreOS, Google Kubernetes(K8S), Cloud Foundry, 以及在Github上超过500个项目在使用ETCD。   ETCD是什么     etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现。etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性。Raft是一个来自Stanford的新的一致性算法,适用于分布式系统的日志复制,Raft通过选举的方式来实现一致性,在Raft中,任何一个节点都可能成为Leader。     etcd 集群的工作原理基于 raft 共识算法 (The Raft Consensus Algorithm)。etcd 在 0.5.0 版本中重新实现了 raft 算法,而非像之前那样依赖于第三方库 go-raft 。raft 共识算法的优点在于可以在高效的解决分布式系统中各个节点日志内容一致性问题的同时,也使得集群具备一定的容错能力。即使集群中出现部分节点故障、网络故障等问题,仍可保证其余大多数节点正确的步进。甚至当更多的节点(一般来说超过集群节点总数的一半)出现故障而导致集群不可用时,依然可以保证节点中的数据不会出现错误的结果。   服务发现(Service Discovery) 服务发现了解集群...
ND小龙 发布于 2个月前 阅读 23

【区块链】以太坊区块链技术初探

LinApex个人简介     今年刚接触到区块链网络,奋斗在数字货币交易平台,底层框架设计,区块链钱包,区块链解决方案一线,做过人工智能,金融支付行业,目前正在做一款区块链+黄金的App系统。   连载系列(基于以太坊)     开发系列         1、【区块链】以太坊区块链技术初探         2、【区块链】以太坊区块链环境搭建         3、【区块链】以太坊区块链概念了解         4、【区块链】以太坊区块链技术进阶     源码系列         1、【以太坊源码】编译以太坊源码,打造自己的公链私链         2、【以太坊源码】以太坊源码研究系列(以太坊模拟机、挖矿、点对点网络库、节点发现、合约代码传输、加密签名等)   区块链基本概念     区块链就是通过密码学的方式形成的一个由集体维护的分布式数据库。     区块链的概念最近很火,它来自于比特币等加密货币的实现,但是目前,这项技术已经逐步运用在各个领域。什么是区块链技术?为了感性认识这个问题,我们可以使用谷歌地球的例子做类比,ajax不是什么新技术,但组合在一起就成就了产品谷歌地球,与之类似,区块链也不是什么新技术,但与加密解密技术、P2P网络...
linapex 发布于 4天前 阅读 991 评论 15 点赞 3

基于Activiti扩展的工作流引擎OpenWebFlow

开源地址:https://gitee.com/bluejoe/openwebflow(欢迎star) 1.    OpenWebFlow概述 OpenWebFlow是基于Activiti扩展的工作流引擎。Activiti (官方网站http://activiti.org/,代码托管在https://github.com/Activiti/Activiti)是一个新兴的基于 Apache 许可的支持 BPMN 2.0 标准的开源 BPM 产品,它是一个轻量级,可嵌入的 BPM 引擎,并且提供了功能丰富的开发和流程设计工具。OpenWebFlow与业务应用系统之间的关系如下图所示。 相对于Activiti,OpenWebFlow扩展的功能包括: 1) 完全接管了Activiti对活动(activity)权限的管理。 Activiti允许在设计model的时候指定每个活动的执行权限,但是,业务系统可能需要根据实际情况动态设置这些任务的执行权限(如:动态的Group)。OpenWebFlow完全实现了与流程定义时期的解耦,即用户对活动的访问控制信息单独管理(而不是在流程定义中预先写死),这样有利于动态调整权限,详见自定义活动权限管理; 2) 完全接管了Activiti对用户表(IDENTITY_XXX表)的管理。 在标准的工作流定义中,每个节点可以指定其候选人和候选用户组,但是比较惨的是,Activiti绑架了用户信息表的设计!这个是真正致命的,因为几乎每个业务系统...
白乔 发布于 6天前 阅读 1613 评论 6 点赞 3

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

PSI的技术难度在哪里?

PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。PSI以商贸企业的核心业务:采购、销售、库存(进销存)为切入点,最终目标是行业化的ERP解决方案。 PSI官网:https://gitee.com/crm8000/PSI   今天我们讨论一下PSI的技术难度在哪里? 1、PSI的技术难度之一:不在局部细节而是整体架构 这是企业管理软件的一个共有的特性:局部细节代码都很简单,但是要总体把握就难度加大。   2、PSI的技术难度之二:把业务建模转化为技术建模 这是个需要不断实践,总结经验的环节。   3、PSI的技术难度之三:让其他人迅速掌握二次开发技术 PSI是开源项目,代码运行任何人完全私有化。如果他人不能迅速掌握二次开发技术,PSI对他们而言就毫无价值。 编写开发文档、提供技术支持服务都是解决这个问题的方法。 看似只是写文档工作,其实从软件工程的角度来看,这是设计性质的工作。把文档写好,是一个实实在在的技术活儿,也是很多软件从业人员不擅长的工作。   4、PSI的技术难度之四:如何处理底层框架的升级 PSI的UI用的是ExtJS 4.2,PHP框架是ThinkPHP 3.2,这两个框架的版本都不是最新版本,要不要升级到最新版本?如果不升级到最新版本,那么以后怎么处理?...
PSI 发布于 1天前 阅读 61 点赞 2

JeeSite 4.0 简化业务逻辑层开发

## 引言 对于业务逻辑层的开发重复代码很多,尽管有代码生成器,但从代码量总的来说还是比较多,所以就有了以下抽象类及工具,对一些常用操作进行封装。 对通用新增、删除、编辑、查询,代码操作进行封装简化。你只需要写你的业务逻辑代码就可以了。 对特有树状结构特有字段如(所有父级编码、所有排序号编码、是否是叶子节点、当前节点层次)进行更新,比如,通过所有父级编码可快速查询到所有子级的数据;通过所有排序号,可快速对整个树结构进行排序;通过是否叶子节点快速得知是否有下级;根据当前层次快速知道当前节点在树中的级别。 对通用数据权限进行简化封装,将颗粒度降到人员身上,支持人员与数据,角色与数据权限定制。数据权限不仅仅支持公司、部门、角色,还可以通过配置支持你的业务字段数据信息过滤,如订单的区域、内容管理的栏目、故障单类型等等。 对事务处理使用Spring事务@Transactional注解,进行方法级别的事务控制,不用单独处理事务及回滚。如配置传播行为,进行事务继承,子事务,事务回滚行为等,配置隔离级别读取未提交的数据等。 ## 基类及接口的继承关系 TreeService -> CrudService -> QueryService -> BaseService TreeDao -> CrudDao -> ...
thinkgem 发布于 1个月前 阅读 1023 评论 22 点赞 10 打赏 1

为什么说PSI是一款基于SaaS模式的企业管理软件?

PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。PSI以商贸企业的核心业务:采购、销售、库存(进销存)为切入点,最终目标是行业化的ERP解决方案。 PSI官网:https://gitee.com/crm8000/PSI 一、SaaS模式 SaaS:Software as a Service 软件即服务,说PSI是SaaS,本质上就是说PSI是服务。 首先PSI是软件,这个很显然,是用PHP写的开源ERP系统。因为PHP强大的跨平台功能,所以PSI的很多用户把PSI部署在单机、局域网、自己的虚拟空间、阿里云服务器上。 但是也因为这种多样的部署方式,容易让人误解PSI仅仅是一款软件而已。 那么说PSI是服务,体现在哪些方面呢? 1、PSI本身的代码完全开源,任何人都可以完全私有化PSI的代码,PSI官方也不从销售PSI的代码副本来获利。这和传统的商业软件销售模式就已经完全不一样了。 2、提供免费的二次开发技术支持,这种技术支持包括:提供完善的数据库设计文档;提供完善的产品使用手册;提供免费VIP QQ群;提供免费的email技术支持;提供免费的电话技术支持。这些免费的服务足够满足需要省钱的企业用户的技术需求了。 3、对于没有IT力量的企业用户,PSI还提供付费的二次开发技术服务。 4、因为ERP这个产品的特殊...
PSI 发布于 1周前 阅读 144 评论 1 点赞 2

JeeSite 4.0 简化MyBatis持久层开发

## 引言 在做这一方面研究的时候,本人参考了很多资料和框架,如MyBatis-Mapper、MyBatis-Plus等等,这些都做的很不错,本来想集成一个,尝试了下还是有多处地方不顺手,不易扩展,不能解决我的本意,既能使用方便又不能失灵活,所以决定自己试着完成一套Dao层架构,精简开发。 在此之前我先考虑API的写法,通俗易懂,大众思维。持久层实体类采用@Table注解配置,自动生成增删改通用SQL,不需要在mapper.xml里写重复又费时的SQL,遇见复杂的情况下支持扩展。而报表统计分析的情况下又能支持mybatis原生写法,在写sql的时候,又能调用之前实体配置的一些参数。从而减少开发和后期维护成本。 众多的持久层框架@Column注解定义都是分布到get或属性上,或者干脆直接使用属性作为字段名,这在JeeSite是不推荐的,JeeSite的实体不仅仅是物理实体,它是与Model实体结合的一个产物,视乎记得JFinal作者也说过这一点,也是推荐的一个做法。总合考虑,将@Column所有定义到类头,而不是分布到各个属性或方法上,主要是有以下三点原因: 1. 可一览熟知该实体类对应的物理表结构是什么样,引领开发者思维从物理表结构到对象的映射转换,都是基于物理表结构的,@Column中的name指定物理字...
thinkgem 发布于 3个月前 阅读 1170 评论 24 点赞 7

spring boot配置druid

在pom中添加starter依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.4</version> </dependency>   在properties中添加连接池配置 ## DB spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # JDBC url of the database. spring.datasource.url= jdbc:mysql://127.0.0.1:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false # Login user of the database. spring.datasource.username= xxx # Name of the datasource. spring.datasource.name=test # Login password of the database. spring.datasource.password=xxx spring.jooq.sql-dialect=mysql spring.datasource.druid.max-active=15 ##druid view spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=admin888 spring.datasource.druid.aop-patterns=com.demo.service.* spring.aop.proxy-target-class=true   启动...
hc24 发布于 5天前 阅读 19

SwingTest自动化测试平台简介(一)

基于SSM+Selenium+Appium+TestNG框架开发的自动化测试平台,可用于测试用例管理及自动化测试,支持Web/Mobile/API等类型的自动化测试。
liyouyong 发布于 2周前 阅读 296 打赏 2

Eclipse自动提示代码

最近由于换了新的项目组,工具由之前的myeclipse换成了eclipse。一年的myeclipse使用下来发现myelipse有许多不便的地方,由于开启myeclipse之后需要加载许多的插件,导致开启三个myeclipse之后电脑报出了“臣妾做不到啊”的预警。 所以在家里自己开发的时候使用的工具在不久前换成了IntelliJ Idea,因为idea的自动提示功能非常好用,所以觉得eclipse应该也有这个功能。 eclipse许多插件都是自己安装的,开启了之后4G内存小电脑不会“银瓶炸裂水浆迸”。 话不多说,附上自动开启代码提示功能的方式: 如图中所示,只要在红框处加上26个英文字母就好了。      
南栀安 发布于 2周前 阅读 12

全渠道分布式电子商务云平台

使用Spring Cloud分布式微服务云架构进行服务化开发,所有模块功能完全解耦,提供服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
偶买噶555 发布于 5天前 阅读 11 评论 1 点赞 2

微服务开发的入门级框架Spring Boot详解(二)

1、Spring Boot的属性配置文件         1.1 Spring Boot的属性配置文件的第一种形式             使用properties配置文件,如下两个属性的含义是更改访问端口为8081,并且加了一个contextPath,可以理解为在地址栏多加层地址。 server.port=8081 server.context-path=/joyou                 右键点击DemoApplication.java ——》Run As ——》Spring Boot App启动程序             效果如下,首先从日志上看,端口已经变为8081             浏览器访问效果如下。                 补充:             属性文件是最常见的管理配置属性的方式。Spring Boot 提供的 SpringApplication 类会搜索并加载 application.properties 文件来获取配置属性值。SpringApplication 类会在下面位置搜索该文件: 1.当前目录的/config子目录 2.当前目录 3.classpath 中的/config包 4.classpath 上面的顺序也表示了该位置上包含的属性文件的优先级。优先级按照从高到低的顺序排列。 可以通过spring.config.name这个key的配置属性来指定不同的属性文件名称。也可以通过spring.config.location来添加额外...
二十岁以后 发布于 3个月前 阅读 4700 评论 24 点赞 4

SwingTest自动化测试平台环境部署(二)

在平台简介那篇文章中,我们了解了平台提供的功能和涉及的技术,本篇文章中我们将具体平台的部署方式。文章地址:https://my.oschina.net/liyouyong/blog/1547723 ## 一. 环境搭建 ### 1. 配置jdk与tomcat jdk需要选择1.7+,tomcat选择7+,配置方法如下: http://jingyan.baidu.com/article/624e7459a7d6e734e9ba5a70.html ### 2. 配置数据库 (1). mysql需要选择5.6+,配置方法如下: http://www.cnblogs.com/sshoub/p/4321640.html (2). 创建数据库 数据库名为:swingtest, 字符集选择:utf-8 Unicode,排序规则选择:utf8_general_ci(不区分大小写),如图: ![输入图片说明](https://static.oschina.net/uploads/img/201710/16134617_0vTV.png "在这里输入图片标题") (3).创建数据表 在刚创建的swingtest上右击选择“运行sql文件”,执行swingtest.sql文件创建数据表,如图: ![输入图片说明](https://static.oschina.net/uploads/img/201710/16135033_KiTT.png "在这里输入图片标题") ### 3. tomcat部署 (1). 修改..\apache-tomcat-8.5.13\conf\server.xml文件 在< Engine>< Host>下添加一个Context节点,具体配置如下: ``` ... ... ... ``` (2). 启动tomcat 将Swing...
liyouyong 发布于 2周前 阅读 78

Bootstrap treeview实现动态加载数据(带搜索)

本文实现了运用bootstrap treeview实现动态加载数据,并且添加快捷搜索功能,欢迎交流指正。
代码包工头 发布于 2个月前 阅读 254 点赞 1

SwingTest自动化测试平台使用说明(三)

在环境搭建那篇文章中,我们已经部署好了一个环境,本篇文章中我们将具体介绍web自动化测试的使用方法。文章地址:https://my.oschina.net/liyouyong/blog/1547771 ``` 1.场景:用于组织测试用例,一个场景包含一个或多个用例,不同测试类型的场景对应不同的操作。 2.元素:是类似Page Object,把界面常用到的控件的xpath进行存储,在编写用例步骤时就能通过选择的方 式加载控件。 3.用例:用于组织测试步骤,一个用例包含一个或多个步骤,不同测试类型的用例对应不同的操作界面。 4.步骤:每个步骤对应一个关键字,一个关键字包含N个参数,界面提供了每个参数的说明,并 可对每个步骤进行描述。需要操作浏览器元素的关键字都有Element参数,可以通过选择的方式加载已经 存储在场景里的控件。 5.任务:最终运行的测试脚本,通过关联多个测试用例生成脚本。若用例步骤中,不包含启动浏览器的关键 字如startRemoteBrowser/startBrowserStack,则必须选择执行机器;若要定时执行任务,则必须输入执 行参数。 ``` ## 一. 创建场景 1. 创建场景步骤:在首页点击场景管理 -> 创建场景 -> 输入场景名及描述,选择测试类型 -> 提交 ![输入图片说明](https://static.oschina.net/up...
liyouyong 发布于 2周前 阅读 43

xtophp开发教程之安装配置视频1

视频地址: https://v.qq.com/x/page/t0563qdh6gm.html 项目地址:https://gitee.com/xtoyun/xtophp 如果您觉得XtoPHP还不错,不妨打赏我们一下; 我们的愿景:帮助开发者节省时间挣钱 https://gitee.com/xtoyun/xtophp#project-donate-overview QQ群:96050256 您可能还对以下文章感兴趣:   1、关于xtophp开源一二三
xtophp 发布于 1天前 阅读 9

大型企业分布式微服务云架构服务

实现模块化、微服务化、原子化、灰度发布、持续集成...
偶买噶555 发布于 5天前 阅读 7 评论 1 点赞 1

Spring Cloud Config服务器

服务器为外部配置(名称值对或等效的YAML内容)提供了基于资源的HTTP。服务器可以使用@EnableConfigServer注释轻松嵌入到Spring Boot应用程序中。
苹果558 发布于 6天前 阅读 7

java 电子商务云平台b2b b2c o2o

b2b b2c o2o电子商务平台
hunky 发布于 6天前 阅读 18 评论 2 点赞 2

ETCD轮换使用场景与工作原理(学习笔记)

ETCD使用案例 据公开资料显示,至少有CoreOS, Google Kubernetes(K8S), Cloud Foundry, 以及在Github上超过500个项目在使用ETCD。   ETCD是什么     etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现。etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性。Raft是一个来自Stanford的新的一致性算法,适用于分布式系统的日志复制,Raft通过选举的方式来实现一致性,在Raft中,任何一个节点都可能成为Leader。     etcd 集群的工作原理基于 raft 共识算法 (The Raft Consensus Algorithm)。etcd 在 0.5.0 版本中重新实现了 raft 算法,而非像之前那样依赖于第三方库 go-raft 。raft 共识算法的优点在于可以在高效的解决分布式系统中各个节点日志内容一致性问题的同时,也使得集群具备一定的容错能力。即使集群中出现部分节点故障、网络故障等问题,仍可保证其余大多数节点正确的步进。甚至当更多的节点(一般来说超过集群节点总数的一半)出现故障而导致集群不可用时,依然可以保证节点中的数据不会出现错误的结果。   服务发现(Service Discovery) 服务发现了解集群...
ND小龙 发布于 2个月前 阅读 23

从零开始的Spring Session(一)

本文作者:徐靖峰 原文链接:http://t.cn/Rp7xUro 版权归作者所有,转载请注明出处   之前项目需要使用Redis管理Session,找了很多的Demo,研究了一天Spring Session源码,感觉有点难继续。突然看到群里Pivotal的周辉大牛发了一篇连接,突然豁然开朗。   Session和Cookie这两个概念,在学习java web开发之初,大多数人就已经接触过了。最近在研究跨域单点登录的实现时,发现对于Session和Cookie的了解,并不是很深入,所以打算写两篇文章记录一下自己的理解。在我们的应用集成Spring Session之前,先补充一点Session和Cookie的关键知识。 Session与Cookie基础 由于http协议是无状态的协议,为了能够记住请求的状态,于是引入了Session和Cookie的机制。我们应该有一个很明确的概念,那就是Session是存在于服务器端的,在单体式应用中,他是由tomcat管理的,存在于tomcat的内存中,当我们为了解决分布式场景中的session共享问题时,引入了redis,其共享内存,以及支持key自动过期的特性,非常契合session的特性,我们在企业开发中最常用的也就是这种模式。但是只要你愿意,也可以选择存储在JDBC,Mongo中,这些,spring都提供了默认的实现,在大多数情况下,我们只需要引入...
二十岁以后 发布于 1个月前 阅读 26 评论 1

社区给了PSI哪些帮助

PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。PSI以商贸企业的核心业务:采购、销售、库存(进销存)为切入点,最终目标是行业化的ERP解决方案。 PSI官网:https://gitee.com/crm8000/PSI 一个开源项目,越开放越能从社区获得力量。这是PSI这几年实践中获得的最大的感受。 那么PSI到底从社区中获得了哪些帮助和成长的力量呢? 1、被吐槽代码写得太垃圾。 吐槽也是生产力,被吐槽之后,就不断地改进代码的写法。 老司机都是从小白和翻车开始的起步的。 写的垃圾代码还能被人关注和鼓励,其实是说明PSI的代码很有价值,让人又爱又恨。 2、发现bug 虽然PSI的官方研发团队很小,但是依靠社区却拥有一只庞大的测试人员队伍。 3、反馈需求 https://gitee.com/crm8000/PSI/issues 上有堆积成山的新需求! 依靠社区,PSI同样拥有一只庞大的产品经理助理队伍。 4、GVP PSI荣获2017 GVP (https://gitee.com/gvp)大奖!既是荣誉又是极大的鼓励力量。 5、允许他人完全私有化PSI的代码 常常有PSI用户告诉我,他又用PSI的代码为自己或者公司完成了什么新的功能和赚了钱。 一个开源项目被他人使用就已经创造了社会价值,能让他人赚钱更是实现了极好的客户价值。...
PSI 发布于 5小时前 阅读 50

java 电子商务云平台b2b b2c o2o springmvc+mybatis+spring cloud+spring boot

b2b b2c o2o电子商务平台
SpringCloud关注者 发布于 17小时前 阅读 5

java电子商务系统源码 Spring MVC+mybatis+spring cloud+spring boot+spring security

java电子商务系统源码 spring cloud+spring boot+mybatis+spring security 分布式微服务
SpringCloud关注者 发布于 17小时前 阅读 8 点赞 1

快速了解人工智能结晶之语音转换文字

科技解放生产力,人工智能的应用如今是大热,那么今天就来给各位介绍一下IBM在这方面的一个小的尝试,语音转换文字。咱们来看一看相较于传统的转换,结合Watson的IBM是如何做到让识别率飙升的。
IBM Bluemix

jdbc 编码 url 问题及原理

昨天把项目部署到服务器上后连的是SC的腾讯云数据库,测试后发现当往在页面上往数据库插数据会出现乱码问题,就是这个样子,输入汉字都是???,输入英文就没事:   JDBC连接MySQL的URL编码问题 因为在本地测试用本地的数据库都没事情,插数据度数据都一点问题都没问题,就考虑到了应该是JDBC连接的时候的URL编码问题,在修改之前,我们的连接是这样的: jdbc:mysql://55e1aacb0d253.sh.cdb.myqcloud.com:11462/sh_books 1 网上搜了一下,说要在连接mysql数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8,这样是修改后的 jdbc:mysql://55e1aacb0d253.sh.cdb.myqcloud.com:11462/sh_books?useUnicode=true&characterEncoding=UTF-8 1 运行了下,报错了报错了!! 居然报错了!错误提示的一部分是这样的: 对实体 “characterEncoding” 的引用必须以 ‘;’ 分隔符结尾。 搜了一下,知道为什么了,在xml的配置文件中 ;要用 &代替,这是HTML中常用的字符实体,改完后呢就是这个样子啦: jdbc:mysql://55e1aacb0d253.sh.cdb.myqcloud.com:11462/sh_books?useUnicode=true&characterEncoding=UTF-8 1 问题完美解决,但是为什么要这样呢?...
千言sully 发布于 18小时前 阅读 4

使用MyEclipse盗版的若干危害

数据显示,每年有超过数十家企业被厂商打击盗版,遭遇账户封停、禁止继续使用相关产品,迫使研发流程瘫痪,造成企业不可估量的巨大损失和潜在风险。不仅如此,使用盗版还将面临被起诉赔付高额罚金的风险,不管对企业还是个人来说都是得不偿失的。 我们曾收到部分MyEclipse用户的使用问题反馈,然而经技术研发人员详细了解情况和测试后,发现这些问题都是曾经使用过盗版而造成的。下面我们将给大家列举一些使用MyEclipse盗版会出现的问题: 1、MyEclipse破解后,软件启动会经常出现闪退,并出现错误提示: 2、MyEclipse破解完只能用5天,不利用项目开发或学习: 3、MyEclipse 安装破解后总出现报错,并自动退出: 4、使用MyEclipse 盗版过程中会频繁出现各种类型报错: 5、已有多名MyEclipse客户使用盗版后发现极大的安全隐患转而使用正版,然而盗版未卸载干净,导致之后购买的正版无法正常激活,影响项目开发进度: 6、如上,使用MyEclipse盗版经常会出现security alert integrity check error这个问题 7、MyEclipse破解版中,输入完usercode,点击systemId不能自动生成 8、MyEclipse破解版中,点击Active后,ACTIVATION_KEY 为null 9、破解完成后运行MyEclipse,点击tom...
Miss_Hello_World 发布于 1天前 阅读 5

记一次为公司搭建maven私服的过程

本来我用的是阿里云的maven仓库,速度快的飞起. 但是这仅仅是对于公共的类库来说的.而公司有自己的一些集成工具包,需要自己在推送到本地仓库,这个步骤是重复且麻烦,公司每个人都要推送一次,想想也觉得这是不合理的,遂想为公司搭建一个nexus-maven私服,为公司提升点效率,减少不必要的时间损耗吧. 大致流程如下: ![安装流程](https://static.oschina.net/uploads/img/201710/23123608_dlsQ.png "在这里输入图片标题") ## 安装环境 安装环境为: centOS 6.5\ ![输入图片说明](https://static.oschina.net/uploads/img/201710/23111054_25uR.png "在这里输入图片标题") JDK的版本是 : jdk1.8\ ![输入图片说明](https://static.oschina.net/uploads/img/201710/23111108_Bk5S.png "在这里输入图片标题") nexus是当前(2017-10)的最新版本: nexus oss 3.6 ## 下载 ``` http https://www.sonatype.com/download-oss-sonatype ``` 下载完成后, 解压到nexus的 home目录下面 得到的两个目录,nexus-版本信息(**下称:ne-home**),sonatype-work.这两个目录. 一直以为这个是收费使用的,没想到是免费的. 这个真是良心产品.至少现在我认为是的. ## 安装 添加linux用户 nexus ``` bash adduser...
gxLong 发布于 1天前 阅读 5

xtophp开发教程之安装配置视频1

视频地址: https://v.qq.com/x/page/t0563qdh6gm.html 项目地址:https://gitee.com/xtoyun/xtophp 如果您觉得XtoPHP还不错,不妨打赏我们一下; 我们的愿景:帮助开发者节省时间挣钱 https://gitee.com/xtoyun/xtophp#project-donate-overview QQ群:96050256 您可能还对以下文章感兴趣:   1、关于xtophp开源一二三
xtophp 发布于 1天前 阅读 9

SylixOS日志子系统

日志子系统简介 为了能够实时记录系统中发生的各种事件,SylixOS加入了日志管理功能。通过分析日志文件可以及时发现和处理系统运行过程中的问题。SylixOS日志子系统的主要功能是记录系统发生的各个事件,根据不同使用场景可以选择不同的日志等级,来决定是否打印信息,还可以设置日志系统输出的文件集。 SylixOS中日志系统初始化 系统内核启动时候会调用到_logInit函数,创建消息队列;调用函数API_PartitionCreate创建内存分区,建立printk缓冲;同时建立日志处理线程t_log,并初始化t_log线程。 t_log线程处理日志系统中消息的接收和发送,执行流程如下: 调用函数API_MsgQueueReceive从消息队列接收消息; 判断是任务中发送,还是中断中发送,根据是否打印头部的参数,选择是否打印头部信息; 调用函数__logPrintk或者__logPrintf函数打印数据; 更新_G_iLogMsgsLost值,即丢失的日志消息数量。 SylixOS中日志打印函数printk SylixOS中会调用函数printk来实现日志打印,函数执行过程如下: 解析输入字符串中的打印等级,如果有则设置解析值为打印级别,若没有则设置为默认级别,即default_message_loglevel; 判断打印级别,若大于console_loglevel则不打印信息; 调用C...
不时尚的小萝卜 发布于 1天前 阅读 2

PSI的技术难度在哪里?

PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。PSI以商贸企业的核心业务:采购、销售、库存(进销存)为切入点,最终目标是行业化的ERP解决方案。 PSI官网:https://gitee.com/crm8000/PSI   今天我们讨论一下PSI的技术难度在哪里? 1、PSI的技术难度之一:不在局部细节而是整体架构 这是企业管理软件的一个共有的特性:局部细节代码都很简单,但是要总体把握就难度加大。   2、PSI的技术难度之二:把业务建模转化为技术建模 这是个需要不断实践,总结经验的环节。   3、PSI的技术难度之三:让其他人迅速掌握二次开发技术 PSI是开源项目,代码运行任何人完全私有化。如果他人不能迅速掌握二次开发技术,PSI对他们而言就毫无价值。 编写开发文档、提供技术支持服务都是解决这个问题的方法。 看似只是写文档工作,其实从软件工程的角度来看,这是设计性质的工作。把文档写好,是一个实实在在的技术活儿,也是很多软件从业人员不擅长的工作。   4、PSI的技术难度之四:如何处理底层框架的升级 PSI的UI用的是ExtJS 4.2,PHP框架是ThinkPHP 3.2,这两个框架的版本都不是最新版本,要不要升级到最新版本?如果不升级到最新版本,那么以后怎么处理?...
PSI 发布于 1天前 阅读 61 点赞 2

MyBatis SQL注入隐患及防范

一次日常项目测试中,MyBatis相关知识的学习及代码可能出现的潜在安全隐患点。
Cnlouds 发布于 4天前 阅读 7

spring cloud微服务分布式云架构-集成项目

Spring Cloud Config配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。
596 发布于 4天前 阅读 2

如何让mysql timeStamp类型支持默认值0000-00-00 00:00:00

由于做数据库迁移,之前的数据库是oracle,时间字段都是timestamp类型,默认值为'0000-00-00 00:00:00',到处sql后到mysql 5.5版本可以执行,可换到5.7版本死活报错,坑...经过四处搜索资料,发现是由于sql_mode的原因,5.7版本的sql_mode默认值是 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 是严格模式,而5.5是非严格模式,要想让5.7也能支持timestamp默认'0000-00-00 00:00:00',只需修改sql_mode为(同时将mysql安装目录下的my-default.ini文件中的sql_mode也设置为sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION) sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  可以通过以下命令修改: set sql_mode=''; set global sql_mode='NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; 修改完成后,就可以正常执行迁移脚本了,timestamp也可以默认0000-00-00 00:00:00...
留给明天 发布于 4天前 阅读 12

Kendo UI ASP.NET MVC使用教学视频集锦(高清在线观看)

Kendo UI首推团队升级培训套包,享超低折扣!查看详情>>> 【Kendo UI R3 2017最新版下载】 Kendo UI ASP.NET MVC使用教程第1集(点击图片观看高清视频) 本视频主要为大家介绍ASP.NET MVC封装入门。 Kendo UI ASP.NET MVC使用教程第2集(点击图片观看高清视频) 本视频主要为大家介绍ASP.NET MVC TreeView检索。 Kendo UI ASP.NET MVC使用教程第3集(点击图片观看高清视频) 本视频主要为大家介绍ASP.NET MVC Grid连接数据库。 Kendo UI ASP.NET MVC使用教程第4集(点击图片观看高清视频) 本视频主要为大家介绍ASP.NET MVC Grid编辑器 。
Miss_Hello_World 发布于 4天前 阅读 3

【区块链】以太坊区块链技术初探

LinApex个人简介     今年刚接触到区块链网络,奋斗在数字货币交易平台,底层框架设计,区块链钱包,区块链解决方案一线,做过人工智能,金融支付行业,目前正在做一款区块链+黄金的App系统。   连载系列(基于以太坊)     开发系列         1、【区块链】以太坊区块链技术初探         2、【区块链】以太坊区块链环境搭建         3、【区块链】以太坊区块链概念了解         4、【区块链】以太坊区块链技术进阶     源码系列         1、【以太坊源码】编译以太坊源码,打造自己的公链私链         2、【以太坊源码】以太坊源码研究系列(以太坊模拟机、挖矿、点对点网络库、节点发现、合约代码传输、加密签名等)   区块链基本概念     区块链就是通过密码学的方式形成的一个由集体维护的分布式数据库。     区块链的概念最近很火,它来自于比特币等加密货币的实现,但是目前,这项技术已经逐步运用在各个领域。什么是区块链技术?为了感性认识这个问题,我们可以使用谷歌地球的例子做类比,ajax不是什么新技术,但组合在一起就成就了产品谷歌地球,与之类似,区块链也不是什么新技术,但与加密解密技术、P2P网络...
linapex 发布于 4天前 阅读 991 评论 15 点赞 3

spring boot配置druid

在pom中添加starter依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.4</version> </dependency>   在properties中添加连接池配置 ## DB spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # JDBC url of the database. spring.datasource.url= jdbc:mysql://127.0.0.1:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false # Login user of the database. spring.datasource.username= xxx # Name of the datasource. spring.datasource.name=test # Login password of the database. spring.datasource.password=xxx spring.jooq.sql-dialect=mysql spring.datasource.druid.max-active=15 ##druid view spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=admin888 spring.datasource.druid.aop-patterns=com.demo.service.* spring.aop.proxy-target-class=true   启动...
hc24 发布于 5天前 阅读 19

Maven 国内私服

  <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>OSChina</id> <name>OSChina Centraln</name> <url>http://maven.oschina.net/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>net-cn</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://maven.net.cn/content/groups/public/</url> </mirror> <mirror> <id>ui</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://uk.maven.org/maven2/</url> </mirror> <mirror> <id>ibiblio</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http:...
蓝狐乐队 发布于 5天前 阅读 4

Kendo UI Grid中的动态数据(三)

Kendo UI首推团队升级培训套包,享超低折扣!查看详情>>> 【Kendo UI R3 2017最新版下载】 本教程将为大家介绍如何逐步创建具有动态数据的Kendo UI grids。当您在一遍又一遍输入相同代码时,可以知道有些是可以关闭的,您输入的代码正在获取WET。创建具有动态数据的可编辑Kendo UI Grids是非常简单的,Progress的技术支持工程师帮助很多客户解决了有关动态数据的问题,并且提供了有关动态数据的建议,在本文中我们将会为大家一一解答。 5. 下一行是网格列。使用此功能自定义格式、宽度或其他列设置。 1 2 3 4 5 6 7 8 9 10 11 function generateColumns(sampleDataItem) { var columnNames = Object.keys(sampleDataItem); return columnNames.map(function(name) { var isIdField = name.indexOf("ID") !== -1; return { field: name, width: (isIdField ? 40 : 200), title: (isIdField ? "Id" : name) }; }); } 6. 这是最后一步。模式、数据源和列是已知的,我们可以初始化动态Kendo UI Grid。在我们的函数中,传递了初始化网格元素的ID,但是可以扩展createGrid函数,并将新生成的网格附加在其他位置。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...
Miss_Hello_World 发布于 5天前 阅读 2

dubbo+springboot整合异常

在整合dubbo+springboot的项目,项目采用分布式开发。分别为springboot-server,springboot-client两个工程。使用main函数启动springboot-server,发现正常。打开dubbo-admin查看,发现服务也被注册进入zookeeper里面了。 但是在启动springboot-client的时候报异常: java.lang.IllegalArgumentException: interface org.spring.springboot.dubbo.CityDubboService is not visible from class loader     at com.alibaba.dubbo.common.bytecode.Proxy.getProxy(Proxy.java:98) ~[dubbo-2.5.3.jar:2.5.3]     at com.alibaba.dubbo.common.bytecode.Proxy.getProxy(Proxy.java:67) ~[dubbo-2.5.3.jar:2.5.3]     at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory.getProxy(JavassistProxyFactory.java:35) ~[dubbo-2.5.3.jar:2.5.3]     at com.alibaba.dubbo.rpc.proxy.AbstractProxyFactory.getProxy(AbstractProxyFactory.java:49) ~[dubbo-2.5.3.jar:2.5.3]     at com.alibaba.dubbo.rpc.proxy.wrapper.StubProxyFactoryWrapper.getProxy(StubProxyFactoryWrapper.java:60) ~[dubbo-2.5.3.jar:2.5.3]     at com.alibaba.dubbo.rpc....
美丽不打折 发布于 5天前 阅读 8

Spring Cloud Config服务器

服务器为外部配置(名称值对或等效的YAML内容)提供了基于资源的HTTP。服务器可以使用@EnableConfigServer注释轻松嵌入到Spring Boot应用程序中。
苹果558 发布于 6天前 阅读 7

Spring Cloud Config-客户端使用

要在应用程序中使用这些功能,只需将其构建为依赖于spring-cloud-config-client的Spring引导应用程序(例如,查看配置客户端或示例应用程序的测试用例)。
苹果558 发布于 6天前 阅读 3 点赞 1

【区块链】以太坊区块链技术初探

LinApex个人简介     今年刚接触到区块链网络,奋斗在数字货币交易平台,底层框架设计,区块链钱包,区块链解决方案一线,做过人工智能,金融支付行业,目前正在做一款区块链+黄金的App系统。   连载系列(基于以太坊)     开发系列         1、【区块链】以太坊区块链技术初探         2、【区块链】以太坊区块链环境搭建         3、【区块链】以太坊区块链概念了解         4、【区块链】以太坊区块链技术进阶     源码系列         1、【以太坊源码】编译以太坊源码,打造自己的公链私链         2、【以太坊源码】以太坊源码研究系列(以太坊模拟机、挖矿、点对点网络库、节点发现、合约代码传输、加密签名等)   区块链基本概念     区块链就是通过密码学的方式形成的一个由集体维护的分布式数据库。     区块链的概念最近很火,它来自于比特币等加密货币的实现,但是目前,这项技术已经逐步运用在各个领域。什么是区块链技术?为了感性认识这个问题,我们可以使用谷歌地球的例子做类比,ajax不是什么新技术,但组合在一起就成就了产品谷歌地球,与之类似,区块链也不是什么新技术,但与加密解密技术、P2P网络...
linapex 发布于 4天前 阅读 991 评论 15 点赞 3

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

基于Activiti扩展的工作流引擎OpenWebFlow

开源地址:https://gitee.com/bluejoe/openwebflow(欢迎star) 1.    OpenWebFlow概述 OpenWebFlow是基于Activiti扩展的工作流引擎。Activiti (官方网站http://activiti.org/,代码托管在https://github.com/Activiti/Activiti)是一个新兴的基于 Apache 许可的支持 BPMN 2.0 标准的开源 BPM 产品,它是一个轻量级,可嵌入的 BPM 引擎,并且提供了功能丰富的开发和流程设计工具。OpenWebFlow与业务应用系统之间的关系如下图所示。 相对于Activiti,OpenWebFlow扩展的功能包括: 1) 完全接管了Activiti对活动(activity)权限的管理。 Activiti允许在设计model的时候指定每个活动的执行权限,但是,业务系统可能需要根据实际情况动态设置这些任务的执行权限(如:动态的Group)。OpenWebFlow完全实现了与流程定义时期的解耦,即用户对活动的访问控制信息单独管理(而不是在流程定义中预先写死),这样有利于动态调整权限,详见自定义活动权限管理; 2) 完全接管了Activiti对用户表(IDENTITY_XXX表)的管理。 在标准的工作流定义中,每个节点可以指定其候选人和候选用户组,但是比较惨的是,Activiti绑架了用户信息表的设计!这个是真正致命的,因为几乎每个业务系统...
白乔 发布于 6天前 阅读 1613 评论 6 点赞 3

微服务开发的入门级框架Spring Boot详解(二)

1、Spring Boot的属性配置文件         1.1 Spring Boot的属性配置文件的第一种形式             使用properties配置文件,如下两个属性的含义是更改访问端口为8081,并且加了一个contextPath,可以理解为在地址栏多加层地址。 server.port=8081 server.context-path=/joyou                 右键点击DemoApplication.java ——》Run As ——》Spring Boot App启动程序             效果如下,首先从日志上看,端口已经变为8081             浏览器访问效果如下。                 补充:             属性文件是最常见的管理配置属性的方式。Spring Boot 提供的 SpringApplication 类会搜索并加载 application.properties 文件来获取配置属性值。SpringApplication 类会在下面位置搜索该文件: 1.当前目录的/config子目录 2.当前目录 3.classpath 中的/config包 4.classpath 上面的顺序也表示了该位置上包含的属性文件的优先级。优先级按照从高到低的顺序排列。 可以通过spring.config.name这个key的配置属性来指定不同的属性文件名称。也可以通过spring.config.location来添加额外...
二十岁以后 发布于 3个月前 阅读 4700 评论 24 点赞 4

让Hibernate识别数据库特有字段

Hibernate已经为绝大多数常用的数据库数据类型提供了内置支持,但对于某些数据库的专属字段支持就不够好了。 这些特殊数据类型往往提供了比常规数据类型更好的数据表达能力,更符合我们的业务场景。比如PostgreSQL的Interval类型,可以非常方便的保存一个时间段的数据。 本文以添加Interval类型支持为例,说明为Hibernate添加特有数据类型支持的方法。
XuYuan 发布于 5个月前 阅读 1376 点赞 1

远程过程调用(RPC)详解

本文介绍了什么是远程过程调用(RPC),RPC 有哪些常用的方法,RPC 经历了哪些发展阶段,以及比较了各种 RPC 技术的优劣。
waylau 发布于 1年前 阅读 6067 评论 27 点赞 20

7 款顶级开源 BI(商务智能)软件和报表工具

在这个信息化时代,每分每秒都产生海量数据。在海量数据中,挖掘出有用的数据,并且能以较人性化、直观的方式展示这些数据,变得尤为重要。本文将介绍 7款顶级开源 BI(商务智能)软件和报表工具,用于商业数据的分析处理,希望对您有所帮助。
催呀催呀 发布于 1年前 阅读 6414 评论 22 点赞 25

Spring 4.3 的新功能和增强

本文介绍了 Spring 4.3 的新功能和增强的特性。
waylau 发布于 1年前 阅读 8147 评论 24 点赞 9

用JS实现简单的神经网络算法

笔者尝试用JavaScript实现最简单的神经网络算法。 神经网络简介 神经网络试图模拟大脑的神经元之间的关系来处理信息。它的计算模型通常需要大量彼此连接的节点。每个神经元通过某种特殊的输出函数来处理来自其它相邻神经元的加权输入值。 神经元之间的信息传递的强度,用所谓的加权值来定义,算法会不断的调整加权值来实现自我的学习过程。 神经网络分为多层,如上图,有输入层,隐藏层和输出层。 JS线性代数包 神经网络的计算涉及到大量的矩阵计算,有许多的线性代数的开源的软件,Python下有著名的numpy,非常有名。 Javascript也有几个: http://numericjs.com/index.php https://github.com/jstat/jstat https://mkaz.tech/javascript-linear-algebra-calculator.html  我使用了numericjs,效果还不错。推荐大家可以试试。 两层神经网络 我们有一些简单的输入输出的数据用来训练神经网络。这里每一行代表一条数据。输入有三个参数,输出是一个。 Inputs 0 Inputs 1 Inputs 2 Output 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 首先我们实现一个最简单的神经网络,没有隐藏层,输入直连输出。 因为输入是三个参数,输出是一个,所以我们的神经网络输入层是三个节点,输出是1个。...
naughty 发布于 1年前 阅读 3951 评论 9 点赞 6

干货|建议初创团队起初也要构建分布式应用

  干货|建议初创团队起初也要构建分布式应用   本文内容整理自W-Time技术分享沙龙-天津站现场演讲《一切都是分布的》,演讲者:李傲,问啊联合创始人,前中交车联网总架构。   好多人都会问什么是架构师?其实架构师的定义很宽泛,前端后端的定义都不一样。作为后端出身的架构师,我认为后端并不是大家想的封装组件,它要定义的是规划,规划模块之前的关系。在一台机器搞不定时怎么办?答:集群!这词说着很容易,但真要给你,你发现how?怎么去加?   有人问我,架构师要做什么?我认为,架构师就是要在软件起初阶段就能够从情景当中预先想到这问题,通过架构分布式解决方案,预先把问题都埋好。可能有人会说这算不算重度设计?其实所谓重度设计,要看团队的基本能力,如果团队写代码还写不利索的情况下,那么这个设计就很重要。因为不能指望一个代码都没有写过几行的人去写架构,这个是不可能的,做分布式都很难。如果团队能力属于中上层,那么有两种可能:1、团队做过十几年的代码,但架构差一些,那么也会把程序写的非常漂亮,因为对代码有把控能力,对底层的研究比较透彻;2、代码写的并不是很好,但是架构师对新技术有了解,那么也是有可能做好分布式的。如...
刘星石 发布于 2年前 阅读 4175 评论 14 点赞 8

使用开源软件快速搭建数据分析平台

本文介绍了如何使用开源软件迅速的搭建一个数据分析平台,包含数据导入,变形,分析,预测,可视化。
naughty 发布于 2年前 阅读 11227 评论 56 点赞 49

Elasticsearch 2.2.0 分词篇:中文分词

在Elasticsearch中,内置了很多分词器(analyzers),但默认的分词器对中文的支持都不是太好。所以需要单独安装插件来支持,比较常用的是中科院 ICTCLAS的smartcn和IKAnanlyzer效果还是不错的,但是smartcn不支持自定义词库,所以优先用IKAnanlyzer。
赛克蓝德 发布于 2年前 阅读 6348 评论 18 点赞 6

Elasticsearch 2.20 高亮显示

Elasticsearch中的高亮显示是来源于lucene的功能,他允许在一个或者多个字段上突出显示搜索内容, lucene支持三种高亮显示方式highlighter, fast-vector-highlighter, postings-highlighter.
赛克蓝德 发布于 2年前 阅读 8036 评论 6 点赞 5

Elasticsearch 2.20入门篇:聚合操作

聚合(Aggregations)提供分组和统计文档的能力。聚合类似关系数据库中group by分组的功能,在Elasticsearch中,对一次的聚合查询中可以同时得到聚合的具体结果再次进行聚合,这是一个非常有用的功能。你可以通过一次操作得到多次聚合的结果,从而避免多次请求,减少网络和服务器的负担。
赛克蓝德 发布于 2年前 阅读 9715 评论 5 点赞 4

mycat实现mysql读写分离实践

mycat是一个的数据库中间件,基于阿里开源的cobar产品而研发,由几个有志之士的牛人共同完成并开源。提供高可用性数据分片集群,自动故障切换,高可用性 ,支持读写分离,支持Mysql双主多从,以及一主多从的模式 ,支持全局表,数据自动分片到多个节点,用于高效表关联查询 ,支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询多平台支持,部署和实施简单。 今天来实践下用mycat实现mysql的读写分离,1.配置mysql端主从数据同步,2.用mycat实现读写分离,配置mysql端主从数据同步不作讲解,这里详细介绍下用mycat实现数据读写分离 新建数据库读库和写库 分别在两个不同主机下新建两个大库,读库r和写库w,在读库r下新建3个数据库分片(db1,db2,db3),在写库w下也新建3个分片(db1,db2,db3)。 1.db1分片脚本 /* Navicat MySQL Data Transfer Source Server         : mysql Source Server Version : 50527 Source Host           : localhost:3306 Source Database       : db1 Target Server Type    : MYSQL Target Server Version : 50527 File Encoding         : 65001 Date: 2016-01-27 1...
rock912 发布于 2年前 阅读 9922 评论 21 点赞 18

获取spring 的bean 方法总结

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢?  Bean工厂(com.springframework.beans.factory.BeanFactory)是Spring框架最核心的接口,它提供了高级IoC的配置机制。BeanFactory使管理不同类型的Java对象成为可能,应用上下文(com.springframework.context.ApplicationContext)建立在BeanFactory基础之上,提供了更多面向应用的功能,它提供了国际化支持和框架事件体系,更易于创建实际应用。我们一般称BeanFactory为IoC容器,而称ApplicationContext为应用上下文。但有时为了行文方便,我们也将ApplicationContext称为Spring容器。    对于两者的用途,我们可以进行简单划分:BeanFactory是Spring框架的基础设施,面向Spring本身;ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合我们都直接使用ApplicationContext而非底层的BeanFactory。 工厂方式:Resource resource = new ClassPathResource("/applicationContext.xml");              BeanFactory factory = new XmlBeanFactory(resource); factory.getBean(strName);    ApplicationContext的初始化和BeanFactory有...
hello菜bird 发布于 2年前 阅读 8983 评论 16 点赞 8

运维中被低估的日志

日志在运维中的作用是非常重要的,但非常不幸,日志在很多运维中被严重低估,直到磁盘空间不足的时候才想到,这有个大的日志文件把他删了,这样可以节省空间。
赛克蓝德 发布于 2年前 阅读 5429 评论 16 点赞 15 打赏 1

开源进销存PSI - 关于PSI开源协议的一些说明

关于PSI开源协议的一些说明
PSI 发布于 2年前 阅读 2419 评论 11 点赞 6 打赏 1

我如何在OSC上做开源项目

讲述我如何在OSC上做开源项目的经验体会
PSI 发布于 2年前 阅读 4187 评论 19 点赞 10

一个开源软件作者和邮件通知奋斗的血泪史

序章: 9月18日,禅道发布了7.3版本,这是禅道五年内发布的第65个开源版本,也是我们和邮件通知斗争五年的“血泪史”。这个版本我们最终集成了一个大招,来彻底解决邮件通知的问题。先卖个关子,后面详细讲我们的大招是啥。 背景: 禅道(http:/www.zentao.net)是我们团队开发的一款开源项目管理软件,主要定位是研发项目管理。面向的用户群体主要是研发团队,部署场景主要是企业内部的私有服务器。这是我们这个故事的大背景。然后悲惨的故事就开始了。 打不死的小强:Email 禅道软件在使用过程中的一个需求是需要将软件里面的各种动态消息通知到相关的人员。解决这个问题可以有很多种手段:客户端软件的提醒,QQ的提醒, 微信的提醒,短信的提醒,邮件的提醒,浏览器的桌面提醒等等。每种手段都有各自的优劣,然后我们与之奋斗了五年之久的邮件就粉墨登场了。在上述的各种通知 手段中,以邮件通知最为广泛,和用户的使用习惯契合度也最为密切。说到这儿,也许有的朋友说,我们团队邮件早都不用了。其实我们还是低估了邮件顽强的生命 力。邮件系统作为自互联网初期就存在的基础服务系统,有着广泛的用户基础。一直有各种各样的协同软件试图干掉邮件,但很遗憾的是,到现在还...
开源春哥 发布于 2年前 阅读 7694 评论 25 点赞 8

从开源到众包---写在2015“程序员”节

我们要打造众包平台帮大家找靠谱的项目,让大家一边干着私活一边树立个人品牌,直到实现财富自由!
老马 发布于 2年前 阅读 5190 评论 50 点赞 18
顶部