技术前沿网

我们不支持 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的代码。这里的完全私有化包括但不限于:直接销售获利;去掉代码里面关于PSI的任何标志,包括版权标志;用PSI的代码去申请专利。只要是能想到的商业行为,都许可。 这是为什么呢? 1、PSI本身在不断地开发中,私有化的代码在将来合并升级方面,将会有巨大的工作量。现实是一旦私有化,基本上也就不太可能合并新代码了。 2、PSI经过不断发展,形成了依托技术前沿网和码云的一个社区。私有化代码的公司,就需要以单个公司的资源与整个开源社区抗衡,其难度之大可想而知。 3、这也是PSI本身的品牌策略,通过许可他人全面的权利,并帮助别人赚钱,会帮助PSI形成良好的口碑。 4、任何一个公司的市场能力都是有限的,特别是在管理软件市场,大量的个性化需求导致需要众多的公司去服务。所以即使不允许私有化,也不会给PSI本身带来巨大的好处。反而倒不如完全开放,和大家一起开拓市场。 在实际的社区运营中,除了允许完全私有...
PSI 发布于 3天前 阅读 246 点赞 1
xson_org

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 发布于 1个月前 阅读 235 评论 5

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

由于公司一直使用nginx的iphash负载策略,iphash的优劣这里不做分析,在大量请求下,iphash策略是个坑, 抛开此策略,多个服务器做负载均衡就要先做session共享
java_龙 发布于 1个月前 阅读 674 评论 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     注解没有太多...
二十岁以后 发布于 1个月前 阅读 1501 评论 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个月前 阅读 1345 评论 8 点赞 10

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

首先,感谢各位朋友指出的问题,我会更加认真负责的写下去,希望帮助正在微服务前进的朋友,大家一起努力!
二十岁以后 发布于 2个月前 阅读 870 评论 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来添加额外...
二十岁以后 发布于 2个月前 阅读 4637 评论 24 点赞 4

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

前几天把thymeleaf写完了,在写thymeleaf的时候就提过几嘴微服务,那么接下来就讲一讲微服务开发的那点事!
二十岁以后 发布于 2个月前 阅读 1995 评论 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 发布于 2个月前 阅读 774 评论 9
xson_org

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 发布于 2个月前 阅读 765 评论 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 发布于 2个月前 阅读 117 点赞 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个月前 阅读 1040 评论 4 点赞 3
闲大赋

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

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

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

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

JeeSite 4.0 规划(二)

接上文:https://my.oschina.net/thinkgem/blog/911392 点击图片查看高清图
thinkgem 发布于 4个月前 阅读 2565 评论 31 点赞 13

《AOSuite G1开发手册》之AOSuite G1开发环境搭建

AOSuite开发套件基于JavaEE技术体系,以“标准功能可复用、通用模块可配置、行业需求快速开发、异构系统无缝集成”为目标, 帮助企业落实IT策略、屏蔽技术壁垒,快速实现可水平扩展的高性能高可用业务愿景。 为传统软件企业和互联网企业研发团队提供高效可控、随需应变、快速实现业务需求的全栈式技术解决方案,以最低成本和最低风险获得更高质量、更快交付业务和运维支持的核心技术竞争力。
afghan007 发布于 4个月前 阅读 364 评论 1 点赞 1
XuYuan

让Hibernate识别数据库特有字段

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

JeeSite 4.0 规划(一)

时隔3年,偶得OSC举办的2016最优秀的开源项目之一,让Gem兴奋了一下,也再次燃起了对JeeSite升级的强烈欲望。感谢OSC提供码云这么好的平台,感谢红薯大哥的亲笔祝福! 很抱歉,由于近年来工作原因比较忙,JeeSite得到的是极少维护,在这样的情况下,依然得到了大家的深深青睐,这让Gem感到非常羞愧,在此忠诚感谢您们的鼓励和支持,否则也没有JeeSite的今天。 JeeSite自开源以来被用到了企业、政府、医疗、金融、互联网等各个领域中,JeeSite的设计思想和开发模式也深入支持者的内心,也帮助了不少刚毕业的大学生去快速学习和实践。这次升级的规划Gem也结合了以往的经验和总结各方面的应用案例,对架构做一次全部重构,也纳入一些新的思想。从开发者模式、底层架构、逻辑处理到用户界面都有很大的进步,最重要的是安全稳定,降低学习成本,提高开发效率。 由于时代的变革,技术的演变,这次规划架构的变化很大,所以将不考虑之前版本的兼容。既然有了规划,就的去实现,在不影响正常工作的情况下,所有计划均安排在本人业余时间,这样也就意味着,我会牺牲掉业余时间去学习新的知识。话说回来,规划结果也是我非常期待的,可以把我近年来的一个个的想法,一个个的目标,在这...
thinkgem 发布于 4个月前 阅读 2183 评论 26 点赞 14
ht896632

Docker容器链接-WEB容器连接MYSQL容器

Docker容器链接-WEB容器连接MYSQL容器
ht896632 发布于 4个月前 阅读 199 评论 13

