一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Java

开源项目【zheng】环境搭建指南

一、项目简介 基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供整套公共微服务服务模块:内容管理、支付中心、用户管理(包括第三方)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位J2EE企业级开发解决方案。目前已经累计获得10000+的Star,受到了广大程序员的密切关注! 由于该项目框架采用的技术点比较多,新手入门会有一定的困难,所以笔者整理资料写了本篇环境搭建指南,希望能够帮助大家把环境快速的搭建起来。 oschina地址:https://gitee.com/shuzheng/zheng github地址:https://github.com/shuzheng/zheng   二、工具下载 JDK官方下载地址 | 老版本JDK下载地址 TortoiseGit: 下载地址 | 安装与配置教程 Git客户端官网下载太慢,最新版本: Git-2.14.1-64-bit 客户端下载 MySQL数据库: 下载与安装5.7教程 |  百度经验 (电脑可以装多个MySQL,端口不一样即可) MySQL客户端: Navicat for MySQL下载、安装与破解  Maven官方下载地址  下载最新的apache-maven-3.5.0-bin.zip解压到本地目录,打开/conf/settings.xml进行编辑,修改本地的仓库地址,默认的Maven镜像下载速度十分感人,强烈建议使用阿里云的,可以享受飞一般的速度。精简版的配置如下,以供参考:

Redis官方下载地址 : Linux版本 | Windows教程 | 安装教程2 最新版本Redis3.2配置文件redis.conf详细说明 Redis客户端Redis Desktop Manager: 官网下载  |  PC6快速下载 ActiveMQ: 官方最新版下载地址 | ActiveMQ基本配置与示例演示 ZooKeeper:官方下载地址 |  Zookeeper 安装和配置 Nginx:官方下载地址 |  Nginx安装与配置  | 负载均衡 dubbo-admin-2.5.4: 下载地址 (需使用jdk1.7) | dubbo-admin管理平台搭建   三、导入项目 推荐使用IntelliJ IDEA, 安装教程: Windows7下安装与破解IntelliJ IDEA2017 IDEA使用Git在线导入,具体操作可以百度一下,或者File ->Open进行导入项目。 导入完毕,IDEA右侧Maven Projects找到zheng->Lifecycle->install 点击运行,在本地Repository中安装依赖的jar包,编译时间有点长,请耐心等待。 加入作者建立的QQ群,群内含各种工具、文档、视频教程下载,还有热心群友答疑解惑。   四、环境搭建 QQ群内提供了环境搭建文档和视频【点击下载】 ,未能加入群?没关系,参考本篇指南就够了。 修改项目配置文件里mysql和Redis密码: 各dao模块和rpc-service模块的redis.properties、jdbc.properties、generator.properties数据库连接等配置信息,其中master.redis.password、master.jdbc.password、slave.jdbc.password、generator.jdbc.password里密码值使用了AES加密,请使用com.zheng.common.util.AESUtil工具类修改这些值。项目里默认的是空字符串加密后密文:FNFl9F2O2Skb8yoKM0jhHA==。 配置hosts, 打开文件C:\Windows\System32\drivers\etc\hosts,增加如下配置:

配置Nginx:进入项目zheng/project-tools/nginx/,把里面的nginx.conf和servers复制到Nginx安装路径的conf目录下,比如我的D:\Java\nginx-1.12.1\conf,然后进入servers文件夹修改zheng-ui.conf,root路径修改到zheng-ui的根目录,详细的配置参考下面:

  五、启动项目   六、见证奇迹的时刻 访问 http://upms.zhangshuzheng.cn:1111/,默认帐号密码:admin/123456 内容管理系统CMS访问 http://cms.zhangshuzheng.cn:2224,页面如下:   至此,项目的环境搭建大功告成,为了同学们能够快速入门,搜罗了不少资料,如有帮助请点赞。 现在已经将近凌晨一点了,洗洗睡喽!   from:https://my.oschina.net/yzuzhang/blog/1538555

龙生   30 Jun 2018
View Details

