理解Spring WebFlux框架中的响应式类型

2018-07-20Backend
Spring Boot
Spring Boot

Spring Boot 2.0 带来了Spring Framework 5 中的新的WebFlux技术,WebFlux是基于响应式非阻塞IO编程模型的技术栈。从而能够使用不同于以往基于Servlet API的阻塞式IO处理的新方式编写后台应用。

相比以往阻塞式IO编程,响应式编程能够获得更小的开销。因为它直接处理流,而不是单个数据。

响应式编程最早由 .NET 平台上的 Reactive Extensions (Rx) 库来实现。后来迁移到 Java 平台之后就产生了著名的 RxJava 库,并产生了很多其他编程语言上的对应实现。在这些实现的基础上产生了后来的响应式流(Reactive Streams)规范。该规范定义了响应式流的相关接口,并将集成到 Java 9 中。

查看全文...

Ubuntu16.04安装配置NGINX服务

2018-06-23Linux
NGINX
NGINX

当我们需要在Ubuntu上部署SpringBoot服务时,通常正式环境需要将监听端口切换到80端口,或443端口,但是Ubuntu为了安全起见,普通用户是不能监听1024以下端口的。另外我们需要同时支持HTTP和HTTPS,貌似SpringBoot只支持监听1个端口,这时有很多解决方案。比如使用sudo提升运行权限,也可以通过Linux防火墙iptables配置端口转发,把80端口转发到8080端口上等方式。

但是...这都不是最优的解决方案,既然用到了端口转发,不如直接安装一个NGINX服务器,做反向代理,同时也能提供静态服务能力,未来还能简单地配置升级到集群,做负载均衡。

NGINX是一款高性能Web服务器。配置简单,易扩展,并发能力强,可用于Web服务器,反向代理,负载均衡,邮件等。

查看全文...

SpringBoot配置Jar外部静态资源

2018-06-23Backend
springboot
springboot

我们知道SpringBoot内置了tomcat服务器,从而一个jar包就能实现web服务。但有时我们又想像传统tomcat那样部署一些外部的静态资源,虽然静态资源放在resource文件夹的static就能解决问题,但是static文件夹的内容会作为jar的一部分,要替换的话只能替换整个jar包,极为不便。能不能配置jar包外部的文件夹作为静态资源目录呢。当然是可以的...

以下示例代码基于SpringBoot 2.0.3,采用Kotlin语言实现:

查看全文...

Spring JPA框架中的@ManyToMany多对多关系的理解和使用

2018-04-19Backend
Spring JPA
Spring JPA

JPA是Java Persistence API的简称是Java的ORM规范,实现这个规范的有著名的Hibernate等ORM框架。JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

多对多关系是关联关系中最复杂的。本文使用Spring JPA框架总结多对多关系及@ManyToMany注解的详细使用。明白了@ManyToMany,其它 @OneToMany@OneToOne就简单很多了。

查看全文...
1...789...16