MES 系统

  领先的MES解决方案供应商 FTPC FactoryTalk ProductionCentre (FTPC)是罗克韦尔自动化的MES平台软件,基于SOA架构,J2EE技术。 该软件完全符合S95标准,提供了丰富的业务对象,如生产线、在制品、设备、路经等,具有强大的建模能力。在提供了丰富的应用模块,如供应商管理、跟踪与追溯、SPC、CAPA、RMA等功能模块的同时,用户也可以在FTPC的开放二次开发环境中定制开发自己的需求。 由于不同行业的生产和管理流程不同,用户对MES的需求也不同。针对汽车、制药、消费品等行业罗克韦尔自动化已经在FTPC平台上提供了对应的Pharma Suite、CPG Suite、Auto Suite解决方案。 作为罗克韦尔自动化FactoryTalk 软件的一员,FTPC可以和罗克韦尔自动化的其他任何一款软件无缝集成,共享数据和基础服务,这种架构为打造完全的企业生产信息系统提供了强有力的手段。 FTPC提供各种接口技术以实现和企业上层信息系统(如ERP)及下层生产控制设备(如第三方PLC)的集成。 目前FTPC在全球和中国已有广泛应用案例,在汽车、食品饮料、电子、半导体等行业发展迅速。 其特点是: 基于J2EE架构 FTPC的架构体系自下而上分为四层:数据层、商业逻辑层、web层和客户端层 公司简要:  ...
诺岚 发布于 1个月前 阅读 23

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

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

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 发布于 1个月前 阅读 235 评论 5

Code::Blocks设定相关

本来想一条动弹记录一下的,但是动弹有字符限制,干脆一不做二不休,开一篇文章吧,以后与Code::Blocks相关的东西都记录到这。
小保哥 发布于 1个月前 阅读 12

Git功能分支工作流

功能分支工作流背后的核心思路是所有的功能开发应该在一个专门的分支,而不是在master分支上。这个隔离可以方便多个开发者在各自的功能上开发而不会弄乱主干代码。另外,也保证了master分支的代码一定不会是有问题的,极大有利于集成环境。
楠木楠 发布于 1个月前 阅读 5

Git版本控制 —— 原理概述

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。   前言 关于git是什么,git的工作原理,网上的资料已经非常多了。本人菜鸟固然不会比各路大神写的好。 所以本篇博文只按照我自己最肤浅的理解,使用白话进行阐述。主要目的以后自己能看懂,水平不高的读者也能看懂。   分布式管理 所谓分布式管理就是所有参与git项目的人,在自己的本地都会有一套完整的版本库。而对于传统的svn类型的集中式版本管理而言完整的版本库只有一套在服务器上,参与的人只不过拷贝了某一分支的代码而已。 分布式管理目前被某些“信徒”鼓吹的好的不得了,但我看来也是要具体情况具体分析的。 1、项目组人员水平参差不齐,不是所有人都能够摆弄清楚分支管理的。svn时期我自己就能把版本库分支维护的利利索索。而这种本地任意管理分支的情况让一些水平较差的程序员管理的非常混乱,甚至导致丢失未提交的代码。 2、团队协作比较密切的时候提交代码是非常频繁的,往往我刚写完一个实体,同事马上就要求我提交。git的提交显然是比较繁琐的。 总结来说git对于开源项目是非常合适的。代码贡献者能够轻松地获取整个版本库,然后在开发完整块代码后申请合并。而在一个...
啊哼哼 发布于 4周前 阅读 5

Git工作流指南:Gitflow工作流

Gitflow工作流借鉴自在nvie的Vincent Driessen。 Gitflow工作流定义了一个围绕项目发布的严格分支模型。虽然比功能分支工作流复杂几分,但提供了用于一个健壮的用于管理大型项目的框架。 Gitflow工作流没有用超出功能分支工作流的概念和命令,而是为不同的分支分配一个很明确的角色,并定义分支之间如何和什么时候进行交互。除了使用功能分支,在做准备、维护和记录发布也使用各自的分支。当然你可以用上功能分支工作流所有的好处:Pull Requests、隔离实验性开发和更高效的协作。 工作方式 Gitflow工作流仍然用中央仓库作为所有开发者的交互中心。和其它的工作流一样,开发者在本地工作并push分支到要中央仓库中。 历史分支 相对使用仅有的一个master分支,Gitflow工作流使用2个分支来记录项目的历史。master分支存储了正式发布的历史,而develop分支作为功能的集成分支。这样也方便master分支上的所有提交分配一个版本号。 剩下要说明的问题围绕着这2个分支的区别展开。 功能分支 每个新功能位于一个自己的分支,这样可以push到中央仓库以备份和协作。但功能分支不是从master分支上拉出新分支,而是使用develop分支作为父分支。当新功能完成时,合并回develop分支。新功能...
楠木楠 发布于 3个月前 阅读 21

git 实践之冲突管理

冲突是团队使用版本控制工具必须面临的问题。有些人对代码冲突非常畏惧,是因为他们对冲突管理不熟悉导致的,因此本文主要讨论冲突产生的原因和种类,如何减少冲突,以及处理冲突的正确步骤。
-鹏 发布于 2个月前 阅读 11

为什么允许任何人完全私有化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 发布于 3天前 阅读 246 点赞 1

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

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

ERP英文常见缩写

