Idea Community使用tomcat运行

由于IDEA社区版(Community)无法直接New一个Web Appplication 所以要使用maven来创建

1.创建一个Project

2.

3.

4.这里在Properties中添加一个参数archetypeCatalog=internal,不加这个参数,在maven生成骨架的时候将会非常慢,有时候会直接卡住。

来自网上的解释:

archetypeCatalog表示插件使用的archetype元数据,不加这个参数时默认为remote,local,即中央仓库archetype元数据,由于中央仓库的archetype太多了,所以导致很慢,指定internal来表示仅使用内部元数据。

5.

6.配置Tomcat

7.点击左上角的加号,选择Maven

8.

9.先在pom.xml中加入tomcat7的插件(注意我在其中的port标签里设置了端口号是9090)

[html] view plain copy

  1. <build>
  2.     <finalName>TestArtif</finalName>
  3.     <plugins>
  4.       <plugin>
  5.         <groupId>org.apache.tomcat.maven</groupId>
  6.         <artifactId>tomcat7-maven-plugin</artifactId>
  7.         <version>2.1</version>
  8.         <configuration>
  9.           <port>9090</port>
  10.           <path>/</path>
  11.           <uriEncoding>UTF-8</uriEncoding>
  12.           <server>tomcat7</server>
  13.         </configuration>
  14.       </plugin>
  15.     </plugins>
  16.  </build>

然后点击右上角的绿色三角形箭头,等待tomcat启动,可以在下方看到tomcat的启动信息。(如果是第一次启动,可能要等待从Maven仓库下载插件)

10.tomcat启动成功后,在浏览器输入localhost:9090

转自:http://blog.csdn.net/u012364631/article/details/47682011

maven多module项目编译优化:只编译一个模块和依赖项

使用maven的高级参数:

 

-pl, –projects
只编译一个指定的项目

-am, –also-make
强制编译所有的依赖module

在parent P 文件夹里运行:

mvn install -pl B -am
这会编译module B和B所有的依赖项。

-T 4/1C
maven3支持指定并行运行的进程数,1C表示一个CPU内核开启一个进程。

Java XSS过滤

 

Apache.common3.time封装类

原文地址:http://blog.csdn.net/u010446936/article/details/53009641

部分代码可借鉴。

logback+ELK搭建

Elasticsearch配置文件(/etc/elasticsearch/elasticsearch.yml)需要配置的部分:

 

 

Logstash配置文件(/etc/logstash/conf.d/logstash.conf):

Kibana配置文件(centos在/opt/kibana/config/kibana.yml)部分配置:

这样ELK就配置完了,需要注意ElasticSearch和Kibana的配置IP,如果不是同一台机器,要配置成外网IP。Kibana是可以公开访问的,如果放外网,需要封一下端口号,用nginx转发的话在nginx上做基本验证。这是我的nginx配置:

passwd.db是用来放置用户名密码的,格式要用unix的格式,一般是让用htpasswd来生成的,如果没有可以用这个网上的工具来加密生成。
格式为:账号:加密后密码

接下来来设置java项目中的logback,pom.xml增加依赖:

接下来在logback的配置文件里设置,logback.xml:

 

以上代码已测试可通。配置过程中遇到以下问题:

1、用插件后logback的日志会以json格式推送,这是需要配置的,不然收不到日志消息;

2、elasticsearch的文件夹是需要权限的,没权限会影响启动;

 

ELK已经是成熟的日志收集工具,logback则可以搭配任意第三方,如直接进elasticsearch,进redis,进mq。

后续会视效果扩容es。

4/19更新:

elasticsearch有提供Api操作,删除最近30天记录的api:

如果没设置username/password,则-u参数可以省略,下面设置在cron里计划任务,每天跑一遍,只保留最近30天的记录(视硬盘大小决定吧):

完成。

Mixing programming with java,scala,maven on Intellij IDEA

base on maven pom setting:

 

this means to tell IDE when compiler scan source files include *.java and *.scala,and the result is can mixing .java file and .scala file to reference together.it’s not support write java and scala in one file.but it’s enough.

Java Web技术栈汇总整理

后端:
核心框架:Spring Framework
安全框架:Apache Shiro
视图框架:Spring MVC
服务端验证:Hibernate Validator
布局框架:SiteMesh
工作流引擎:Activiti
任务调度:Spring Task
持久层框架:MyBatis
数据库连接池:Alibaba Druid
缓存框架:Ehcache 、Redis、HazelCast
日志管理:SLF4J 、Log4j
工具类:Apache Commons、Jackson 、Xstream 、Dozer 、POI
测试框架:
Gatling 性能测试工具
Cucumber 自动化测试框架
swagger RESTFUL接口的文档在线自动生成+功能测试功能软件
swagger2markup swagger接口文档生成
springfox swagger2markup不支持springMVC,springfox用来封装