Dubbo

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。 主要核心部件 Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制. RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能 Registry: 服务目录框架用于服务的注册和服务事件发布和订阅 工作原理 Provider 暴露服务方称之为“服务提供者”。 Consumer 调用远程服务方称之为“服务消费者”。 Registry 服务注册与发现的中心目录服务称之为“服务注册中心”。 Monitor 统计服务的调用次数和调用时间的日志服务称之为“服务监控中心”。 (1) 连通性: 注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小 监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示 服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销 服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销 注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外 注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者 注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表 注册中心和监控中心都是可选的,服务消费者可以直连服务提供者 (2) 健壮性: 监控中心宕掉不影响使用,只是丢失部分采样数据 数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务 注册中心对等集群,任意一台宕掉后,将自动切换到另一台 注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯 服务提供者无状态,任意一台宕掉后,不影响使用 服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复 (3) 伸缩性: 注册中心为对等集群,可动态增加机器部署实例,所有客户端将自动发现新的注册中心 服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者 例子 服务端 定义一个Service Interface:(HelloService.java) 1 2 3 4 5 6 7 8 package com.alibaba.hello.api; public interface HelloService {   String sayHello(String name); }   接口的实现类:(HelloServiceImpl.java) 1 2 3 4 5 6 7 package com.alibaba.hello.impl; import com.alibaba.hello.api.HelloService; public  class  HelloServiceImpl  implements  HelloService{     public  String  sayHello(String  name){         return  "Hello" + name;     } }   Spring配置:(provider.xml) 1 2 3 4 5 6 7 8 […]

龙生   30 Jun 2018
View Details

cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration的解决

导入了一个工程,编译什么的都还好,但是报了一个XML的错误。 cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'dubbo:application'. 具体错误如下: Multiple annotations found at this line: – cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'dubbo:application'. – schema_reference.4: Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>. 根据错误提示,有可能是http://code.alibabatech.com/schema/dubbo/dubbo.xsd这个文档找不到或者打不开,于是百度了一下,发现类似问题的问还是比较多的,比较轻松找到解决办法。大致的思路是,到网上下载一个dubbo.xsd文件,其实在dubbo的jar包里就有,直接解压出来就好,放到本地目录,然后在Eclipse里配置上关联关系,让Eclipse能找到这个文件即可。 1、下载一个dubbo.xsd文件; 2、在windows->preferrence->xml->xmlcatalogadd->catalog entry  ->file system 选择刚刚下载的文件路径; 3、修改key值和配置文件的http://code.alibabatech.com/schema/dubbo/dubbo.xsd 相同保存。 4、在xml文件右键validate就可以k解决了。 后记:有其它的xsd文件找不到的情况,也可以按照类似的方法解决。   from:https://blog.csdn.net/ddshang/article/details/72772640

龙生   30 Jun 2018
View Details

POI、NPOI中用SXSSFWorkbook工作簿写入大量数据

 

龙生   21 Jun 2018
View Details

解决javax.servlet.jsp.JspException cannot be resolved to a type

使用eclipse-juno新建的maven项目,使用过程中无任何问题,但是换了eclipse-luna版本后,导入同样的maven项目,则报javax.servlet.jsp.JspException cannot be resolved to a type错误;这可能是新版本eclipse的bug导致。 在网上找的解决方案是在你的项目中加入jsp-api.jar和servlet-api.jar包,这两个包来源于tomcat的libs目录中,但是会出现一个问题,项目打包发布的时候也会将这两个jar打包出去,这时候发布到tomcat中后tomcat可能启动失败,同时你的jar包可能和tomcat中的jar版本不一致等情况。 解决方式:右键你的项目--properties选择Targeted Runtimes,选择你的运行环境,我选择Apache Tomcat v7.0,Apply--OK。   from:https://www.cnblogs.com/sharpest/p/6017983.html

龙生   15 Jun 2018
View Details

国内 Top 开源项目深度解读