ERP : (Enterprise Resource Planning)企业资源规划 (ERP是什么?) CRM : (Customer Relationship Management)客户关系管理 KM : (Knowledge Management)知识管理 MRP : (Material Requirement Planning)物料需求规划 MRPII : (Manufacturing Resource Planning) 制造资源计划 SCM : (Supply Chain Management)供应链管理 BOM Bill of Material 资材传票 BPR Business Process Reengineering 业务程序在设计 CE Concurrent Engineering 同时进行工程管理 CIM Computer Integrated Manufacturing 计算机加工一体化 CRP Capacity Requirement Planning 能力需求计划 DSS Decision Support System 协助决裁系统 DW/DM Data Warehouse/Data Marketing 数据库/市场 EC Electronic Commerce 电子商业 EDI Electronic Data Interchange 电子资料交流 EDMS Electronic Document Management System 电子文件管理体系 EHS Environment Health & Safety 环境卫生安全 EI Enterprise Integration 企业一体化 EIS Executive Information System 信息执行体系 EMS Electricity Management System 电力管理体系 ERP Enterprise Resource Planning 企业资源计划 FMS Flexible Manufactu...
水狐狸 发布于 2个月前 阅读 15

kafka0.8消费者实例

## 序 这里简单展示一下如何使用kafka0.8的client去消费一个topic。 ## maven ``` org.apache.kafka kafka_2.10 0.8.2.2 ``` ## 初始化客户端 ``` Properties props = new Properties(); props.put("zookeeper.connect", zk); // props.put("auto.offset.reset","smallest"); props.put("group.id",group); props.put("zookeeper.session.timeout.ms", "10000"); props.put("zookeeper.sync.time.ms", "2000"); props.put("auto.commit.interval.ms", "10000"); props.put("consumer.timeout.ms","10000"); //设置ConsumerIterator的hasNext的超时时间,不设置则永远阻塞直到有新消息来 props.put(org.apache.kafka.clients.consumer.ConsumerConfig.PARTITION_ASSIGNMENT_STRATEGY, "range"); ConsumerConfig consumerConfig = new kafka.consumer.ConsumerConfig(props); ConsumerConnector consumerConnector = kafka.consumer.Consumer.createJavaConsumerConnector(consumerConfig); Map topicCountMap = new HashMap(); topicCountMap.put(topic, consumerCount); Map>> consumerMap = consumerConnector .createMessageStreams(topicCountMap); ``` ## 并发消费 ``` ...
go4it 发布于 2天前 阅读 7

Explorer.exe的命令行参数

Explorer.exe的命令行参数
Sophia_tj 发布于 23小时前 阅读 7

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 发布于 2周前 阅读 45

JQuery为下拉列表、复选框、单选框赋值

JQuery为下拉列表、复选框、单选框赋值 http://liuna718-163-com.iteye.com/blog/1717723
Dawn_昕 发布于 3天前 阅读 8

Java的四舍五入运算

## 背景 ## 最近接触银行项目,发现在做金额四舍五入的时候并没有传统意义上那么简单,银行为了尽量缩减在这方面的亏损,有一个单独的银行家舍入法。 ## 传统的四舍五入运算 ## System.out.println("12.5的四舍五入值:" + Math.round(12.5)); System.out.println("-12.5的四舍五入值:" + Math.round(-12.5)); 输出结果: 12.5的四舍五入值:13 -12.5的四舍五入值:-12 原因: **Math.round是在原来的数字的基础上+0.5然后向下取整。** ## 银行家舍入法 ## 舍去位的数值小于5时,直接舍去。 舍去位的数值大于5时,进位后舍去。 当舍去位的数值等于5时,若5后面还有其他非0数值,则进位后舍去,若5后面是0时,则根据5前一位数的奇偶性来判断,奇数进位,偶数舍去。 > 举例说明: > > 11.556 = 11.56 ------六入 > > 11.554 = 11.55 -----四舍 > > 11.5551 = 11.56 -----五后有数进位 > > 11.545 = 11.54 -----五后无数,若前位为偶数应舍去 > > 11.555 = 11.56 -----五后无数,若前位为奇数应进位 贴个示例: public static void main(String[] args) { BigDecimal d = new BigDecimal(Double.toString(100000));//存款 BigDecimal r = new BigDecimal(Double.toString(0....
Ethel_oo 发布于 2天前 阅读 7

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

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

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

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

HttpClientUtil

