2020
11-13
11-13
使用Spring Data Jpa的CriteriaQuery一个陷阱
使用SpringDataJpa的CriteriaQuery进行动态条件查询时,可能会遇到一个陷阱,当条件为空时,查询不到任何结果,并不是期望的返回所有结果。这是为什么呢?例如下述代码,当predicates为空时,返回结果总是为空。publicPage<VmhostWithRelationPO>listVmhostSpecWithRelationByPage(Stringname){Specification<VmhostWithRelationPO>spec=(root,cq,cb)->{root.join("user",JoinType.LEFT);root.join("tenant",Joi...
继续阅读 >
1、创建一个maven项目。2、在pom.xml中引入依赖包,如下所示:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.best</groupId><artifactId>spring-boot...
1.在pom中添加所需依赖创建一个springboot工程,添加所需要的依赖,持久化用的是mybatis<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--springbootaop依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!--mybatis--><dependency>...
1.在对应的pom.xml文件里添加“插件的某个版本”<version>xxx</version>。<groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.2.6.RELEASE</version>2.“插件的某个版本”<version>xxx</version>从插件所在的文件路径里寻找,插件所在路径=maven仓库路径+<groupId>+<artifactId>.找到很多版本后,一个一个去试。下图是我的路径举例。到此这篇关于spring-boot-maven...
SpringCloudZuul集成Swagger1.准备服务注册中心eureka-server2.创建微服务swagger-service-astep1.创建微服务swagger-service-a(SpringBoot项目),添加eureka-client起步依赖,web起步依赖和swagger依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><a...
Nacos技术讲解一提到分布式系统就不的不提一下CAP原则Nacos简介Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、配置管理、服务治理的综合性解决方案。官方介绍是这样的:Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构的...
Bean的生命周期:创建bean对象?属性赋值?初始化方法调用前的操作?初始化方法?初始化方法调用后的操作?…--销毁前操作?销毁方法的调用。【1】init-method和destroy-method自定义初始化方法和销毁方法两种方式:xml配置和注解。①xml配置<beanid="person"class="com.core.Person"scope="singleton"init-method="init"destroy-method="cleanUp"autowire="byName"lazy-init="true"></bean>②注解配置...
1.1简介1.1.1概述 Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机等。当然,我们也可为Ribbon实现自定义的负载均衡算法。Ribbon现在已经进入维护状态,但目前仍在大规模使用,SpringCloud准备使用LoadBalance...
1.1简介 1.1.1概述 Feign旨在使编写JavaHttp客户端变得更容易。在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模版化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以,Feign在Ribbon基础上做了进一步封装,由他来帮助我们定义和...
1.1简介 1.1.1概述 NetflixEureka是由Netflix开源的一款基于REST的服务发现组件,包括EurekaServer及EurekaClient。2012年9月在GitHub上发布1.1.2版本,目前Netflix以宣布闭源,所以市面上还是以1.x版本为主。Eureka提供基于REST的服务,在集群中主要用于服务管理。Eureka提供了基于Java语言的客户端组件,客户端组件实现了负载均衡的功能,为业务组件的集群部署创造了条件。使用...