最受欢迎的国产开源项目都是什么模样?选用什么开源协议?使用哪种语言?实现了什么功能? 我们选取了码云 Gitee.com 平台 144 个优质开源项目,为你深入剖析国内 Top 开源项目。 (项目选取标准:入选 GVP——码云年度最有价值开源项目计划,或获得超过 1000 个 star。) 1.开源协议(license)分布——宽松型是首选 1.1 宽松式协议是首选,Apache-2.0 占比 45.14% Apache-2.0 是码云Gitee 上开源作者的首选,占到了 45.14%,JFinal 、t-io、iBase4J 等正是采用此协议。另一个则是 MIT,占比 17.36%,zheng、layui 等正是此类代表。 宽松式协议允许用户任意使用软件,从而确保大家能从软件中得到最多的利益。 Apache-2.0 是宽松式协议(permissive license)的代表,它还包含了贡献者向用户提供专利授权相关的条款,使用 Apache-2.0 的知名软件有 Android、 Apache、Swift 等。 MIT 协议几乎对用户没有什么限制,只要保留版权声明和许可声明且不要求开发者承担责任,这也成为其深受欢迎的重要原因,国际上使用 MIT 协议的知名软件有 JQuery、.NET Core 、Rails 等。 1.2 限制式协议 LGPL、GPL、AGPL 紧随其后 LGPL、GPL、AGPL 这三项协议的采用占比为 2.78%、8.35%、1.39%,它们的限制性由弱到强,分别规定: 如果项目采用动态链接调用 LGPL 许可协议的库,项目可以不用开源; 如果项目包含了 GPL 协议的代码,那么整个项目都必须使用 GPL 许可协议; 如果云服务(即 SAAS)用到的代码是 AGPL 许可协议,那么云服务的代码也必须开源。 限制式协议的初衷是帮助开源项目获得成功,从条款上进行了详细的限制,防止部分开发者修改代码却不回馈社区的情况。但凡事皆有两面,高复杂性的许可协议,不仅限制了他人,也会限制作者自身,或许这种风险正是从限制式协议到宽松式协议转变的原因。 1.3 对开源许可协议的认知和应用有待提升 在参与统计的 144 个 Top 开源项目中,未选择开源协议的项目占到了 24.31%;在码云推荐过的 7000 多个开源项目中,未选择开源协议的占比 43.95% ;而在码云上所有的开源项目中,这一数据扩大到了 77.12% 。 规则与约束是实现真正自由的前提,开源崇尚“自由、开放、分享”,更需要大家自觉遵守规则,才能实现更高的效率。 码云在此呼吁广大开源作者善用开源协议,让开源项目的发展更加规范和健康,关于如何选择开源协议,可以参考这里。 2.编程语言分布——Java 一骑绝尘 2.1 Java 类项目占据半壁江山,高达 65.73% Java 类编程语言在 Top 开源项目中可以说遥遥领先,占到 65.73%。包括了 guns、nutz、jeecg 等优质的开源项目,此类框架式的项目受到了众多开发者的喜爱。 Java 到 2018 年已经有 22 年的历史了,它在实用性、性能、向后兼容性以及跨平台性等方面都有着优秀的表现,在技术快速更迭的今天,往后的十年甚至二十年 Java 是否能一直保持这种优势呢?让我们拭目以待。 2.2 PHP […]

龙生   15 Jun 2018
View Details

javaweb利用filter拦截未授权请求

项目上有个小需求,要限制访问者的IP,屏蔽未授权的请求。该场景使用过滤器来做再合适不过了。 SecurityFilter.java:

web.xml增加配置:

from:https://www.cnblogs.com/lichmama/p/7063587.html

龙生   11 May 2018
View Details

Java获取此次请求URL以及服务器根路径的方法

本文介绍了Java获取此次请求URL以及获取服务器根路径的方法,并且进行举例说明,感兴趣的朋友可以学习借鉴下文的内容。 一、 获取此次请求的URL 1 2 3 4 5 6 String requestUrl = request.getScheme() //当前链接使用的协议     +"://" + request.getServerName()//服务器地址     + ":" + request.getServerPort() //端口号     + request.getContextPath() //应用名称,如果应用名称为     + request.getServletPath() //请求的相对url     + "?" + request.getQueryString(); //请求参数 举例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 http://127.0.0.1:8080/world/index.jsp?name=lilei&sex=1 <Context path="world" docBase="/home/webapps" debug="0" reloadable="true"/> request.getScheme() = "http"; request.getServerName() = "127.0.0.1"; request.getServerPort() = "8080"; request.getContextPath() = "world"; request.getServletPath() = "index.jsp"; request.getQueryString() = "name=lilei&sex=1"; http://127.0.0.1:8080/world/index.jsp?name=lilei&sex=1 <Context path="" docBase="/home/webapps" debug="0" reloadable="true"/> request.getScheme() = "http"; request.getServerName() = […]

龙生   11 May 2018
View Details

java 通过user-agent获取客户端

from:https://blog.csdn.net/mr_caoshuai/article/details/78284010

龙生   11 May 2018
View Details

MyBatis

        MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。         MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

龙生   10 May 2018
View Details
1 50 51 52 63