使用需要引入jar包,maven项目引入如下: ` org.apache.httpcomponents httpclient 4.5 org.apache.httpcomponents httpcore 4.4.4 org.apache.httpcomponents httpmime 4.5 ` 使用方法,代码如下:  ``` package com.test; import java.io.File; import java.io.IOException; import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; import org.apache.http.conn.socket.PlainConnectionSocketFactory; import org.apache.http.conn.ssl.SSLConnection...
zh151832 发布于 1周前 阅读 9
xson_org

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 发布于 2个月前 阅读 765 评论 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 发布于 2个月前 阅读 774 评论 9

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

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

为什么允许任何人完全私有化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 发布于 3天前 阅读 246 点赞 1

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

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

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 发布于 2个月前 阅读 765 评论 2

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 发布于 2周前 阅读 45

Spring 生态圈

Spring FramWork     spring framwork是spring社区的发起项目  spring社区所有项目都是围绕此项目展开/发展而来;Spring Framework提出了两个核心思想 依赖注入和面向切点编程; Spring IO Platform     当我们需要使用Spring+第三方包的时候往往会因为版本冲突问题而烦恼;那么此项目主要是结合构建工具(Maven Gradle)使用;     Spring IO主要管理的第三方jar依赖列表:https://docs.spring.io/platform/docs/Brussels-SR3/reference/htmlsingle/ 在此文档中可以找到;   Spring Boot     是Spring社区的新星只秀,为什么这么说呢  主要是使用了Spring Boot之后,我们创建和使用Spring得到了极大的简化(配置简化);这也是Spring发展的一个方向  让开发人员摆脱复杂的配置;     不仅如此,在此项目中还嵌入了J2ee容器   为我们开发带来极大的方便;     Spring Boot的核心亮点在于除了上面说的简化配置(采用默认配置) 嵌入容器还有就是actuator,他能对我们web容器运行状态 以及访问请求进行记录;   Spring Cloud Data Flow     从名字可以看出,此项目是关于数据流的;此项目是在SpringXD项目基础之上重构而来!主要是解决Spring对大数据产品的结...
天呀鲁哇 发布于 2个月前 阅读 85

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 发布于 2个月前 阅读 774 评论 9

JQuery为下拉列表、复选框、单选框赋值

JQuery为下拉列表、复选框、单选框赋值 http://liuna718-163-com.iteye.com/blog/1717723
Dawn_昕 发布于 3天前 阅读 8

Visual Studio Code使用笔记

今天体验了下Visual Studio Code,不论是界面还是使用过的体验,真的挺舒服!感觉是心目中的IDE,给个赞!特此记下使用的体验! 快捷键 只罗列一些常用的! 复制: Ctrl+C Ctrl+V如果不选中,默认复制或剪切一整行 上下移动一行: Alt+Up 或 Alt+Down 向上向下复制一行: Shift+Alt+Up或Shift+Alt+Down 在当前行下边插入一行Ctrl+Enter 在当前行上方插入一行Ctrl+Shift+Enter 移动到文件结尾:Ctrl+End 移动到文件开头:Ctrl+Home 移动到行首:Home 移动到行尾:End 找到所有的引用:Shift+F12 同时修改本文件中所有匹配的:Ctrl+F12 查找 Ctrl+F 查找替换 Ctrl+H 整个文件夹中查找 Ctrl+Shift+F VS Code与Python 安装python插件 打开VScode,Ctrl+p 输入 "ext install python",搜索时间可能会比较长 选择下载量最高的那个插件点击安装 配置flake8 安装flake8之后写代码的时候编辑器就会提示哪里出错,代码格式不规范也会提示 打开命令行 输入 "pip install flake8" 安装flake8成功后,打开VScode,文件->首选项->用户设置,在settings.json文件中输入"python.linting.flake8Enabled": true 配置yapf 安装yapf之后在VScode中按Alt+Shift+F即可自动格式化代码 打开命令行 ...
楠木楠 发布于 3个月前 阅读 108

微信小程序下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 发布于 2个月前 阅读 117 点赞 1
闲大赋

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

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

Git版本控制 —— 常用命令速查

git init (初始化版本库) 此命令用于创建一个git版本库。执行此命令的目录下会多出一个“.git”隐藏目录。git版本库信息就存储在这个目录下。 git init   “.git”目录中的文件结构如下 $ ls config description HEAD hooks/ info/ objects/ refs/ config git配置文件 description 仓库的描述信息,主要给gitweb等git托管系统使用 HEAD 这个文件包含了一个档期分支(branch)的引用 hooks/ 这个目录存放一些shell脚本,可以设置特定的git命令后触发相应的脚本;在搭建gitweb系统或其他git托管系统会经常用到hook script info/ 包含仓库的一些信息 objects/ 所有的Git对象都会存放在这个目录中,对象的SHA1哈希值的前两位是文件夹名称,后38位作为对象文件名 refs/ 这个目录一般包括三个子文件夹,heads、remotes和tags,heads中的文件标识了项目中的各个分支指向的当前commit   git clone (克隆项目) 此命令用于将远程版本库克隆到本地。 git支持https和ssh协议进行项目的克隆操作 git clone https://git.oschina.net/imlichao/git-example.git git clone [email protected]:imlichao/git-example.git   git status(查看文件状态) 此命令用于查看更改过...
啊哼哼 发布于 4周前 阅读 5

基于dcm4che3的DICOM文件的读取操作

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import org.dcm4che3.data.Attributes; import org.dcm4che3.data.DatasetWithFMI; import org.dcm4che3.data.Tag; import org.dcm4che3.data.VR; import org.dcm4che3.io.DicomInputStream; import org.dcm4che3.io.DicomOutputStream; public class DicomUtil { private DicomInputStream dis = null; private DatasetWithFMI datasetWithFMI = null; private Attributes data = null; private Attributes fmi = null; public DicomUtil(InputStream is) { super(); try { dis = new DicomInputStream(is); datasetWithFMI = dis.readDatasetWithFMI(); data = datasetWithFMI.getDataset(); fmi = datasetWithFMI.getFileMetaInformation(); dis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public String getValueByTag(int tag) { String value = ""; if (data != null) { value = data.getString(t...
D大调协奏曲 发布于 3个月前 阅读 75

SSO:JWT安全认证的应用问题

    Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。        基于JWT安全认证机制来实现SSO登录;在这个过程中对于SSO的基础实现我们采用一台单独的SSO服务器来进行登录验证,一旦有某一台服务器登录后SSO服务器自然会有验证记录,其他域名下的服务器只需要和SSO服务器校验便可以知道用户是否登录(通过跨域实现),整体机制是构建与cookie之上。     JWT在SSO过程中起到了一种无状态传输的效果,我们只关心请求中所附加的token,通过token进行鉴权从而确认请求的合法性;这样的话整个实现不在立足于session,至于token的存储在前端是通过cookie或者localstorage实现我们并不关心。     1.基于shiro机制实现的方案尤其要注意以下几点:     1)多机器情况下,每台机器都用shiro控制,shiro的登录依赖自己的session,如果每台...
wiitht 发布于 2个月前 阅读 14

【重大更新】DevExpress v17.1新版亮点(VCL上篇)

想要开始使用我们的最新版?请下载免费的30天试用版——DevExpress VCL Controls v17.1,本站以连载的形式为大家介绍各版本新增内容。本文为大家介绍DevExpress VCL Controlsv17.1中Grid Control、Ribbon & Toolbars、Map Control、PDF Viewer等控件的新功能。 Grid Control 改进行选择 v17.1引入了以下改进的行选择: 使用复选框选择web样式的行选择; 可自定义复选框位置: 数据行; 组行; 列标题; 指标或第一列。 一种新的模式,可帮助最终用户在行导航过程中保持当前的选择; 在组行和其子行之间选择同步所选状态,以帮助用户以较少的鼠标点击进行选择。 Ribbon & Toolbars 此版本增加了以下增强功能: 能够在状态栏中使用自定义面板(TdxStatusBarPanel descendants); Ribbon GalleryItem - 隐藏gallery item提示功能; Ribbon ColorGalleryItem - 调色板项目的可选边框; 能够自定义自动菜单项的颜色。 Map Control New Projections Braun stereographic; EPSG:4326 (also known as WGS 84 or WGS 1984); Kavrayskiy VII; Lambert cylindrical equal-area; Sinusoidal. PDF Viewer 文本搜索和高亮显示 在新版本中,我们扩展了VCL PDF Viewer的功能,具有以下...
Miss_Hello_World 发布于 3个月前 阅读 23

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

此文根据CBoard官方文档整理 原文地址:https://github.com/yzhang921/CBoard/wiki/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3 系统需求 Before the start, make sure you have setup environment: JDK version above 1.8 MySQL 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 file according to your db environment CBoard/src/main/resources/config.prop...
gugudu 发布于 2个月前 阅读 156

mybatis懒加载 responsebody json序列化时候的异常

mybatis开启懒加载后,返回bean为json时,出现如下异常 10:29:47.016 [http-apr-8088-exec-10] WARN o.s.w.s.m.s.DefaultHandlerExceptionResolver - Failed to write HTTP message: org.springframework.http.converter.HttpMessageNotWritableException: Could not write content: No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$EnhancedResultObjectProxyImpl and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) )   网上两种处理意见 1 继承ObjectMapper 设置属性为 SerializationFeature.FAIL_ON_EMPTY_BEANS 为false。  2 在需要转json的实体类上加 @JsonInclude(JsonInclude.Include.NON_EMPTY) 第二种方案有一个弊端 ,比如实体类中,存在一个integer为0 ,则json就不转化了 查找发现 对于hibeante有一种处理方式 @JsonIgnoreProperties(value={“hibernateLazyInitializer”,”handler}) 我认为 mybatis也应该可以有类似hibernate的处理方式 但是网上没有找到 debug观察需要处理的bean,发现多了一个属性 应该是懒加...
kentxp 发布于 3个月前 阅读 48

IDEA2016 + tomcat 设置热部署

IntelliJ Idea 之前一直是使用 Eclipse+Jetty 开发的,然而在一次OSX系统更新之后,eclipse居然由于版本过低打不开了(各种震惊、悲伤与无奈)。。。。于是一怒之下换成了IDEA+Tomcat。 下面就来讲一下如何用Idea+Tomcat实现热部署。 热部署好处 什么是热部署呢?举例来说,就是如果你启动了一个应用,但是突然改写了一个文件,如果要使这个改动生效,我们通常需要重新启动这个应用,然而这个启动过程可能会花费很长时间。 那有没有其他办法可以既使改动生效,又不至于去浪费时间重启应用呢?有!那就是热部署。热部署可以在你改动文件之后,系统自动或人工手动触发重新加载class的机制,从而实现不需要启动整个应用,却能使改动生效的效果。 热部署配置 本文默认你的IDEA已经安装了Tomcat,没有安装的请先去安装,安装方法略; 打开Edit Configurations; 选择已有的server或者点击左上角新建一个server; 选择Deployment,点击左下角的+号,选择Artifact,然后选择你对应的项目; 选好后是下面这个样子,右侧可以编辑你的项目路径; 选择Server,主要有以下几点需要注意: VM options: 如果你的tomcat打印出来的日志乱码,那么把这项设置为-Dfile.encoding=UTF-8 On 'Updat...
Dylan1009 发布于 1个月前 阅读 12

如何使用nuget管理C#网站项目

接手C#的项目团队后,发现历史遗留的项目dll管理有些混乱,各个开发人员名下的项目有很多自定义dll或者是很老版本的dll文件,往往一个项目从vss拉下来后无法生成成功,提示缺少必要的dll文件,解决方式一般是向初始开发人员索要dll文件,极大的影响开发效率。其实在C#项目中有非常好用的依赖包管理工具Nuget,类似于Java项目用的maven管理Jar包资源。
暗夜孤灯 发布于 3天前 阅读 6
xson_org

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 发布于 1个月前 阅读 235 评论 5

介绍一个国内强大的API接口文档写作网站showdoc

这几天要写一个接口API文档,经理给我发过来一个,说要弄一个这样的接口文档,我一看,这可麻烦呀,有大纲有详细,我以为要用div+css去一个页面一个页面做呢,这工作量可不小,网站一搜索,竟然有可以直接生成api接口文档的网站,我又孤陋寡闻了,通过这几天的使用比较,我选定了showodc。  SHOWDOC 我本来用的apiary.io,全体也不错,而且是oralce收购的,发展应该可以,但是国外的服务器国内访问实在。。。。后来说在国内找一下,很幸运我发现了showdoc。   showdoc网站打开看着不起眼,但里面的内容相当的强大,重点说下特点 1:支持markdown语法(所有的api接口写作现在都支持这个吧,因为他现在太方便了) 2:支持多用户协作,你可以在项目下面随意添加多个用户一起完成api文档的写作。 3:可以分享并导出项目,生成需要的文档格式如doc,可以离线浏览 4:支持响应式,手机电脑同样精彩 5:支持项目转让 6:支持模版插入 7:支持历史版本,你可以把操作恢复到以前的版本。 8:showdoc完全开源 9:可以部署到自己的服务器 10:如果在线使用,可以设置自己的个性域名,也可以对文档进行加密,浏览者需要密码才能访问 11:可以通过一个在线测试api的工具,直接生成mar...
mecisery 发布于 2周前 阅读 59

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

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

Explorer.exe的命令行参数

Explorer.exe的命令行参数
Sophia_tj 发布于 23小时前 阅读 7

Javascript错误提示--SyntaxError: Illegal return statement

今天在一个jsp页面中获取一个节点并绑定事件时,chrome弹出了一个错误:  SyntaxError: Illegal return statement 具体代码如下: <script> var btn; if(!(btn=document.getElementById('btn'))) return false; btn.onclick=function(){alert("this btn");} </script> 1 2 3 4 5 查看了js的手册后发现,在js中return 语句只能放在function中,如果不是在一个function中弹出如上错误。  解决方法只要把这个if语句放到一个函数中即可。 <script> window.onload=function(){ var btn; if(!(btn=document.getElementById('btn'))) return false; btn.onclick=function(){alert("this btn");} } </script>...
无语年华 发布于 24小时前 阅读 1

kafka0.8消费者实例

## 序 这里简单展示一下如何使用kafka0.8的client去消费一个topic。 ## maven ``` org.apache.kafka kafka_2.10 0.8.2.2 ``` ## 初始化客户端 ``` Properties props = new Properties(); props.put("zookeeper.connect", zk); // props.put("auto.offset.reset","smallest"); props.put("group.id",group); props.put("zookeeper.session.timeout.ms", "10000"); props.put("zookeeper.sync.time.ms", "2000"); props.put("auto.commit.interval.ms", "10000"); props.put("consumer.timeout.ms","10000"); //设置ConsumerIterator的hasNext的超时时间,不设置则永远阻塞直到有新消息来 props.put(org.apache.kafka.clients.consumer.ConsumerConfig.PARTITION_ASSIGNMENT_STRATEGY, "range"); ConsumerConfig consumerConfig = new kafka.consumer.ConsumerConfig(props); ConsumerConnector consumerConnector = kafka.consumer.Consumer.createJavaConsumerConnector(consumerConfig); Map topicCountMap = new HashMap(); topicCountMap.put(topic, consumerCount); Map>> consumerMap = consumerConnector .createMessageStreams(topicCountMap); ``` ## 并发消费 ``` ...
go4it 发布于 2天前 阅读 7

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

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

