开源中国

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

It appears you’re using an unsupported browser

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

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

spring boot整合 freemarker 详细教程

spring boot 我们都知道是一个简化配置的服务,省去繁琐的xml配置,以properties和yml还有 注解形式来替代之前的xml配置。 我们首先实现spring boot 对freemarker的支持,引入pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> 在yml中添加配置项: spring: freemarker: template-loader-path: classpath:/ftl/ classpath后面为前缀。也可以在注解配置类中实现 新建配置类:FreeMarkerConfig.java import com.jagregory.shiro.freemarker.ShiroTags; import freemarker.template.TemplateException; import freemarker.template.TemplateModelException; import java.io.IOException; import java.util.Properties; import javax.annotation.PostConstruct; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.ui.freemarker.FreeMarkerConfigurationFactory; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servl...
bweird 发布于 1周前 阅读 337 评论 1

RBAC基于角色的权限管理--设计篇1.0

# RBAC基于角色的权限管理--设计篇1.0 ## RBAC是什么 基于角色的权限管理。简单来说就是一个用户可以拥有若干个角色,一个角色可以拥有若干个权限。这样就形成了“用户-角色-权限”的模型。 ## 基础表设计 - **数据库采用MySql** - **这里表设计只采用最基础的字段** - **忽略字段长度,如采用此设计,请自行修改** - **忽略外键建设,如采用此设计,请自行建立** ### 用户表 ``` CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `create_user` datetime DEFAULT NULL COMMENT '创建人', `login_time` datetime DEFAULT NULL COMMENT '登录时间', `name` varchar(255) DEFAULT NULL COMMENT '用户名称', `password` varchar(255) DEFAULT NULL COMMENT '登录密码', `remark` varchar(255) DEFAULT NULL COMMENT '备注', `status` int(11) DEFAULT NULL COMMENT '用户状态', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `update_user` datetime DEFAULT NULL COMMENT '更新人员', `username` varchar(255) DEFAULT NULL COMMENT '登录名称', PRIMARY KEY (`id`) )...
小祝特烦恼 发布于 3周前 阅读 360 评论 7

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

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

Spring Websocket 在负载均衡下的配置