前端:
JS框架:jQuery
CSS框架:Twitter Bootstrap
客户端验证:JQuery Validation Plugin
富文本在线编辑:CKEditor
在线文件管理:CKFinder
动态页签:Jerichotab
手机端框架:Jingle
数据表格:jqGrid
对话框:jQuery jBox
下拉选择框:jQuery Select
树结构控件:jQuery zTree
日期控件: My97DatePicker
leaflet 移动端地图js库
formvalidation        表单验证Js控件

jHipster初探

Java maven架构套件AppFuse的作者在去年宣布停止AppFuse的更新,原因是从2013年起,投入了很多时间来维护,现在不温不火,也没什么反馈,而且现在有了更好的JHipster,他更喜欢,所以就不更新AppFuse了,转而去玩JHipster了,根据Matt的推特的言论,JHipster现在处于腿玩年的阶段……

最近在看各种书,也在观察Java界有什么优秀套件可用。世界发展到这个阶段,已经不是出MVC框架就可以心满意足玩一辈子了,自从Rails on Ruby这种脚手架出现以来,所有语言界都被影响到了(对,所有语言),包括PHP框架Yii变更成了Yii2,彻底的CRUD自动化,另一个世界级的PHP MVC框架Codeigniter在转给大学维护后,在V3.0阶段也走向了CRUD自动化(PHP果然是世界上最棒的!).NET MVC的项目引导界面,一直就学Rails的操作流程,包括CRUD的自动生成(想法是好的,但用EF这种屎一样的类库暗箱生成机器码,可读性出奇的差,真是应付产品经理啊),然后像Python的django就不用说了,诞生之初就是学着Rails来做的。其他语言就不说了。

按说之前出个套件,一般都是为了做范例来说明如何做开发最佳实践的,包括微软和Sun的Petshop/Petstore,但现在出套件完全不是这个意思了,逼格高,还要实用性强。JHipster的介绍是分分钟生成Spring boot+Angularjs的工具,首页地址:https://jhipster.github.io/ 也没风格简直高调华丽丽。那JHipster其实是做了Java套件的模板,用一些其他工具入nodejs,yeoman等做成的。用到nodejs的部分网络不可靠就需要翻墙,一点点丢包什么的就废了。

快速使用:

安装:yarn global add generator-jhipster

建项目目录:mkdir myApp && cd myApp

调用命令开始生成:yo jhipster

JDL Studio 里生成模型

并导入yo jhipster:import-jdl jhipster-jdl.jh

前置条件:需要有 Java, Git, Node.js, Yarn and Yeoman. 对于 ngularJS 1, 还需要 Bower 和Gulp

JHipster的Github地址:https://github.com/jhipster 整个项目的规模很大,各个方面都兼顾到,有一点就是对于已有的数据库生成,需要先导出为XML格式(这里有说明哪些工具的格式可以识别),在导成专用格式。

 

SpringMVC+Angular2.0:批量拷贝打包后的ang app到webapp

 

SpringMVC+Angular2.0:编译时利用Maven来执行npm相关命令

网上有一个maven插件是可以做到的:frontend-maven-plugin ,但在win10+jdk1.8的环境上执行失败,一直报node不是有效的win32位程序,换node x86和x64都不可以。 Continue reading “SpringMVC+Angular2.0:编译时利用Maven来执行npm相关命令”

ZooKeeper集群搭建

系统基于Debian 8。

首先安装ZooKeeper:

安装之后的环境:

zookeeper配置文件目录:/etc/zookeeper
zookeeper实际安装目录:/usr/share/zookeeper
zookeeper日志目录:/var/log/zookeeper
默认配置数据目录:/disk2/zookeeper

需要注意默认配置的数据目录是不存在的,所以如果启动,会异常并停止。

默认的配置文件zoo.cfg应该包含以下配置项:

假设要配置一个基本的zookeeper集群,3个节点(只能基数,决定投票出主机)。

第一个节点的配置文件zoo.cfg:

第二个节点的配置文件zoo2.cfg:

第三个节点的配置文件zoo3.cfg:

配置完以后,把不存在的dataDir/dataLogDir都创建了。

找到实际安装目录/usr/share/zookeeper/bin,里面有zkEnv.sh,zkServer.sh,分别复制成3份,修改对应内容,配置文件对应刚才创建的3份*.cfg配置路径。

这样启动zkServer.sh,就启动了。

这时候查看zookeeper的日志,会互相连接,3个节点连接后,会选举出主机。

 

自此zookeeper集群搭建完毕,已正常运行。

dubbox搭建参照:

http://blog.csdn.net/u011282930/article/details/51017820