Java的四舍五入运算

## 背景 ## 最近接触银行项目,发现在做金额四舍五入的时候并没有传统意义上那么简单,银行为了尽量缩减在这方面的亏损,有一个单独的银行家舍入法。 ## 传统的四舍五入运算 ## System.out.println("12.5的四舍五入值:" + Math.round(12.5)); System.out.println("-12.5的四舍五入值:" + Math.round(-12.5)); 输出结果: 12.5的四舍五入值:13 -12.5的四舍五入值:-12 原因: **Math.round是在原来的数字的基础上+0.5然后向下取整。** ## 银行家舍入法 ## 舍去位的数值小于5时,直接舍去。 舍去位的数值大于5时,进位后舍去。 当舍去位的数值等于5时,若5后面还有其他非0数值,则进位后舍去,若5后面是0时,则根据5前一位数的奇偶性来判断,奇数进位,偶数舍去。 > 举例说明: > > 11.556 = 11.56 ------六入 > > 11.554 = 11.55 -----四舍 > > 11.5551 = 11.56 -----五后有数进位 > > 11.545 = 11.54 -----五后无数,若前位为偶数应舍去 > > 11.555 = 11.56 -----五后无数,若前位为奇数应进位 贴个示例: public static void main(String[] args) { BigDecimal d = new BigDecimal(Double.toString(100000));//存款 BigDecimal r = new BigDecimal(Double.toString(0....
Ethel_oo 发布于 2天前 阅读 7