上一篇 [Spring Websocket 配置](https://my.oschina.net/714593351/blog/1583604) 介绍了单机下的服务端 websocket 配置。 这种实现方法,在多台服务器的情况下会出问题。因为我这个业务场景是经常服务器主动下发消息,所以会将 `WebSocketSession` 缓存到内存里,在需要的时候根据用户主键去查找对应的连接发送数据。 那么在多台服务器这种内存缓存就不凑效了,怎么办呢?第一想法是把 `WebSocketSession` 集中缓存,如缓存到 Redis 中。然而 `WebSocketSession` 不支持序列化,无法存储 redis 中。 既然无法集中缓存,那么,我们在需要发送数据时,分别向各台服务器发送通知:请向用户 A 发消息。每台服务器收到通知后,分别遍历自己缓存内的 `WebSocketSession` 如果有用户 A 的连接,则发送消息即可。这不就是 MQ 发布/订阅模式的应用场景嘛? 恰好,我们系统使用了 redis ,而 redis 支持发布/订阅模式,那就开始改造吧。 ### 1. redis 配置 ``` ``` 上面配置中,我们定义了一个 Topic:`websocket:sendMsgTopic` 并定义了对应的监听器 `websocketTopicMessageListener`。 监听器的实现如下,实现很简单,收到订阅的消息后通过 `userMessagesHandler.sendMessageToUs...
Codermecn 发布于 2个月前 阅读 367 点赞 1

spring boot / cloud (一) 使用filter防止XSS

spring boot / cloud (一) 使用filter防止XSS ##一.前言 ###XSS(跨站脚本攻击) >跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。 ##二.思路 ###基于filter拦截,将特殊字符替换为html转意字符 (如: "<" 转意为 "<") , 需要拦截的点如下: 请求头 requestHeader 请求体 requestBody 请求参数 requestParameter ##三.实现 ###1.创建XssHttpServletRequestWrapper类 在获取请求头,请求参数的这些地方,将目标值使用HtmlUtils.htmlEscape方法转意为html字符,而避免恶意代码参与到后续的流程中 /** * XssHttpServletRequestWrapper.java * Created at 2016-09-19 * Created by wangkang * Copyright (C) 2016 egridcloud.com, All rights reserved. */ package com.egridcloud.udf.core.xss; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import org.springframework.web.util.HtmlUti...
jianchileiliang 发布于 2个月前 阅读 422 评论 5 点赞 1

关于Spring Cloud 框架热部署的方法

所谓热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。对于Java应用程序来说,热部署就是在运行时更新Java类文件。
libingbin 发布于 2个月前 阅读 406 评论 3

Activiti(Flowable)流程克隆(运行时实例克隆)解决方案 一种订单制造中分裂与合并的核心技术实践

Activiti(Flowable)流程克隆(运行时实例克隆)解决方案 一种订单制造中分裂与合并的核心技术实践 作者:长沙大东家 xiaohelong2005@126.com 2017-11-24 20:24 长沙 1.  背景 订单可视化系统是单位的一套基于业务流程引擎技术的智能制造信息系统,在公司领导的战略部署下,完全自主开发的一套适用于多品种、小批量订单式制造型企业。系统以对订单的全生命周期进行管控。通过对订单的售前、生产、售后及过程中产生的异常等进行记录并分析。再以此为基础,对各个业务环节逐步细化,由于是对一个企业进行全方位流程再造,涉及到企业所有方面,持续时间较长,并且随着企业的发展而发展的一套系统。 在对流程引擎技术选择中,我们选择了Activiti(现在作者重新Fok出叫Flowable的项目),开源、稳定,社区活跃。但外国人开发的流程系统并没有考虑到中国的实际使用情况,如驳回、任意跳转等。更不用说会想到中国制造型企业的特色流程需求,如订单随时分裂与合并。 2.  问题提出 订单在流程的执行过程中,企业中会在所有可能的环节出现订单分裂的需求。如因为采购的物料只来的一部分,客户同意先提走一部分;客户在设计环节或制造前突然取消几套设备都有可能;即使在机器制造完毕后,...
长沙大东家 发布于 2个月前 阅读 94 评论 1 点赞 1

Redis 笔记系列(七)——“开发不是核心、配置才是王道”

断了一年的坑,今年年底了给自己个小目标,年底前把这个系列的文章填完。
HappyBKs 发布于 2个月前 阅读 947 评论 3 点赞 4

RabbitMQ系列二:管理RabbitMQ

## 一、虚拟主机 RabbitMQ服务器可以创建虚拟主机,它能拥有自己的队列、绑定和交换机,就像一个有自己的权限机制的迷你版RabbitMQ,不同的虚拟主机之间完全隔离,上篇例子都是基于默认的虚拟主机“/”,用的默认的guest用户和密码,项目上线时,默认的guest用户应该删除,取消管理员权限或者改变密码。下面创建自己的用户和虚拟主机,并赋予权限。 ``` [root@slave1 ~]# rabbitmqctl add_user yangyang 123456 Creating user "yangyang" ... ...done. [root@slave1 ~]# rabbitmqctl add_vhost web_develop Creating vhost "web_develop" ... ...done. # set_permissions 后面的三个 ".*" ,分别是配置(队列和交换的创建和删除)、写(发布消息)、读(小飞消息)的权限 [root@slave1 ~]# rabbitmqctl set_permissions -p web_develop yangyang ".*" ".*" ".*" Setting permissions for user "yangyang" in vhost "web_develop" ... ...done. ``` 查看存在的虚拟主机、队列和用户 ``` [root@slave1 ~]# rabbitmqctl list_vhosts Listing vhosts ... / web_develop ...done. # 还没有声明,所以没有队列 [root@slave1 ~]# rabbitmqctl list_queues -p web_develop Listing ...
听风的小猪 发布于 2个月前 阅读 293 点赞 1

RabbitMQ系列一:初识RabbitMQ

## 一、基本介绍 RabbitMQ是一个实现了AMQP协议(是一个异步消息传递所使用的应用层协议规范)标准的开源消息代理和队列服务器,它是企业级消息系统,自带了集群、管理、插件等特性。学习RabbitMQ需要理解下面几个概念: 1. 消息(Message): - 有效载荷(Payload),也就是要传输的数据,数据类型可以是纯文本也可以是json - 标签(Label),它包含交换机的名字和可选的主题(topic)标记等,AMQP仅仅描述了标签,而RabbitMQ决定了把这个消息发给哪个消费者。 2. 生产者(Producer):创建消息并且设置标签。 3. 消费者(Consumer): 消费者连接到代理服务器上,接收消息的有效载荷(消费者并不需要消息中的标签) ## 二、工作流程 AMQP工作流程图如下所示: ![输入图片说明](https://static.oschina.net/uploads/img/201711/15171649_9AjX.png "在这里输入图片标题") >交换机就像邮局,通过它做路由分发,交换机将收到的消息根据路由分发规则分发给绑定的队列。 >队列将消息投递给了订阅此队列的消费者或者消费者主动获取 为了保证消息被正确取出并执行,消息投递失败后会重发,AMQP包含了一个消息确认的概念:当一个消息从队列中投递给消费者后,消费者会通知消息代理(...
听风的小猪 发布于 2个月前 阅读 338 评论 2 点赞 1

spring boot + jpa + thymeleaf 增删改查示例

spring boot + jpa + thymeleaf 增删改查示例
bilzat 发布于 3个月前 阅读 825 评论 2 点赞 3

多线程池newFixedThreadPool之动态多线程池去做线程池隔离

背景      本文不是讲述线程池的基本知识,而是在做爬虫项目实际情况,碰到技术解决方案,简单的线程隔离的实践,在做爬虫时,会碰到反应慢和反应快的各种网站,如何同时用一个线程池去做爬虫请求,慢的网站会堵塞快的网站请求,这是就考虑线程隔离。线程池基于newFixedThreadPool()创建。 本文部分描述性内容来源于网络,其中示例性Java源代码经过本人亲自测试,如有不当、错误或侵权行为敬请指正。  基于下图: ps:这小伙只是提供具体实现方案,没看到具体代码,只能自己实现了!   实现功能:  DynamicAsyncTaskService.java   /** * 动态线程池 * @author wuche * @version 暂时固定写死的,后期可以改造成基于spring建实例模式,或者基于懒加载模式创建 */ public class DynamicAsyncTaskService { private static DynamicAsyncTaskService service; //最大线程数(可以放使用多个) public static int executorPoolSize =10; //最大线程数(可以放少的) public static int executorPoolSize2 =5; //线程前缀名 public static String poolName ="1"; //线程前缀名 public static String poolName2 ="2"; private ThreadPoolExecutor pool = ...
浩瀚风龙 发布于 3个月前 阅读 364 评论 2 点赞 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、允许他人完全私有化PSI的代码 常常有PSI用户告诉我,他又用PSI的代码为自己或者公司完成了什么新的功能和赚了钱。 一个开源项目被他人使用就已经创造了社会价值,能让他人赚钱更是实现了极好的客户价值。 似乎是PSI官方吃了大亏,其实不然。这里有一个商业逻辑:他人赚钱的市场,其实是PSI...
PSI 发布于 3个月前 阅读 98

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

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

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

开源地址:https://github.com/bluejoe2008/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绑架了用户信息表的设计!这个是真正致命的,因为几乎每个业务...
白乔 发布于 3个月前 阅读 1961 评论 9 点赞 6

如何通过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个月前 阅读 547 评论 1 点赞 2

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

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

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

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

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

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

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

JeeSite 4.0 内置功能模块规划

【点击图片看大图】 【点击图片看大图】   小灯泡图标:待完成功能
thinkgem 发布于 4天前 阅读 262 评论 2 点赞 1

JeeSite 4.0 说说前端的那些事

## 引言 一个不得不说的话题,经过近几年的发展,Web前端开发已经不是一个新有的岗位了,前端技术发展非常迅速,技术更新换代也很快,对于前端工程师来说是一个很大的挑战“挣扎期”。 从统计来看,中级前端的待遇是略高于中级后端的。这对于中小企业、创业公司来说组建一个专有的前端团队还是很一件很不容易的事情,无形中增加了人力成本, 话说招前端工程师简单,但能招聘到合适的前端工程师来说,是一件非常不容易的事情。 为了解决这个事情,中小企业、创业公司都在思考一个问题,做企业应用软件,如果不去组建专门的前端团队,能有一个很好的开发平台,很好的框架,让后端工程师具备一些基本的前端知识,就可以去做出很漂亮的界面就好了。 这个想法很好,但是你会说,可能吗,会一点基础前端就能做好吗?专业的事情还是有专业的人来做,前后端分离是趋势,表现逻辑分离意义很大。没有绝对完美的事情,尽管种种诱惑,唯心自问合适自己吗?我不否认,这还要针对产品、针对项目来选择解决方案。但JeeSite的中心思想是快速快发,快速交付,控制成本,对于一个想快速交付项目来说不见得是一件好事。 重口难调,也许你不赞同这些看法,作者欢迎提问,当然你也可以将JeeSite...
thinkgem 发布于 3个月前 阅读 4869 评论 34 点赞 13

【win10系统】idea 修改Git密码和账号方法

问题: 如果你办公的电脑是同事用过,在每次提交git的时候都显示是他的名字。想要修改提交git用户名密码。 但是博客idea 修改Git密码和账号方法所示方法无效。且操作系统是win10。(其他操作系统不清楚,但你可以试一下) 请继续往下看   解决办法 控制面板->搜索'凭证管理器'->凭证管理器 win10系统把git凭证信息放到了[凭证管理]中。 删除此凭证,或者编辑,填入你自己的name和密码。 ok了。(如果是删除以前的凭证,重启idea,做一次pull操作,会让你重新填用户名密码的。)     最后吐槽一句 在网上找了很多方法,都是没有把具体环境说清楚,直接上解决方法。(比如我这里说的环境信息为win10) 结果试了很多次,还是不起作用,都开始怀疑人生了。而且给某些lz发了留言也不回,我觉得这样的帖子在网上就属于浪费别人的宝贵时间。不说了。  
安小乐 发布于 1个月前 阅读 929

JeeSite 4.0 说说前端的那些事(组件补充)

## 表单组件封装 ### validcode 验证码 ```html <#form:validcode name="validCode" isRequired="true" isRemote="true" /> ``` 组件属性: ```javascript var p = { id: id!name, // 验证码输入框ID name: name!, // 验证码输入框名称(必填) isRequired: @ObjectUtils.toBoolean(isRequired!true), // 是否必填,默认必填 dataMsgRequired: thisTag.attrs['data-msg-required'], // 必填错误提示信息 isRemote: @ObjectUtils.toBoolean(isRemote!true), // 是否支持实时远程验证 dataMsgRemote: thisTag.attrs['data-msg-remote'], // 必填错误提示信息 isLazy: @ObjectUtils.toBoolean(isLazy!false), // 是否懒加载验证码图片,原noRefresh参数 }; ``` ### listselect 列表选择 ```html <#form:listselect id="userSelect" title="用户" url="${ctx}/sys/user/userSelect?userType=${role.userType}" allowClear="false" checkbox="true" itemCode="userCode" itemName="userName"/> ``` 组件属性: ```javascript var p = { // 标签参数 id: id!, // 元素ID path: path!, // 绑定form上model中属性的值 name: name!, // 隐藏域名称 value: value!, // 隐藏域值 labe...
thinkgem 发布于 1个月前 阅读 617 评论 4 点赞 2

springboot(2)-springboot中的配置文件设置之(修改访问端口和访问路径)

springboot(2)-springboot中的配置文件设置之(修改访问端口和访问路径)
dancing007 发布于 1个月前 阅读 242

构建springmvc+myabtis+dubbo分布式平台-maven构建ant-utils工具项目

上一篇我们介绍《构建dubbo分布式平台-maven构建ant-framework核心代码Base封装》,今天重点讲解的是ant-utils工具包的构建过程。 导语:ant-utils是核心工具包,提供整个架构通用工具类库 1. 创建ant-utils工具包子项目,继承ant-parent根项目,其中pom.xml配置如下: <span style="font-size: 14px;"><?xml version="1.0"?> <project     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"     xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">     <modelVersion>4.0.0</modelVersion>     <parent>         <groupId>com.sml.sz</groupId>         <artifactId>ant-project</artifactId>         <version>1.0.0</version>     </parent>     <artifactId>ant-utils</artifactId>     <name>ant-utils</name>     <url>http://maven.apache.org</url>     <description>ant核心工具包,提供整个架构通用工具类库</description>     <dependencies>         <!-- 通用工具包 -->         <depend...
方向方向 发布于 15小时前 阅读 8 点赞 1

Spring Cloud微服务分布式架构

实现模块化、微服务化、原子化、灰度发布、持续集成 commonservice zipkin Spring 日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案。 Zuul Netflix Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。 Spring Cloud Security Spring 基于spring security的安全工具包,为你的应用程序添加安全控制。 commonservice turbine Netflix 聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics情况。。 commonservice apigateway apigateway API网关封装了系统内部架构,为每个客户端提供一个定制的API。如身份验证、监控、负载均衡、缓存、管理、静态响应处理。 Ribbon Netflix   提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。 commonservice sso OAuth2.0 为Web、手机、PC提供统一登录、认证、授权入口,允许第三方系统在用户授权的前提下访问用户在服务鸿鹄云商存储的服务信息。 Turbine Netflix Turbine是聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix...
嘻嘻哈哈掉大牙 发布于 14小时前 阅读 8

spring boot整合 freemarker 详细教程

spring boot 我们都知道是一个简化配置的服务,省去繁琐的xml配置,以properties和yml还有 注解形式来替代之前的xml配置。 我们首先实现spring boot 对freemarker的支持,引入pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> 在yml中添加配置项: spring: freemarker: template-loader-path: classpath:/ftl/ classpath后面为前缀。也可以在注解配置类中实现 新建配置类:FreeMarkerConfig.java import com.jagregory.shiro.freemarker.ShiroTags; import freemarker.template.TemplateException; import freemarker.template.TemplateModelException; import java.io.IOException; import java.util.Properties; import javax.annotation.PostConstruct; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.ui.freemarker.FreeMarkerConfigurationFactory; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servl...
bweird 发布于 1周前 阅读 337 评论 1

spring+springmvc+Interceptor+jwt+redis实现sso单点登录

springmvc+Interceptor+jwt+redis实现sso单点登录
SpringCloud关注者 发布于 3个月前 阅读 48 评论 2 点赞 1

List<? extends Person> 、List<Person> 和 List<?>的区别

List<? extends Person> 表示 泛型是Person类型 或是继承自Person的类型(或是实现Person接口的类型) List<Person> 表示 泛型是Person类型 List<?> 表示 泛型是任意类型  
戥火燃芯 发布于 7小时前 阅读 4

EPMS- 让企业应用更加轻便!

EPMS是一款面向中小微企业的SASS系统,企业项目管理系统。 EPMS是在原有的OPMS系统基础上进行的二次开发。有许多企业朋友在这个基础是进行了二次开发,在群里反馈的效果都不错。当然也有许多朋友希望直接在这个上面进行企业应用,无须部署服务。所以Lock开发了功能更加丰富的企业版EPMS,希望大家喜欢。 目前主要集成14个大功能: 个人主页、项目管理、考勤管理、审批管理、工作日志、日程管理、销售管理,客户管理、知识社区、自助建站、文档管理、员工相册、简历管理、组织管理。 企业只要注册登录后,直接在平台进行各个企业级的应用操作即可;每个企业相互是封闭的,无须担心企业数据的安全。 当然这不是一款免费应用系统,每年只收取1998元,对企业开销来说,并不大! EPMS官方介绍网站(界面美观度可忽略,拿原有的OPMS进行修改的): http://epms.site.milu365.cn/ EPMS手册: http://epms.docs.milu365.cn/ EPMS试用版: http://epms.demo.milu365.cn/ 用户名:libai 密码:123456 EPMS付费版: http://epms.milu365.cn/ 若有问题请联系我(新建 EPMS群交流): QQ群:660307579 后续会根据大家的反馈,进行更加优质化的开发,丰富和完善现有的功能!...
lock-li 发布于 2个月前 阅读 90

RBAC基于角色的权限管理--设计篇1.0

# RBAC基于角色的权限管理--设计篇1.0 ## RBAC是什么 基于角色的权限管理。简单来说就是一个用户可以拥有若干个角色,一个角色可以拥有若干个权限。这样就形成了“用户-角色-权限”的模型。 ## 基础表设计 - **数据库采用MySql** - **这里表设计只采用最基础的字段** - **忽略字段长度,如采用此设计,请自行修改** - **忽略外键建设,如采用此设计,请自行建立** ### 用户表 ``` CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `create_user` datetime DEFAULT NULL COMMENT '创建人', `login_time` datetime DEFAULT NULL COMMENT '登录时间', `name` varchar(255) DEFAULT NULL COMMENT '用户名称', `password` varchar(255) DEFAULT NULL COMMENT '登录密码', `remark` varchar(255) DEFAULT NULL COMMENT '备注', `status` int(11) DEFAULT NULL COMMENT '用户状态', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `update_user` datetime DEFAULT NULL COMMENT '更新人员', `username` varchar(255) DEFAULT NULL COMMENT '登录名称', PRIMARY KEY (`id`) )...
小祝特烦恼 发布于 3周前 阅读 360 评论 7

使用MyEclipse将HTML5移动项目迁移到PhoneGap(三)

MyEclipse开年钜惠 在线购买低至75折!立即开抢>> 【MyEclipse最新版下载】 三、将图像从HTML5项目复制到PhoneGap项目 1. 在PhoneGap项目的www / res文件夹中,创建一个用于存储应用程序图像的新文件夹。 可以在res /文件夹中使用你喜欢的任何文件夹结构。 注意:不需要将图像存储在res /文件夹中;然而,使用res /文件夹可以防止iOS图像被包含在Android构建中,反之亦然。 因此,建议将图像存储在res /文件夹中。 默认应用程序图像存储在res /图标和屏幕文件夹中。 用于存储应用图像的新文件夹 2. 在HTML5应用程序项目中,打开Android和iOS的文件夹和apps/文件夹。从相应image/文件夹中复制图像到在PhoneGap项目中创建的文件夹中。 将HTML5项目的图像复制到新的项目 3. 双击PhoneGap项目中的config.xml,在编辑器中将其打开。 4. 展开Images,并更新图像参数来引用您复制到项目中的图像。 更新图像参数 5. 按下CTRL + S保存配置文件。 更多资讯敬请访问MyEclipse中文网>>...
Miss_Hello_World 发布于 12小时前 阅读 3

PSI - 为什么PSI不接受外部代码?

PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。PSI以商贸企业的核心业务:采购、销售、库存(进销存)为切入点,最终目标是行业化的ERP解决方案。 PSI官网:https://gitee.com/crm8000/PSI PSI的代码完全开源,但是在PSI开发中,并不接受外部代码,这是为什么? 1、PSI技术团队认为:外部在提交代码之前,应该先提交Issue,该Issue和PSI技术团队充分讨论后,再开展后续的开发工作。 当然了,事后补一个Issue也可以,所以这里并不是问题的关键,是一个良好的习惯或者说是一个最佳实践。 2、PSI的开发新功能的流程是: 1)编写数据库文档(Excel格式) -> 2)编写数据库SQL -> 3)编写《一件升级数据库》-> 4)新功能开发 -> 5)帮助手册编写 上述环节中缺失了:详细设计和单元测试。详细设计通常是事后过一段时间集中弥补。单元测试是现在的缺失,但是因为PSI的广大用户替PSI做了很多黑盒测试工作,所以这块的矛盾不是很突出,但是终究是个大问题,PSI技术团队也正在计划弥补中。 在明白了PSI的开发流程后,就能明白,只是外部提交代码的话,那就至少有4个环节的工作没有做。结果就是导致外部代码不能合并进去。 3、如果外部提交代码遵守PSI的工作流程...
PSI 发布于 2个月前 阅读 167

spring boot / cloud (一) 使用filter防止XSS

spring boot / cloud (一) 使用filter防止XSS ##一.前言 ###XSS(跨站脚本攻击) >跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。 ##二.思路 ###基于filter拦截,将特殊字符替换为html转意字符 (如: "<" 转意为 "<") , 需要拦截的点如下: 请求头 requestHeader 请求体 requestBody 请求参数 requestParameter ##三.实现 ###1.创建XssHttpServletRequestWrapper类 在获取请求头,请求参数的这些地方,将目标值使用HtmlUtils.htmlEscape方法转意为html字符,而避免恶意代码参与到后续的流程中 /** * XssHttpServletRequestWrapper.java * Created at 2016-09-19 * Created by wangkang * Copyright (C) 2016 egridcloud.com, All rights reserved. */ package com.egridcloud.udf.core.xss; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import org.springframework.web.util.HtmlUti...
jianchileiliang 发布于 2个月前 阅读 422 评论 5 点赞 1

机场贵宾厅总体规划

MoksMo 发布于 6天前 阅读 22

Redis 笔记系列(七)——“开发不是核心、配置才是王道”

断了一年的坑,今年年底了给自己个小目标,年底前把这个系列的文章填完。
HappyBKs 发布于 2个月前 阅读 947 评论 3 点赞 4

企业开发规范

小蜜蜂
求行者 发布于 2个月前 阅读 2

java 生成PDF (html 转PDF)

效果图: 上图是 html 效果图 生成PDF效果图如下:   maven准备的jar包: 注意版本不要搞错!!搞错了是运行不了。 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.9</version> </dependency> <dependency> <groupId>com.itextpdf.tool</groupId> <artifactId>xmlworker</artifactId> <version>5.5.9</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> <dependency> <groupId>org.xhtmlrenderer</groupId> <artifactId>flying-saucer-pdf-itext5</artifactId> <version>9.0.3</version> </dependency> java类: package com.test; import com.itextpdf.text.pdf.BaseFont; import org.xhtmlrenderer...
一个橙子HHH 发布于 1个月前 阅读 63

springmvc+myabtis+dubbo分布式平台-maven代码结构

上一篇我们介绍《构建dubbo分布式平台-maven模块规划》,我们接着上一篇文章,针对于dubbo分布式项目进行maven构建,因为我在本地的eclipse中进行了项目构建,代码结构图如下: 代码结构解释: 欢迎大家跟我一起学习《构建dubbo分布式平台》,希望大家持续关注后面的文章!
方向方向 发布于 6天前 阅读 7 评论 3 点赞 2

JeeSite 4.0 内置功能模块规划

【点击图片看大图】 【点击图片看大图】   小灯泡图标:待完成功能
thinkgem 发布于 4天前 阅读 262 评论 2 点赞 1

JeeSite 4.0 说说前端的那些事

## 引言 一个不得不说的话题,经过近几年的发展,Web前端开发已经不是一个新有的岗位了,前端技术发展非常迅速,技术更新换代也很快,对于前端工程师来说是一个很大的挑战“挣扎期”。 从统计来看,中级前端的待遇是略高于中级后端的。这对于中小企业、创业公司来说组建一个专有的前端团队还是很一件很不容易的事情,无形中增加了人力成本, 话说招前端工程师简单,但能招聘到合适的前端工程师来说,是一件非常不容易的事情。 为了解决这个事情,中小企业、创业公司都在思考一个问题,做企业应用软件,如果不去组建专门的前端团队,能有一个很好的开发平台,很好的框架,让后端工程师具备一些基本的前端知识,就可以去做出很漂亮的界面就好了。 这个想法很好,但是你会说,可能吗,会一点基础前端就能做好吗?专业的事情还是有专业的人来做,前后端分离是趋势,表现逻辑分离意义很大。没有绝对完美的事情,尽管种种诱惑,唯心自问合适自己吗?我不否认,这还要针对产品、针对项目来选择解决方案。但JeeSite的中心思想是快速快发,快速交付,控制成本,对于一个想快速交付项目来说不见得是一件好事。 重口难调,也许你不赞同这些看法,作者欢迎提问,当然你也可以将JeeSite...
thinkgem 发布于 3个月前 阅读 4869 评论 34 点赞 13

【win10系统】idea 修改Git密码和账号方法

问题: 如果你办公的电脑是同事用过,在每次提交git的时候都显示是他的名字。想要修改提交git用户名密码。 但是博客idea 修改Git密码和账号方法所示方法无效。且操作系统是win10。(其他操作系统不清楚,但你可以试一下) 请继续往下看   解决办法 控制面板->搜索'凭证管理器'->凭证管理器 win10系统把git凭证信息放到了[凭证管理]中。 删除此凭证,或者编辑,填入你自己的name和密码。 ok了。(如果是删除以前的凭证,重启idea,做一次pull操作,会让你重新填用户名密码的。)     最后吐槽一句 在网上找了很多方法,都是没有把具体环境说清楚,直接上解决方法。(比如我这里说的环境信息为win10) 结果试了很多次,还是不起作用,都开始怀疑人生了。而且给某些lz发了留言也不回,我觉得这样的帖子在网上就属于浪费别人的宝贵时间。不说了。  
安小乐 发布于 1个月前 阅读 929

2018年什么编程语言最值得学习

编程现在已经变成最受欢迎的职业之一,不像以前,编制软件只局限于少数几种编程语言。现在,我们有很多种编程语言可以选择。随着跨平台支持的增多,大多数编程语言都可以被用于多种任务。如果,你还没有学会编程,让我们看一下在 2018 年你可能会学习的编程语言有哪些。   Python 毫无疑问, Python 现在已经统治着编程市场。它发起于 1991 年,自从 YouTube 开始使用它之后,Python 已经真正的成为著名编程语言。Python 可以被用于各类领域,比如,Web 开发、游戏开发、脚本、科学研究、以及大多数你能想到的领域。它是跨平台的,并且运行在一个解释程序中。Python 的语法非常简单,因为它使用缩进代替花括号来对代码块进行分组,因此,代码非常清晰。 示例: print("Hello world!") Kotlin 虽然 Java 自它诞生以来从没有被超越过,但是,至少在 Android 编程方面,Kotlin 在正打破这种局面。Kotlin 是较新的一个编程语言,它被 Google 官方支持用于 Android 应用编程。它是 Java 的替代者,并且可以与 java 代码无缝衔接。代码大幅减少并且更加清晰。因此,在 2018 年,Kotlin 将是最值的去学习的编程语言。 示例 class Greeter(val name: String) { fun greet() { ...
linux-tao 发布于 2天前 阅读 15

springboot(2)-springboot中的配置文件设置之(修改访问端口和访问路径)

springboot(2)-springboot中的配置文件设置之(修改访问端口和访问路径)
dancing007 发布于 1个月前 阅读 242

JeeSite 4.0 说说前端的那些事(组件补充)

## 表单组件封装 ### validcode 验证码 ```html <#form:validcode name="validCode" isRequired="true" isRemote="true" /> ``` 组件属性: ```javascript var p = { id: id!name, // 验证码输入框ID name: name!, // 验证码输入框名称(必填) isRequired: @ObjectUtils.toBoolean(isRequired!true), // 是否必填,默认必填 dataMsgRequired: thisTag.attrs['data-msg-required'], // 必填错误提示信息 isRemote: @ObjectUtils.toBoolean(isRemote!true), // 是否支持实时远程验证 dataMsgRemote: thisTag.attrs['data-msg-remote'], // 必填错误提示信息 isLazy: @ObjectUtils.toBoolean(isLazy!false), // 是否懒加载验证码图片,原noRefresh参数 }; ``` ### listselect 列表选择 ```html <#form:listselect id="userSelect" title="用户" url="${ctx}/sys/user/userSelect?userType=${role.userType}" allowClear="false" checkbox="true" itemCode="userCode" itemName="userName"/> ``` 组件属性: ```javascript var p = { // 标签参数 id: id!, // 元素ID path: path!, // 绑定form上model中属性的值 name: name!, // 隐藏域名称 value: value!, // 隐藏域值 labe...
thinkgem 发布于 1个月前 阅读 617 评论 4 点赞 2

PSI - 对企业级应用UI框架的一点点理解

PSI是一款基于SaaS模式(Software as a Service软件即服务)的企业管理软件。PSI以商贸企业的核心业务:采购、销售、库存(进销存)为切入点,最终目标是行业化的ERP解决方案。 PSI官网:https://gitee.com/crm8000/PSI 写这篇博客的原因是看到了《ExtJS十年浮沉录》这篇文章。 企业级应用,这个词也没有被业界准确地定义过,大体上是指应用是给企业用户的,to B的。 https://ant.design/index-cn 阿里的这个框架就是面向企业级应用的。 今天的话题还是先回到ExtJS上来,ExtJS是PSI所采用的UI框架。PSI采用ExtJS作为UI框架的原因有点点偶然和小小的历史原因。 在开发PSI之前的好多年前,我在公司内部做项目的时候也是大量采用ExtJS来开发。那个时候ExtJS也是极其流行,论坛里面也是言必称ExtJS。所以在开发PSI的时候,顺理成章地使用了ExtJS 4.2 GPL这个版本。 1、ExtJS技术有没有走下坡路?距离末路还有多久? 我也认为:ExtJS技术在走向末路! 毕竟ExtJS背后的公司是小公司,和财大气粗的巨头公司们比较起来,完全不是一个量级上的。 几乎可以断言:新项目再采用ExtJS开发的可能性已经是相当相当低了。新项目我就强烈推荐采用阿里的Ant Design。   2、PSI为什么还要在一个...
PSI 发布于 1个月前 阅读 99

spring boot整合 freemarker 详细教程

spring boot 我们都知道是一个简化配置的服务,省去繁琐的xml配置,以properties和yml还有 注解形式来替代之前的xml配置。 我们首先实现spring boot 对freemarker的支持,引入pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> 在yml中添加配置项: spring: freemarker: template-loader-path: classpath:/ftl/ classpath后面为前缀。也可以在注解配置类中实现 新建配置类:FreeMarkerConfig.java import com.jagregory.shiro.freemarker.ShiroTags; import freemarker.template.TemplateException; import freemarker.template.TemplateModelException; import java.io.IOException; import java.util.Properties; import javax.annotation.PostConstruct; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.ui.freemarker.FreeMarkerConfigurationFactory; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servl...
bweird 发布于 1周前 阅读 337 评论 1

wekan 看板系统(仿trello)0.49 虚拟机文件(virtualbox vmware images)

wekan 看板系统(仿trello)0.49 虚拟机文件(virtualbox vmware images) https://drive.google.com/file/d/0B_ZOwu5Ug5UgS0VoZF9yNWJlcDQ/edit 0.49 virtualbox 虚拟文件下载,开箱即用。 我下载并安装试用,解决了存在的问题。ova支持vmware,百度云下载地址http://pan.baidu.com/s/1jHYeiMi
长沙大东家 发布于 3个月前 阅读 25

Redis 笔记系列(七)——“开发不是核心、配置才是王道”

断了一年的坑,今年年底了给自己个小目标,年底前把这个系列的文章填完。
HappyBKs 发布于 2个月前 阅读 947 评论 3 点赞 4

机场贵宾厅总体规划

MoksMo 发布于 6天前 阅读 22

springmvc+myabtis+dubbo分布式平台-maven代码结构

上一篇我们介绍《构建dubbo分布式平台-maven模块规划》,我们接着上一篇文章,针对于dubbo分布式项目进行maven构建,因为我在本地的eclipse中进行了项目构建,代码结构图如下: 代码结构解释: 欢迎大家跟我一起学习《构建dubbo分布式平台》,希望大家持续关注后面的文章!
方向方向 发布于 6天前 阅读 7 评论 3 点赞 2

OTRS 安装方法

OTRS详细的安装文档,如下文链接: 安装包下载:http://www.dian-tong.com/downloads/ 安装文档下载:http://www.dian-tong.com/downloads/Installation%20Manual/ 百度网盘下载:https://pan.baidu.com/s/1bVafLG#list/path=%2F   安装中如遇到问题,请添加QQ群咨询,群号:190368874
叶子麦兜 发布于 1天前 阅读 3

社区给了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、允许他人完全私有化PSI的代码 常常有PSI用户告诉我,他又用PSI的代码为自己或者公司完成了什么新的功能和赚了钱。 一个开源项目被他人使用就已经创造了社会价值,能让他人赚钱更是实现了极好的客户价值。 似乎是PSI官方吃了大亏,其实不然。这里有一个商业逻辑:他人赚钱的市场,其实是PSI...
PSI 发布于 3个月前 阅读 98

RBAC基于角色的权限管理--设计篇1.0

# RBAC基于角色的权限管理--设计篇1.0 ## RBAC是什么 基于角色的权限管理。简单来说就是一个用户可以拥有若干个角色,一个角色可以拥有若干个权限。这样就形成了“用户-角色-权限”的模型。 ## 基础表设计 - **数据库采用MySql** - **这里表设计只采用最基础的字段** - **忽略字段长度,如采用此设计,请自行修改** - **忽略外键建设,如采用此设计,请自行建立** ### 用户表 ``` CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `create_user` datetime DEFAULT NULL COMMENT '创建人', `login_time` datetime DEFAULT NULL COMMENT '登录时间', `name` varchar(255) DEFAULT NULL COMMENT '用户名称', `password` varchar(255) DEFAULT NULL COMMENT '登录密码', `remark` varchar(255) DEFAULT NULL COMMENT '备注', `status` int(11) DEFAULT NULL COMMENT '用户状态', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `update_user` datetime DEFAULT NULL COMMENT '更新人员', `username` varchar(255) DEFAULT NULL COMMENT '登录名称', PRIMARY KEY (`id`) )...
小祝特烦恼 发布于 3周前 阅读 360 评论 7

SpringBoot中使用jsp作为视图层

spring的官方默认推荐大家使用thymeleaf作为视图层的首选方案,但是作为老牌的javaweb视图技术,jsp也还算有这他的一些优势。
夏悸 发布于 2个月前 阅读 31

spring boot + jpa + thymeleaf 增删改查示例

spring boot + jpa + thymeleaf 增删改查示例
bilzat 发布于 3个月前 阅读 825 评论 2 点赞 3

DevExpress v17.2新版亮点—ASP.NET篇(二)

用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpress ASP.NET v17.2 的GridView Control、Chart Control、Editors、HTML Editor等新功能,快来下载试用新版本! File Manager & File Upload 高级筛选 在这个版本中,我们扩展了DevExpress ASP.NET文件管理器的过滤功能。 您现在可以允许最终用户过滤当前文件夹和所有子文件夹中的文件管理器项目。 此外,新的服务器端API允许您为文件视图实现自定义过滤器(当您需要实现过滤器来通过扩展、修改时间等定位文件时)。 自适应性 DevExpress ASP.NET File Manager附带一个新的自适应模式。启用后,文件管理器元素将根据浏览器大小自动重新排列。 HTML Editor 可调整大小的图像和表格 DevExpress ASP.NET HTML Editor允许最终用户调整图像和表格的大小。 响应式工具栏 在所有工具栏模式(菜单,功能区,单行功能区)中,DevExpress ASP.NET HTML Editor可以根据视口宽度自动调整其工具栏内容。 Navigation and Layout 菜单 - 自适应 改进了对自适应/响应式布局的支持。 Pivot Grid Control 性能增强 我们改进了DevExpress Pivot Grid Control for WebForms和MVC的内...
Miss_Hello_World 发布于 2天前 阅读 3

会议相关

1  会议内容精确哪些要谈,哪些不谈论 2  精确的内容需要覆盖全面 3  会议内容讲解时否是每个人都理解的到的  
focus_逸 发布于 2个月前 阅读 2

读阿里感悟收获

阿里感悟学习 1. 选择Offer 2. 如何成为一名优秀的新人 3. 实习生做好review 4. 计划和规划能力 5. 判断一个人是否聪明 6. 如何学习一项新技术? 7. 如何有效地解决问题? 8. 如何有效沟通? 9. 技术人员职业规划 10. 看待失败并从中吸取教训 11.自组织管理
求行者 发布于 2个月前 阅读 6

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

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

JEECG 3.7.2版本发布,企业级JAVA快速开发平台

JEECG 3.7.2版本发布, JEECG是一款基于代码生成器的J2EE快速开发平台,开源界“小普元”超越传统商业企业级开发平台。引领新的开发模式(Online Coding模式(自定义表单)->代码生成器模式->手工MERGE智能开发), 可以帮助解决Java项目60%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失灵活性。她可以用于所有的Web应用程序,如:MIS,CRM,OA,ERP,CMS,网站后台,微信管家,等等,当然,您也可以对她进行深度定制,以做出更强系统。 当前版本:v_3.7.2 | 2018-01-25
Jeecg 发布于 5小时前 阅读 1

List<? extends Person> 、List<Person> 和 List<?>的区别

List<? extends Person> 表示 泛型是Person类型 或是继承自Person的类型(或是实现Person接口的类型) List<Person> 表示 泛型是Person类型 List<?> 表示 泛型是任意类型  
戥火燃芯 发布于 7小时前 阅读 4

使用MyEclipse将HTML5移动项目迁移到PhoneGap(三)

MyEclipse开年钜惠 在线购买低至75折!立即开抢>> 【MyEclipse最新版下载】 三、将图像从HTML5项目复制到PhoneGap项目 1. 在PhoneGap项目的www / res文件夹中,创建一个用于存储应用程序图像的新文件夹。 可以在res /文件夹中使用你喜欢的任何文件夹结构。 注意:不需要将图像存储在res /文件夹中;然而,使用res /文件夹可以防止iOS图像被包含在Android构建中,反之亦然。 因此,建议将图像存储在res /文件夹中。 默认应用程序图像存储在res /图标和屏幕文件夹中。 用于存储应用图像的新文件夹 2. 在HTML5应用程序项目中,打开Android和iOS的文件夹和apps/文件夹。从相应image/文件夹中复制图像到在PhoneGap项目中创建的文件夹中。 将HTML5项目的图像复制到新的项目 3. 双击PhoneGap项目中的config.xml,在编辑器中将其打开。 4. 展开Images,并更新图像参数来引用您复制到项目中的图像。 更新图像参数 5. 按下CTRL + S保存配置文件。 更多资讯敬请访问MyEclipse中文网>>...
Miss_Hello_World 发布于 12小时前 阅读 3

Spring Cloud微服务分布式架构

实现模块化、微服务化、原子化、灰度发布、持续集成 commonservice zipkin Spring 日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案。 Zuul Netflix Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。 Spring Cloud Security Spring 基于spring security的安全工具包,为你的应用程序添加安全控制。 commonservice turbine Netflix 聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics情况。。 commonservice apigateway apigateway API网关封装了系统内部架构,为每个客户端提供一个定制的API。如身份验证、监控、负载均衡、缓存、管理、静态响应处理。 Ribbon Netflix   提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。 commonservice sso OAuth2.0 为Web、手机、PC提供统一登录、认证、授权入口,允许第三方系统在用户授权的前提下访问用户在服务鸿鹄云商存储的服务信息。 Turbine Netflix Turbine是聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix...
嘻嘻哈哈掉大牙 发布于 14小时前 阅读 8

构建springmvc+myabtis+dubbo分布式平台-maven构建ant-utils工具项目

上一篇我们介绍《构建dubbo分布式平台-maven构建ant-framework核心代码Base封装》,今天重点讲解的是ant-utils工具包的构建过程。 导语:ant-utils是核心工具包,提供整个架构通用工具类库 1. 创建ant-utils工具包子项目,继承ant-parent根项目,其中pom.xml配置如下: <span style="font-size: 14px;"><?xml version="1.0"?> <project     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"     xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">     <modelVersion>4.0.0</modelVersion>     <parent>         <groupId>com.sml.sz</groupId>         <artifactId>ant-project</artifactId>         <version>1.0.0</version>     </parent>     <artifactId>ant-utils</artifactId>     <name>ant-utils</name>     <url>http://maven.apache.org</url>     <description>ant核心工具包,提供整个架构通用工具类库</description>     <dependencies>         <!-- 通用工具包 -->         <depend...
方向方向 发布于 15小时前 阅读 8 点赞 1

OTRS 安装方法

OTRS详细的安装文档,如下文链接: 安装包下载:http://www.dian-tong.com/downloads/ 安装文档下载:http://www.dian-tong.com/downloads/Installation%20Manual/ 百度网盘下载:https://pan.baidu.com/s/1bVafLG#list/path=%2F   安装中如遇到问题,请添加QQ群咨询,群号:190368874
叶子麦兜 发布于 1天前 阅读 3

OTRS 功能介绍

OTRS 是以全球业界公认的IT服务管理标准 ITIL V3[2]  为基础,开发的一整套开源 IT 服务管理解决方案。 OTRS 以工单和配置项(资产)为中心,通过对工单属性,权限和流转的配置,实现事件管理、问题管理、服务请求管理、变更管理,发布管理,CMDB,知识管理,服务和服务水平协议(SLA),及客户特定业务流程。 功能介绍 工单管理 OTRS系统可支持多渠道提交工单:邮件,微信,网页,电话,监控系统。自动可根据预定规则进行工单的自动过滤,自动分类,自动分派。 1. 工单记录与处理 工单中记录的字段可以根据业务需要进行自定义扩展,对工单的每个操作都可以通过配置进行自定义。通过权限控制,可以实现工单按预定的业务流程进行流转。 2. 服务与SLA OTRS支持服务与SLA管理,对不同的服务和SLA设定响应时间,更新时间,以及解决时间的时长限制。当工单处理超过预定时限时,会根据设定的规则进行工单升级。 3. 工单通知 OTRS可以非常灵活的自定义工单通知的触发条件,所有工单的更新事件都可以触发工单通知,每个工单通知的收件人,内容以及形式可以根据业务流程的要求进行自定义 。 4. 与知识库和CMDB的集成 OTRS是一个集成的IT服务管理工具,在工单创建,处理的各种操...
叶子麦兜 发布于 1天前

DevExpress v17.2新版亮点—ASP.NET篇(二)

用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpress ASP.NET v17.2 的GridView Control、Chart Control、Editors、HTML Editor等新功能,快来下载试用新版本! File Manager & File Upload 高级筛选 在这个版本中,我们扩展了DevExpress ASP.NET文件管理器的过滤功能。 您现在可以允许最终用户过滤当前文件夹和所有子文件夹中的文件管理器项目。 此外,新的服务器端API允许您为文件视图实现自定义过滤器(当您需要实现过滤器来通过扩展、修改时间等定位文件时)。 自适应性 DevExpress ASP.NET File Manager附带一个新的自适应模式。启用后,文件管理器元素将根据浏览器大小自动重新排列。 HTML Editor 可调整大小的图像和表格 DevExpress ASP.NET HTML Editor允许最终用户调整图像和表格的大小。 响应式工具栏 在所有工具栏模式(菜单,功能区,单行功能区)中,DevExpress ASP.NET HTML Editor可以根据视口宽度自动调整其工具栏内容。 Navigation and Layout 菜单 - 自适应 改进了对自适应/响应式布局的支持。 Pivot Grid Control 性能增强 我们改进了DevExpress Pivot Grid Control for WebForms和MVC的内...
Miss_Hello_World 发布于 2天前 阅读 3

Activiti6 调研学习

Activiti is battle-tested Business Process Management.  Organizations across the world depend on the open source platform in a huge range of demanding situations.  It supports open standards with BPMN and DMN so you can create processes that suit you. 官网 https://www.activiti.org/ github https://github.com/Activiti/Activiti/releases 下载 https://github.com/Activiti/Activiti/releases 官网教程 https://www.activiti.org/quick-start https://www.activiti.org/userguide/ maven依赖 <dependency>     <groupId>org.activiti</groupId>     <artifactId>activiti-engine</artifactId>     <version>$actVer</version> </dependency> <dependency>     <groupId>org.slf4j</groupId>     <artifactId>slf4j-api</artifactId>     <version>1.7.21</version> </dependency> <dependency>     <groupId>org.slf4j</groupId>     <artifactId>slf4j-log4j12</artifactId>     <version>1.7.21</version> </dependency> <dependency>     <groupId>com.h2database</groupId>     <artifactId>h2</artifactId>     <ver...
戥火燃芯 发布于 2天前 阅读 1

2018年什么编程语言最值得学习

编程现在已经变成最受欢迎的职业之一,不像以前,编制软件只局限于少数几种编程语言。现在,我们有很多种编程语言可以选择。随着跨平台支持的增多,大多数编程语言都可以被用于多种任务。如果,你还没有学会编程,让我们看一下在 2018 年你可能会学习的编程语言有哪些。   Python 毫无疑问, Python 现在已经统治着编程市场。它发起于 1991 年,自从 YouTube 开始使用它之后,Python 已经真正的成为著名编程语言。Python 可以被用于各类领域,比如,Web 开发、游戏开发、脚本、科学研究、以及大多数你能想到的领域。它是跨平台的,并且运行在一个解释程序中。Python 的语法非常简单,因为它使用缩进代替花括号来对代码块进行分组,因此,代码非常清晰。 示例: print("Hello world!") Kotlin 虽然 Java 自它诞生以来从没有被超越过,但是,至少在 Android 编程方面,Kotlin 在正打破这种局面。Kotlin 是较新的一个编程语言,它被 Google 官方支持用于 Android 应用编程。它是 Java 的替代者,并且可以与 java 代码无缝衔接。代码大幅减少并且更加清晰。因此,在 2018 年,Kotlin 将是最值的去学习的编程语言。 示例 class Greeter(val name: String) { fun greet() { ...
linux-tao 发布于 2天前 阅读 15

Ubuntu 开发环境搭建

ubuntu 安装jdk 的两种方式: 1:通过ppa(源) 方式安装. 2:通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级 使用ppa/源方式安装 1.添加ppa sudo add-apt-repository ppa:webupd8team/java sudo apt-get update 2.安装oracle-java-installer  jdk7 sudo apt-get install oracle-java7-installer jdk8 sudo apt-get install oracle-java8-installer 安装器会提示你同意 oracle 的服务条款,选择 ok 然后选择yes 即可 如果你懒,不想自己手动点击.也可以加入下面的这条命令,默认同意条款: JDK7 默认选择条款 echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections JDK8 默认选择条款 echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections  接下会是等待(依个人网速定) 如果你因为防火墙或者其他原因,导致installer 下载速度很慢,可以中断操作.然后下载好相应jdk的tar.gz 包,放在:    /var/cache/oracle-jdk7-installer             (jdk7)     /var/cache/oracle-jdk8-installer   ...
Dylan1009 发布于 3天前 阅读 6 评论 1

(Spring Cloud微服务实战-书中之坑)spring cloud zuul统一处理业务异常,并且需要响应状态为200

一、需求,项目中所有的业务异常,统一在网关系统处理,并且响应状态为200 二、根据网上或者书中处理如下: 三、结果:确实是自定义的异常,但是,返回的响应状态为500 四、处理方式:在SendErrorFilter的前面,对项目中自定义的异常(BasisException)进行判断,如果是项目中的业务异常,则手动设置响应状态为200,如下图: 五、完美over
maolujun 发布于 3天前 阅读 3

AJAXJS Web Framework 简介

一个全栈的 Web 框架 官网:https://framework.ajaxjs.com/framework/ AJAXJS Web 是一款全栈的开源 Web 框架,不仅是服务端框架,还整合了前端库。它使用 HTML5+Java 方案,继承了 Java 平台的高效、安全、稳定、跨平台等诸多优势,但却摒弃了传统企业级架构所带来的庞大和臃肿,强调轻量级,非常适合互联网的快速应用。 简单易学易用,遵循“够用就好、就地取材、适合教学”,优先考虑 JDK 原生 API,基本没依赖其他重型三方库。 标配有 IOC/AOP/MVC/ORM/RESTful,泛型 Controller/Service/DAO/Model 分层。 参照 Spring MVC 风格的 Web 框架,功能简单但具备了 MVC 的核心功能,很适合想了解 MVC 的学习者。 提供类似 MyBatis 注解的 SQL 服务,返回数据支持 Java Bean 或更简单的 Map,自动分页,查询条件和后端验证。 轻量级 UI 组件库,涵盖了目前互联网上各类常见的组件,经实践项目积累沉淀而成;移动端提供高性能的列表控件,高仿真原生效果。 得益于现代浏览器,前端没有使用 jQuery 基础库,而是原生 API 的调用,更高效快速。 复杂 CSS 采用 LESS.js 可复用封装。 尽量多提供源码注释和文档,包括单元测试。 AJAXJS Web 建基于纯 Java 库 AJAXJS Base。 还有 ...
sp42 发布于 3天前 阅读 3

Spring Cloud Edgware新特性

Spring Cloud是当前炙手可热的微服务开发框架。它的功能强大,组件丰富,设计优雅。目前Spring Cloud还在不断发展之中。
SunHacker 发布于 4天前 阅读 6

Micropython入门四位数码管显示原理

       原理非常简单,控制各个针脚的高低电平来显示数字,这里我用的是共阳的数码管。不过有一个问题,我第一次显示的时候代码输入数字是9.876不过数码管显示9.875,刚开始我以为代码错了,仔细检查了几遍没有问题。然后用putty跑了一下,打印出来的是9875999  。后来又试了几组数字有的正常显示有的最末尾会减一。求助各位大佬到底为什么? 所需原器件 1   TPYBoard v102 一块 2   四位数码管一个 3   杜邦线若干 4   面包板一块(为了接线方便,可不用) 接线图 四位数码管引脚图   开发板与四位数码管针脚对应:    数码管引脚    a b c d e f g dp 1 2 3 4 TPYBoard开发板 X1 X2 X3 X4 X5 X6 X7 X8 Y9 Y10 Y11 Y12 fritzing接线图   程序源代码:         import pyb from pyb import Pin #数码管a~g dp对应的开发板引脚 d_Pins=[Pin(i,Pin.OUT_PP) for i in ['X1','X2','X3','X4','X5','X6','X7','X8']] #数码管位段1 2 3 4对应的引脚 w_Pins=[Pin(i,Pin.OUT_PP) for i in ['Y9','Y10','Y11','Y12']] number={ '0': [0,0,0,0,0,0,1,1],#0 '1': [1,1,1,1,0,0,1,1],#1 '2': [0,0,1,0,0,1,0,1],#2 '3': [0,0,0,0,1,1,0,1],#3 '4': [1,0,0,1,...
bodasisiter 发布于 4天前 阅读 3

JeeSite 4.0 内置功能模块规划

【点击图片看大图】 【点击图片看大图】   小灯泡图标:待完成功能
thinkgem 发布于 4天前 阅读 262 评论 2 点赞 1

Sun也会坑人,使用pdfrenderer生成图片之爬坑

        功能目的:要开发一个将PDF文件每一页切分成一张图片的功能。         因为项目之前是使用的 pdfrenderer,客户上传了一个PDF文件之后,表示切分的有问题,全是空白图片。然后查后台,似乎是jar包内包的错,然后换了个jar,在 mvnrepository.com 上搜的,如下网址下载的:         https://artifacts.alfresco.com/nexus/content/repositories/public/com/sun/pdfview/pdfrenderer/0.9.1-patched/   新的jar换上后,依旧报错,还是jar 包内部的错误: java.nio.BufferUnderflowException at java.nio.Buffer.nextGetIndex(Unknown Source) at java.nio.HeapByteBuffer.get(Unknown Source) at com.sun.pdfview.PDFFile.readName(PDFFile.java:906) at com.sun.pdfview.PDFFile.readObject(PDFFile.java:448) at com.sun.pdfview.PDFFile.readObject(PDFFile.java:405) at com.sun.pdfview.PDFFile.dereference(PDFFile.java:315) at com.sun.pdfview.PDFObject.dereference(PDFObject.java:698) at com.sun.pdfview.PDFObject.getType(PDFObject.java:207) at com.sun.pdfview.colorspace.PDFColorSpace.getColorSpace(PDFColo...
sxgkwei 发布于 4天前 阅读 7 点赞 1

MyEclipse移动开发教程:迁移HTML5移动项目到PhoneGap(二)

MyEclipse开年钜惠 在线购买低至75折!立即开抢>> 【MyEclipse最新版下载】 二、将文件从HTML5项目复制到PhoneGap项目中 1. 在HTML5 app项目的www/文件夹的资源中,单击右键,然后选择Copy。 从HTML5项目复制www资源 2. 将资源粘贴到新PhoneGap项目的www /文件夹中,覆盖现有资源。 将资源粘贴到新项目中 3. 双击PhoneGap项目中的index.html文件,在编辑器中将其打开。 4. 更改以下脚本引用:   更改为:   5. 删除以下脚本参数:   更新脚本参数 6. 按下CTRL + S保存文件。 现在的参数变化支持最新以及更高版本的Cordova。 7. 删除www /文件夹中的rte /文件夹。 更多资讯敬请访问MyEclipse中文网>>
Miss_Hello_World 发布于 4天前 阅读 4

助力APP尽情“撒币”!阿里云正式上线移动直播问答解决方案

2018年伊始,互联网圈就刮起了一阵“大佬狂撒币,网友喜答题”的热潮。以映客芝士超人等为代表的直播问答平台,通过答题分奖金的互动模式,迅速引爆网络热点。随后,多个直播和视频平台也上线了直播问答游戏。一时之间,这种参与门槛低、奖金池高、流量裂变传播的互动模式,成为了全新的获客、促活、盈利的重要手段,显然要比烧钱推广来得更有效。 凭借此模式,直播问答APP开始占据APP STORE前排位置,并纷纷获得巨头的广告赞助,成功流量变现。毫无疑问,直播问答已经是新风口! 乘风起飞 是什么拖住了开发者们的后腿 直播问答模式是用户在指定时间内登陆直播间,在主持人引导下进行线上答题,答对12道题目即可冲顶奖金。规则看似简单,但其背后的技术实现并不容易。 从系统角度看,移动直播问答有如下四个典型特点: 第一, 直播互动时间短,一次直播活动时间在30分钟左右 第二, 百万并发,单直播房间百万级别并发用户十分常见 第三, 高频直播,一天 6 次左右高频直播 第四, 推题同步,全网用户推题和音视频画面同步 这些特点决定了整个直播答题系统对于稳定性、性能和安全都有极高的要求,如果想要实现,需要面临如下几个场景和问题: 首先,对于高并发、实时性和稳定...
阿里云云栖社区 发布于 5天前 阅读 4

maven导入jar异常---个人总结

1.检查本地是否安装maven 是否配置正确 2.本地IDE配置maven是否正确 3.检查本地下载位置是否包含此jar包 若不存在:指定一个maven仓库重新下载 若存在:删除重新下载 如果还是不行,检查中央仓库是否含有这个版本 考虑换一个版本
戥火燃芯 发布于 5天前 阅读 3

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

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

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

开源地址:https://github.com/bluejoe2008/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绑架了用户信息表的设计!这个是真正致命的,因为几乎每个业务...
白乔 发布于 3个月前 阅读 1961 评论 9 点赞 6

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

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

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

让Hibernate识别数据库特有字段

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

远程过程调用(RPC)详解

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

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

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

Spring 4.3 的新功能和增强

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

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

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

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

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

Elasticsearch 2.2.0 分词篇:中文分词

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

Elasticsearch 2.20 高亮显示

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

Elasticsearch 2.20入门篇:聚合操作

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

运维中被低估的日志

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

关于PSI开源协议的一些说明

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

我如何在OSC上做开源项目

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

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

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

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

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