大数据,元计算专家
在做列表查询时,分页是非常常见的,这里介绍spring boot如何集成分页插件
springboot快速集成mybatis,进行一次插入数据
引入jdbcTemplate,自定义sql语句,对数据库进行相应的操作
本文主要演示spring boot是如何快速集成hibernate的,并且使用jpa的方式进行一次简单的curd
同步,异步,阻塞和非阻塞的理解
spring boot热部署
idea操作maven指令启动springboot项目
搭建最简单的springboot项目
在开发过程中,我们有时需要来获取某个对象的大小,以方便我们参考,来决定开发的技术方案。jvm中提供了两种方式来获取一个对象的大小。
当我们需要在指定位置读取文件,或者写入文件时,使用普通的流读写实现是比较麻烦的,jdk为我们提供了随机流api,可以让我们在任意位置读取或写入文件内容。
List ids = new ArrayList(); ids.add(1); ids.add(1); NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dbUtil.
下面我们以centos系统为例搭建一个git私服: 1.安装git yum install -y git 2.选择一个文件夹,将其初始化成一个中心远程仓库 git init --bare learngit.
linux上安装git centos: $ yum install git-core ubuntu: $ apt-get install git 创建git仓库 选择一个文件夹 git init 创建成功后,该文件夹中会出现一个隐藏文件夹,使用 ls -ah 可以查看 提交文件操作 将需要提交的文件放入到git仓库的文件夹中,输入指令: git add fileName git commit -m "提交记录注释" git仓库的状态的查看 git status 可以查看到所有未commit的文件的状态。
当一个系统中的配置文件发生改变的时候,我们需要重新启动该服务,才能使得新的配置文件生效,spring cloud config可以实现微服务中的所有系统的配置文件的统一管理,而且还可以实现当配置文件发生变化的时候,系统会自动更新获取新的配置。
微服务架构讲究系统的高内聚性,即只做该系统该做的事情,而其他的事情可以通过网关去做。spring cloud的zuul可以快速的搭建一个网关系统,其主要功能如下: 当加入了spring cloud的zuul后,架构图大致如下: 下面我们使用zuul来快速搭建一个官网系统 1.
在开发中,我们常用httpClient去远程调用其他系统的接口,一般情况下,需要我们指定调用的url,feign也实现了一套远程调用的方法,并且更为优雅。 1.添加依赖 org.
断路保护机制:即容错性,在微服务架构中,系统之间都是相互依赖的,如果一个系统出现了异常,就会出现如下情况: 断路保护机制就是为了解决这种情况。 hystrix的大致原理如下: spring cloud中使用断路保护机制非常简单 1.
在之前 spring cloud的入门级别的系统搭建 中,我们的消费者去调用生产者服务的时候,如果该消费者有多个节点,那么我们是调用的第一个的实例(eureka默认第一个节点为轮询的结果): String serviceId = "com-spring-caclulate"; List instances = this.
spring cloud支持集群,而且非常简单,能够非常快捷的实现高可用架构。 在上一篇博文 spring cloud的入门级别的系统搭建中,我们已经学会了如何去搭建一个注册服务中心,如果想将这个注册服务中心搭建成一个集群,我们只需要将这个项目复制两套,并将自己当成服务注册即可。
spring cloud是一套非常好的微服务架构解决方案,其原理和使用zookeeper及dubbo有些类似,将服务的生产者注册至服务中心,消费者去服务中心订阅该消费者,并进行消费,原理图如下: 系统背景:客户调用A系统获取数据,A系统需要将基本数据去B系统计算结果。
使用场景: 当需要对一批数据进行逐个筛选,并将筛选后的数据存入一个容器中,当取出来进行第二次操作时,需要取出的数据是按一定的规则排序的时候。 drools加载并执行规则的时候,会去创建执行网络(Rete算法),用的排序方式就是这个算法。
初始化两条有坐标的数据: 注意:location不能存储字符串。 为location这个字段添加2d索引: db.location.ensureIndex({"location":"2d"}) 查询指定的一个点距离最近的100个点: Point point = new Point(10,10); List result = mongoTemplate.
接口: import java.util.concurrent.TimeUnit; public interface DistributedLock { public void getLock() throws Exception; public b...
创建redisLock注解: import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.
异步调用除了可以使用多线程以外,spring自已也实现了通过注解进行异步调用的功能,我们只需要进行一些简单的配置,并且在需要异步调用的方法上添加对应的注解即可。 在applicationContext.xml中添加如下: 调用test: @Service public class AsyncTestServiceImpl implements AsyncTestService{ @Override public void testAsync() { System.out.println("准备调用异步方法。
常用的列表查询(筛选条件,查询字段,排序及分页),相当于关系型数据库的: select fields from tableName where coditions order by field skip limit; DBObject cond = new BasicDBObject(); //等于条件 cond.
搭建SSM架构的时候,有时启动的时候会抛出以上的异常,这个异常一般都是web.xml文件的内容有错,或者pom.xml有问题(jar包冲突),而且后者的可能性会大一点。 下面是这个异常的全部内容: 严重: A child container failed during start java.
构造函数的使用 Random有两个常用的构造函数,一个是无参的,一个是有参的,先来看一段代码及运行结果: public class RandomTest { public static void main(String[] args) { fo...
Class类 @Document(collection = "class") public class Class { private String classId; private String teacher; private List St...
插入数据操作 将参数转换成一个对象,直接调用insert方法即可: 举例: @Document(collection="student") public class Student { private String studentId; private ...
安装(2n-1)台linux虚拟机(因为zookeeper选举制度的半数规则),具体安装过程可参考 用工具上传zookeeper安装文件到/home目录下,并且发送给其他两台机器,发送指令为:scp /home/zookeeper root@ip:/home 解压文件并zookeeper文件,tar –zxvf zookeeper-3.4.5.tar.gz。
当需要在一台服务器上安装多台虚拟机时,我们只需要安装一台,其他的可以直接克隆,这样可以省去大量的时间,但是也会有一个问题,就是网络连接不上。 下面是进行虚拟机克隆的大致过程: 1.
在并发开发中,锁是非常常见的,而wait/notify也经常会和锁一起使用,例如在生产者消费者模式中。而且wait/notify也必须和锁一起使用,因为它们都是基于对象的,否则会抛出异常。
在开发中,有时会遇到这样的情况:我明明给一个变量赋值了,为什么在使用该变量时却是没有值的,这个和JVM的内存加载顺序有关,当你使用该变量时,这个变量还没初始化完成。 首先我们来看一段代码: public class ObjectLoadMemoryTest extend...
在日常开发中,前端与后端的交互,系统之间的远程调用都需要使用到序列化技术,在java中使用序列化非常简单,只需要将被序列化的对象的类实现Java.io.Serializable接口即可。
在jvm中,涉及到变量运算时,会发生压栈弹栈等动作,但如果仅仅是自增和自减,那么jvm会直接在本地变量中实现。 public class JavaTest{ public static void main(String[] args){ int ...
public class FilesUtils { private static Logger logger = Logger.getLogger(FilesUtils.class); /** * 判断一个文件或文件夹是否存在,如果没有访问权限,返回...
AES加密解密工具类:AESUtils package org.iti.algorithm; import java.security.SecureRandom; import javax.
在日常的开发中,有时我们会遇到这样的场景:多个人对同一个数据进行修改操作,导致并发问题发生。这个问题可以通过悲观锁来解决,但是悲观锁也是有限制的,在某些场景中是不适应的,因为和数据的耦合度太高了,可能会影响到其他业务的操作。
单例设计模式的实现方式有很多种,如饿汉式,懒汉式,双重检查锁,静态内部类,枚举等等,但是在平时的开发中,我们实现的单利模式是有一定的漏洞的,可以通过反射或者序列化以及反序列化获取不同的实例,虽然这个漏洞在系统运行的时候不会体现出来,但是在开发时也是值得注意的问题。