Java中BigDecimal的加减乘除和比较大小

java.math.BigDecimal加减乘除,大小比较
Ethel_oo 发布于 2天前

【版本更新】完整UI库Kendo UI发布R3 2017|附下载

通过70多个可自定义的UI组件,Kendo UI Professional可以创建数据丰富的桌面、平板和移动Web应用程序。通过响应式的布局、强大的数据绑定、跨浏览器兼容性和即时使用的主题,Kendo UI Professional将开发时间加快了50%。 Kendo UI Professional目前最新提供Kendo UI for jQuery、Kendo UI for Angular、Kendo UI Support for React和Kendo UI Support for Vue四个控件。Kendo UI for jQuery是创建现代Web应用程序的最完整UI库;Kendo UI for Angular是专用于Angular开发的专业级Angular UI组件;Kendo UI Support for React支持React Javascript框架,更快地构建更好的应用程序;Kendo UI Support for Vue为Vue技术框架提供可用的Kendo UI组件,更快地构建更好的Vue应用程序。 更多资源请查看【Kendo UI视频教程集合】【Kendo UI TreeView功能详解】【Kendo UI经典开发案例赏析】 【适用范围】:各种桌面、Web应用程序及移动开发,尤擅长Web应用程序及跨平台的移动应用开发,程序员只需要少量编码就可以实现相应的效果,能节省大量的时间成本。 【Kendo UI R3 2017下载】 具体更新内容如下: 新增: 新增Kendo UI Wrappers for React 新增Kendo UI Wrappers for Vue 改进键...
Miss_Hello_World 发布于 2天前 阅读 3

