![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 96
jhappyfly
热爱生活,热爱编程,具有十足程序猿气质男一枚
展开
-
多数据源配置-使用spring配置多个数据源实现读写分离
我们在很多的项目中经常会有用到多个数据源。比如数据库读写分离,读操作都去从库里读,写操作都往主库里写。那么这里主库和从库就是两个不同的数据源。再比如要做两个数据库之间的数据转换,从一个数据库读取数据写到另一个数据库中,等等这些情况都需要系统使用两个或多个数据源。那么该如何配置多个数据源呢?我这里使用的是spring管理,数据库连接池使用的是阿里的druid。具体步骤如下:1.修改spring的原创 2017-07-13 09:15:22 · 7142 阅读 · 1 评论 -
Vert.x(vertx) 简明介绍
摘要Vert.x最大的特点就在于异步(底层基于Netty),通过事件循环(EventLoop)来调起存储在异步任务队列(CallBackQueue)中的任务,大大降低了传统阻塞模型中线程对于操作系统的开销。因此相比较传统的阻塞模型,异步模型能够很大层度的提高系统的并发量。Vert.x除了异步之外,还提供了非常多的吸引人的技术,比如EventBus,通过EventBus可以非常简单的实现分布...原创 2018-06-22 15:43:28 · 66059 阅读 · 27 评论 -
Vert.x(vertx) 创建HTTP服务
Vert.x底层通信框架依赖于Netty,并封装了对Http协议的支持,因此可以非常方便的进行Web开发,且不依赖于任何中间件。笔者所在的公司老系统使用的是SSM架构的项目,部署在Weblogic上,每年花在中间件上的钱就非常多,现在全面改造为Vert.x,中间件的费用直接就省了。另外不依赖中间件,编程会变得非常灵活,定制性非常强,安全性也会得到一定层度的提高。对于实现一个简单的web服务,有...原创 2018-06-25 18:09:11 · 14292 阅读 · 1 评论 -
Vert.x(vertx) Web开发-路由
在Vert.x 创建HTTP服务 中我们已经创建了一个简单的HttpServer,但这个HttpServer比较低级,对于请求参数解析、Session等常用功能都需要我们通过编码实现,也就是要重复造轮子,非常不方便。Vert.x提供了Web开发组件vertx-web,提供了一堆Web开发中常用的功能。比如参数封装,路由,国际化,认证和授权,session和cookie以及模板等,可以非常方便的...原创 2018-07-03 16:21:46 · 20439 阅读 · 23 评论 -
Vert.x(vertx) 连接MySQL、Oracle数据库
Vert.x提供异步访问数据库的API,可能这里有朋友会有疑惑,直接使用我们之前的熟悉的Mybatis或者Hibernate不行吗,可行,但数据库操作是一个耗时操作,使用传统的同步模型,容易阻塞线程,导致整体性能下降,因此我们对于数据库操作,需要使用Vert.x提供的异步API。Vert.x提供的API层级非常低,可以说是仅仅在原生JDBC基础上封装了一层异步接口。所有的对数据库操作都需要通过...原创 2018-12-13 15:59:24 · 14253 阅读 · 10 评论 -
Vert.x(vertx) 实现TCP服务
对于Java开发人员,想要实现一个http服务,非常简单,写个servlet,打成war包,放到tomcat下就能运行。但如果要实现一个tcp服务就没那么简单了,因为tcp是传输层协议,并不像http那样,有类似tomcat的中间件给我们封装底层的网络协议,封装线程的交互。要实现一个tcp服务,只能自己动手处理网络和线程问题,这是非常考验编程功底的事情,而且如果团队人员素质不高,项目周期要求较短的...原创 2018-12-07 14:43:04 · 15467 阅读 · 11 评论 -
Vert.x(vertx) 认证和授权详解(包含认证和授权在Web系统中的使用)
每个线上系统几乎都是离不开认证和授权的,Vert.x提供了灵活、简单、便捷的认证和授权的支持。Vert.x抽象出了两个核心的认证和授权的接口,一个是AuthProvider,另一个是User。通过这两个接口,我们可以非常灵活的实现我们自定义的认证和授权方法。当然,Vert.x也给我们提供了使用JDBC、Shiro、MongoDB、JWT等授权的实现,我们可以直接使用。Vert.x提供的认证和...原创 2018-12-22 22:22:39 · 10075 阅读 · 4 评论 -
Vert.x(vertx)发送 HTTP/HTTPS请求
应用场景在应用系统中,经常会有类似于获取天气、发送短信、处理图像、支付等需求,这些需求实现都非常复杂,或者受到监管的限制,不是任何一个公司都可以做到的。但有些应用为了提升用户的体验,需要用到这些功能,比如饿了么会根据你所在的位置推荐附近的商家,在线商城需要在线支付,还有一些应用需要进行人脸识别等等。有需求就会有市场,于是就有很多的公司单独对外提供某种服务,比如支付宝就对外提供支付的功能...原创 2019-02-21 17:57:49 · 7609 阅读 · 2 评论 -
Vert.x(vertx) 事件总线(EventBus)与 远程服务调用
Event Bus(事件总线) 是Vert.x的神经系统,负责应用系统消息的传递。Vert.x各模块(Verticle)之间的相互调用就是通过Event Bus实现的,因此各Verticle之间是高度解耦的。Event Bus提供发布订阅功能和点对点的消息服务,类似于消息队列,每条消息在Event Bus上都有一个地址(address),发布者向这个地址发送消息,接收者从这个地址接收消息。...原创 2019-02-11 14:16:59 · 17255 阅读 · 13 评论 -
log4j 日志框架使用
Log4j是Apache下的一款开源的日志框架,能够满足我们在项目中对于日志记录的需求。一般来讲,在项目中,我们会结合slf4j和log4j一起使用。Log4j提供了简单的API调用,强大的日志格式定义以及灵活的扩展性。我们可以自己定义Appender来满足我们对于日志输出的需求。什么是日志框架我们在系统中对于记录日志的需求并不单纯。首先,我们希望日志要能持久化到磁盘,最基本的就是要能够保...原创 2018-05-24 11:31:50 · 16514 阅读 · 3 评论 -
Eclipse的Thymeleaf代码提示功能
在Eclipse中安装Thymeleaf插件即可。插件的地址为:http://www.thymeleaf.org/eclipse-plugin-update-site/安装过程可以见http://blog.csdn.net/king_kgh/article/details/76084398原创 2017-07-25 16:47:56 · 11845 阅读 · 3 评论 -
Eclipse插件安装(在线和离线方式)
Eclipse是基于插件的,插件为Eclipse提供了极大的扩展能力。我们经常会用到一些Eclipse中没有给我提供的一些功能,比如SVN,比如Thymeleaf的编辑工具,比如ADTBundle等等,都是通过插件来完成,那么如何安装需要的插件到Eclipse中呢?插件的安装一般有三种方式,第一种是下载到本地来安装,第二种是在线安装,第三种是直接通过Eclipse提供的MarketPlace来...原创 2017-07-25 16:42:50 · 48045 阅读 · 3 评论 -
java多线程的6种实现方式详解
多线程的形式上实现方式主要有两种,一种是继承Thread类,一种是实现Runnable接口。本质上实现方式都是来实现线程任务,然后启动线程执行线程任务(这里的线程任务实际上就是run方法)。这里所说的6种,实际上都是在以上两种的基础上的一些变形。继承Thread类万物皆对象,那么线程也是对象,对象就应该能够抽取其公共特性封装成为类,使用类可以实例化多个对象,那么实现线程的第一种方式就是继承...原创 2017-10-12 12:41:57 · 59343 阅读 · 23 评论 -
linux安装jdk(RPM方式和tar.gz方式)
安装有两个过程,第一个是下载,第二个是安装。安装之前要下载Java的安装包,在下载之前,我们先来掰扯一下Java的各种版本。众所周知,Java是免费开源的,这里的开源有两层含义,第一是Java本身是开源的,第二其规范也是开源的。这也就意味着Java可以有多个虚拟机,可以有多个编译环境。这里说这个问题跟我们安装jdk没有任何关系。只是告诉大家,我们安装的是Java虚拟机,以及Java的...原创 2017-08-08 12:17:29 · 3314 阅读 · 0 评论 -
Vert.x(vertx)操作Redis
Redis是一个基于Key-Value的非关系型数据库,在项目中经常用来做缓存、分布式锁等。关于Redis的基础知识,这里就不多说了,读者如果对这块内容不熟悉,可以先找些Redis相关的资料来学习。下面我主要来介绍下在Vertx中如何使用Redis,以及底层的实现原理。基本操作1.使用Redis和使用数据库一样,只需要导入相关的包,就可以了。这里只需要引入vertx-redis-clien...原创 2019-09-25 10:58:00 · 5887 阅读 · 0 评论