前言
Linux相信对大多数程序员来说都不陌生,毕竟在服务器端依然还是霸主地位而且丝毫没有退居二线的意思,以至于现在几乎每一个软件开发的相关人员都得或多或少的知道一些Linux的相关内容,本文将介绍如何在刚拿到一台云服务器(采用centos
)来进行运行环境的搭建,包括JDK
、Mysql
、Tomcat
以及nginx
。相信对于小白来说很有必要的,也是我个人的一个记录。
该服务器的用途是用于部署JavaEE项目。
部署之后的效果图如下:
baller
Linux相信对大多数程序员来说都不陌生,毕竟在服务器端依然还是霸主地位而且丝毫没有退居二线的意思,以至于现在几乎每一个软件开发的相关人员都得或多或少的知道一些Linux的相关内容,本文将介绍如何在刚拿到一台云服务器(采用centos
)来进行运行环境的搭建,包括JDK
、Mysql
、Tomcat
以及nginx
。相信对于小白来说很有必要的,也是我个人的一个记录。
该服务器的用途是用于部署JavaEE项目。
部署之后的效果图如下:
不知大家在平时的需求中有没有遇到需要实时处理信息的情况,如站内信,订阅,聊天之类的。在这之前我们通常想到的方法一般都是采用轮训的方式每隔一定的时间向服务器发送请求从而获得最新的数据,但这样会浪费掉很多的资源并且也不是实时的,于是随着HTML5
的推出带来了websocket
可以根本的解决以上问题实现真正的实时传输。
至于websocket
是什么、有什么用这样的问题一Google一大把,这里我就简要的说些websocket
再本次实例中的作用吧。
由于在本次实例中需要实现的是一个聊天室,一个实时的聊天室。如下图:
webservice这个不知道大家首次接触的时候是怎么理解的,反正我记得我当时第一次接触这个东西的时候以为又是一个XX框架,觉得还挺高大上。然而这一切在之后我使用过后才发现这些全都是YY。
那么webservice到底是什么呢,根据我自己的理解:简单来说就像是一个公开的接口,其他系统不管你是用什么语言来编写的都可以调用这个接口,并可以返回相应的数据给你。就像是现在很多的天气应用,他们肯定不会自己去搞一个气象局之类的部门去监测天气,大多都是直接调用一个天气接口,然后返回天气数据,相关应用就可以将这些信息展示给用户了。
通常来说发布这类接口的应用都是用一两种语言来编写即可,但是调用这个接口应用可能会是各种语言来编写的,为了满足这样的需求webservice出现了。
简单来说webservice就是为了满足以上需求而定义出来的规范。
在Java中实现webservice有多种方法,java本身在jdk1.7之后也对webservice有了默认的实现,但是在我们实际开发中一般还是会使用框架来,比如这里所提到的CXF就有着广泛的应用。
废话我就不多说了,直接讲Spring整合CXF,毕竟现在的JavaEE开发是离不开Spring了。
该项目还是基于之前的SSM进行开发的。
第一步肯定是要加入maven依赖:
相比有做过企业级开发的童鞋应该都有做过权限安全之类的功能吧,最先开始我采用的是建用户表
,角色表
,权限表
,之后在拦截器中对每一个请求进行拦截,再到数据库中进行查询看当前用户是否有该权限,这样的设计能满足大多数中小型系统的需求。不过这篇所介绍的Shiro能满足之前的所有需求,并且使用简单,安全性高,而且现在越来越的多企业都在使用Shiro,这应该是一个收入的你的技能库。
MyRealm
类有关Shiro的基础知识我这里就不过多介绍了,直接来干货,到最后会整合Spring来进行权限验证。
首先在使用Shiro的时候我们要考虑在什么样的环境下使用:
大家平时肯定都有用过全文检索工具,最常用的百度谷歌就是其中的典型。如果自己能够做一个那是不是想想就逼格满满呢。Apache就为我们提供了这样一个框架,以下就是在实际开发中加入Lucene的一个小Demo。
首先看一下实际运行的效果图:
最近这几年JetBrains
公司开发的IDEA
是越来越流行了,甚至Google的官方IDE都是IDEA
来定制的,可见IDEA的发展趋势是越来越好,由于博主接触IDEA的时间也不长,所以有关IDEA
和Eclipse
的区别和优劣势请自行百度了。
借此机会我就使用IDEA来整合一下SSM,针对于初学者(初次使用IDEA和JAVAEE初学者)还是有帮助的。
哦对了,关于IDEA的版本问题强烈建议使用旗舰版,有条件的就购买,没条件的嘛。。天朝你懂的。
在欢迎界面点击Create New Project
。
由于博主的喜新厌旧,再经过一段时间对上一个主题的审美疲劳加上我专(zhuang)研(bi)的精神
于是就想找一个B格较高的主题。经过一段时间的查找发现NexT这个主题简洁而不失华丽,低调而不失逼格(就不收广告费了)特别适合我,接着就着手开干。
这里我就不介绍有关Hexo的东西了,默认是知道如何搭建Hexo博客的。还不太清楚的请自行百度。
首先将NexT主题先克隆到自己电脑上:
相信很多朋友在实际工作中都会要将数据导出成Excel的需求,通常这样的做法有两种。
一是采用JXL来生成Excel,之后保存到服务器,然后在生成页面之后下载该文件。
二是使用POI来生成Excel,之后使用Stream的方式输出到前台直接下载(ps:当然也可以生成到服务器中再下载。)
。这里我们讨论第二种。
至于两种方式的优缺点请自行百度。
通常我会将已经生成好的HSSFWorkbook
放到一个InputStream
中,然后再到xml配置文件中将返回结果更改为stream
的方式。如下:
由于前段时间为了让部署在Linux中的项目访问另一台服务器的MySQL,经过各种折腾就把
root
用户给弄出问题了,导致死活登不上PS:Linux中的项目还是没有连上。。
(这是后话了。)。经过各种查阅资料终于找到解决方法了。
报错如下:Access denied for user 'root'@'localhost' (using password:YES)
打开MySQL目录下的my-default.ini
文件,如图:
在最后一行加入skip-grant-tables
之后保存。
然后重启MySQL服务。
之前我们使用多线程要么是继承Thread
类,要么是实现Runnable
接口,然后重写一下run()
方法即可。
但是只有的话如果有死锁、对共享资源的访问和随时监控线程状态就不行了,于是在Java5之后就有了Callable接口。
代码如下:CallableFuture
类