spark on yarn (Job history)的配置,主要是yarn处跳转到历史聚合页面

1.先开启服务   yarn,hdfs,spark    1.先开启服务   yarn,hdfs,spark    2.运行程序      3.在yarn上无法观察history      同时,http://linux-hadoop3.ibeifeng.com:18080 无法打开使用   如果点击logs将会出现下面的情况:      4.因为没有开启服务    1. MR的job History服务启动(不需要启动)     mr-jobhistory-daemon.sh start historyserver     http://hadoop-senior01:19888/jobhistory   2. Spark的Job History服务启动     sbin/start-history-server.sh   5.结果      但是,在yarn上的history仍然不可以跳转。   二:解决方法 1.关闭所有的服务   因为需要修改spark与hadoop的配置文件      2.修改yarn-site.xml      3.修改spark-defaults.conf      4.重启服务      5.继续运行刚才的程序      6.开始观看所有的效果(首先是18080端口)      7.继续(yarn的8088端口的history点击)   yarn的8088端口      单击后跳到这个界面(18080端口)          ...
Zero零_度 发布于 2天前 阅读 4

如何使用nuget管理C#网站项目

接手C#的项目团队后,发现历史遗留的项目dll管理有些混乱,各个开发人员名下的项目有很多自定义dll或者是很老版本的dll文件,往往一个项目从vss拉下来后无法生成成功,提示缺少必要的dll文件,解决方式一般是向初始开发人员索要dll文件,极大的影响开发效率。其实在C#项目中有非常好用的依赖包管理工具Nuget,类似于Java项目用的maven管理Jar包资源。
暗夜孤灯 发布于 3天前 阅读 6

如何从vss迁移C#网站项目到gitlab

项目组的C#项目都是放在vss中,现要迁移到gitlab服务器
暗夜孤灯 发布于 3天前 阅读 2

jQuery ajax请求成功且返回了数据,但是不进success:function()

1.状态码返回200--表明服务器正常响应了客户端的请求; 2.通过firebug和IE的httpWatcher可以看出服务器端返回了正常的数据,并且是符合业务逻辑的数据,但程序就是不进入回调函数success:function(data){****}而是进入到error: function(data){***},记得上次是因为存在跨域访问的问题导致。这次查看不存在跨域的问题;    3.返回的数据类型一定要符合定义的数据类型。即如果你定义的 dataType 是 json 类型的,那么返回来的数据一定是 json 才可以,不然就会执行 error 里的程序; 4.同时需要特别的注意返回的JSON数据是否是严格的JSON格式; 5.也应该严重关切当后台返回的是一个List 数据(List当中的数据是Json格式)时,有没脏数据即不是严格的JSON格式。很隐蔽的可能是数据某一个字段中在开始或末尾含有特殊字符,以"回车键"、"Tab键"等; 6.还有一点对JQuery 中ajax的一点其它的认识: 客户端发起请求,得到服务器端的相应是200(正确拿到服务器响应的数据)没有问题.此时在判断进入success 对应的回调函数还是进入到error对应的回调函数之前,可能会校验一些东西: a.返回的每条数据是否是dataType中定义的数据类型。如果有部分数据不是或者哪怕一条数据没有严格的...
无语年华 发布于 3天前 阅读 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 发布于 3天前 阅读 246 点赞 1

JQuery为下拉列表、复选框、单选框赋值

JQuery为下拉列表、复选框、单选框赋值 http://liuna718-163-com.iteye.com/blog/1717723
Dawn_昕 发布于 3天前 阅读 8

十年建站老司机带你十分钟搭建网站

本文概要: 1. 域名 + 域名注册 + 域名备案 + 域名解析绑定 2. 服务器 + 虚拟主机 + windows服务器 + linux服务器 3. CMS建站系统 4. 总结 在如今互联网发展迅速猛进的大环境下,网站已经成为一个企业不可缺少的网络媒介。但网站开发行业鱼龙混杂,质量参差不齐,价格更是跨越区间大。尤其对于那些在建站方面不懂的小白来说,很容易被人坑,所以作为在网站开发行业摸爬滚打多年的草根老司机,通过本文向大家分享建站的经验与心得,避免不必要的弯路和成本损耗。   Come on! 小伙伴们赶紧上车,系好安全带,马上就要发车了! 1. 域名 域名就是用户访问网站时在浏览器输入的网址,是访问网站的入口。所以搭建网站首先要有一个自己的域名。整体上讲,关于域名主要从以下几个方面操作入手。   域名注册 => 域名备案 => 域名解析绑定 域名注册 前期域名的注册至关重要,一个简短易记的域名有利于提升网站品牌价值。注册域名可以到一些知名的IDC服务平台注册,比如阿里云、西部数码等。   注册一个域名价格一般就几十块钱,有些平台看似首年注册价格很便宜,但其付费价格很高。所以大家在注册域名时要特别留意下续费价格。特别是对于企业用户,...
it1000001001 发布于 3天前 阅读 2

java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy

maven项目中启动web报:java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy 问题复现: 1.maven项目中引入阿里云sdk <dependency>          <groupId>com.aliyun.oss</groupId>          <artifactId>aliyun-sdk-oss</artifactId>         <version>2.5.0</version>   </dependency>   项目启动报:java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy 原因:因为阿里云sdk自动依赖了httpclient-4.4.1和httpcore-4.4.1跟项目中引入的httpclient其他版本冲突了。 选择工程pom.xml执行命令:dependency:tree -Dverbose查看工程依赖树结构: 看截图信息发现阿里云依赖的httpclient-4.4.1,而项目中又有httpclient-4.5.2,httpclientjar版本冲突 备注:不能仅仅是dependency:tree这个命令,因为这样看不出深层次的依赖引用关系,后面必须加上-Dverbose. 解决方法: 方法一:删除其他版本的httpclient,如下截图,httpclient版本除了阿里云sdk依赖的没有其他版本。 方法二:添加阿里云sdk排除httpclient依赖: <!-- OSS Java SDK -->   <dependency>       <groupId>com.aliyun.oss</groupId>    ...
无语年华 发布于 3天前 阅读 1

springMVC使用multipartFile上传文件出错:MultipartHttpServletRequest: is a MultipartResolver configured?

这是因为找不到multipartReslover的原因,在springMVC配置文件配置它的时候,不能用其他名字,只能用指定名字,否则就出现这种找不到的错误。 出错例子:   改正例子:   一定要用multipartResolver这个id名。
无语年华 发布于 3天前

Kendo UI常用示例汇总(二十一)

通过70多个可自定义的UI组件,Kendo UI Professional可以创建数据丰富的桌面、平板和移动Web应用程序。通过响应式的布局、强大的数据绑定、跨浏览器兼容性和即时使用的主题,Kendo UI Professional将开发时间加快了50%。 Kendo UI Professional目前最新提供Kendo UI for jQuery、Kendo UI for Angular、Kendo UI Support for React和Kendo UI Support for Vue四个控件。Kendo UI for jQuery是创建现代Web应用程序的最完整UI库;Kendo UI for Angular是专用于Angular开发的专业级Angular UI组件;Kendo UI Support for React支持React Javascript框架,更快地构建更好的应用程序;Kendo UI Support for Vue为Vue技术框架提供可用的Kendo UI组件,更快地构建更好的Vue应用程序。 更多资源请查看【Kendo UI视频教程集合】【Kendo UI TreeView功能详解】【Kendo UI经典开发案例赏析】 【适用范围】:各种桌面、Web应用程序及移动开发,尤擅长Web应用程序及跨平台的移动应用开发,程序员只需要少量编码就可以实现相应的效果,能节省大量的时间成本。 Kendo UI Professional试用版下载猛戳 Kendo UI列表视图示例一:基本用法 本示例主要演示了列表视图的基本用法。另附源代码供大...
Miss_Hello_World 发布于 1周前 阅读 2

myEclipse 中看jar源代码

如果需要此jar包和jad.exe 留言
hello菜bird 发布于 1周前 阅读 2

集成spring-data-jpa和spring-data-redis

spring data redis
有理想的鸭子 发布于 1周前 阅读 2

HttpClientUtil

使用需要引入jar包,maven项目引入如下: ` org.apache.httpcomponents httpclient 4.5 org.apache.httpcomponents httpcore 4.4.4 org.apache.httpcomponents httpmime 4.5 ` 使用方法,代码如下:  ``` package com.test; import java.io.File; import java.io.IOException; import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; import org.apache.http.conn.socket.PlainConnectionSocketFactory; import org.apache.http.conn.ssl.SSLConnection...
zh151832 发布于 1周前 阅读 9

微服务开发的入门级框架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来添加额外...
二十岁以后 发布于 2个月前 阅读 4637 评论 24 点赞 4

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

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

让Hibernate识别数据库特有字段

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

远程过程调用(RPC)详解

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

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

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

Spring 4.3 的新功能和增强

本文介绍了 Spring 4.3 的新功能和增强的特性。
waylau 发布于 1年前 阅读 8116 评论 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年前 阅读 3929 评论 9 点赞 6

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

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

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

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

Elasticsearch 2.2.0 分词篇:中文分词

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

Elasticsearch 2.20 高亮显示

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

Elasticsearch 2.20入门篇:聚合操作

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

运维中被低估的日志

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

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

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

我如何在OSC上做开源项目

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

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

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

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

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

基于可视化复杂SQL拼接插件 QueryBuilder

基于Web的自定义查询系统在国内一直是一个短板,目前国内普遍的自定义查询均为一个简单的查询组件的罗列,达不到真正的实现动态、智能化的自定义查询。本系统就是在这个背景下,着力于解决这个短板,并将一个demo发布出来。
码上中国博客 发布于 2年前 阅读 4715 评论 34 点赞 16

我匆匆那年撸的开发平台G4Studio成功落户OSC : )

G4Studio行业应用二次快速开发平台基于JavaEE技术体系,面向中小软件企业。以“标准功能可复用、通用模块可配置、行业需求快速开发、异构系统无缝集成”为目标,为中小软件开发团队提供强有力的一站式解决方案。
afghan007 发布于 2年前 阅读 8437 评论 35 点赞 11
顶部