自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_44868863的博客

知道你会来! 一起学习吧!

  • 博客(90)
  • 收藏
  • 关注

原创 String的特点和常用方法

String的特点是什么?典型回答:以jdk1.8来说,String类型的底层final 修饰的char数组来存储数据String有哪些重要的方法?1、构造方法,String包含以下4个重要的构造方法:以String为参数的构造方法以char[]为参数的构造方法以StringBuffer为参数的构造方法以StringBuilder为参数的构造方法其中比较容易被我们忽略的...

2020-04-13 17:19:41 881

原创 sql中left join、right join 和 inner join的区别

一、sql的left join 、right join 、inner join之间的区别  left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录  right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录  inner join(等值连接) 只返回两个表中联结字段相等的行例如:A表如下:在这里插入图片描述B表如下:1、left...

2020-02-24 04:23:57 422

原创 开发中容易造成内存泄露的操作

建议:1. 在实际开发中,经常会造成系统的崩溃。如下这些操作我们应该注意这些使用场景。- 创建大量无用对象比如,我们在需要大量拼接字符串时,使用了String而不是StringBuilder。String str = "";for (int i = 0; i < 10000; i++) { str += i; //相当于产生了10000个String对象...

2019-11-29 14:39:01 250

原创 垃圾回收机制(Garbage Collection)

Java引入了垃圾回收机制,令C++程序员最头疼的内存管理问题迎刃而解,Java程序员可以将更多精力放到业务逻辑上,而不是内存管理工作上,大大提高了开发效率。内存管理Java的内存管理很大程度指的就是对象的管理,其中包括对象空间的分配和释放。对象空间的分配:使用new关键字创建对象即可对象空间的释放:将对象赋值null即可,垃圾回收器将负责所以“不可达”对象的内存空间。垃圾回收过...

2019-11-29 10:25:40 210

原创 18、Spring Boot——整合Jpa

实际上我们学习Jpa也相当于变相的学习hibernate,我们现在是直接在SpringBoot中使用,如果我们在Spring+SpringMVC中使用就需要自己导Jpa的包,你会发现要导的Jpa的包,全部都是hibernate的包,那么Jpa和hibernate到底是什么关系呢?什么是Jpa?1、Java Persistence API:用于对象持久化的API2、Java EE 5.0平台标...

2019-10-13 15:57:58 152

原创 17、Spring Boot——整合MyBatis

在xml中配置Mybatis要配置两个Bean,一个是sqlSessionFactory,一个是MapperScannerConfigurer,在SpringBoot中,自动帮我们提供了这两个Bean首先创建一个工程,添加如下依赖:在pom.xml中确定...

2019-09-12 18:08:19 158

原创 16、Spring Boot——JdbcTemplate多数据源

什么是多数据源?多数据源就是,在一个应用中想要去操作多个数据库的数据,比如说一个应用有订单表放在一个数据库里面,用户表放在另一个数据库里面,那么同一个应用就要连接不同的数据源。这种架构并不多见,但它也是一种技术。以后有这种需求,一般都是通过数据库中间件来解决(MyCat目前主流的方案)。除了主流方案,还有一种就是今天我们要学习的多数据源。下面来写一个简单的例子看一下什么是多数据源:实际上多数...

2019-09-11 11:55:05 495

原创 Required String parameter 'xxx' is not present

记录一下今天在工作中遇到的一个小问题,有如下接口:我在后端测试的时候是没有问题的,测试结果如下:但是前端调用后就报了Required String parameter ‘ids’ is not present的错误,请教了度娘后,发现是前后端传参方式不一样,于是我看了前端小哥哥的参数是如下格式:{"ids":"1931,618","role":1}JSON格式的参数,经过检查发现原...

2019-08-27 15:33:07 3065

原创 15、Spring Boot——整合jdbcTemplate

首先创建一个Spring Boot工程,添加如下依赖:创建好之后,默认情况下数据库驱动是有一点问题的,默认情况下他的版本号定义在parent里面,但是它使用的是MySQL的最新版本,而这里我使用的MySQL是5.7的版本。所以这里很容易出现驱动版本不对的问题,这里的版本号要手动的加一下,选择适合自己MySQL的版本,我的是如下版本,大家可以结合自己的实际情况来添加:然后再添加一个数据库驱动的...

2019-08-25 18:58:03 277

原创 14、SpringBoot——AOP及其他配置

AOP配置创建一个Spring Boot工程添加如下依赖:创建一个HelloService:@Servicepublic class HelloService { public String hello(){ return "hello"; }}然后定义一个日志的AOP:@Component//@EnableAspectJAutoProxy//允...

2019-08-22 23:59:00 210

原创 13、SpringBoot——整合Web基础组件

Web有三大基本组件,分别是:Servlet,Listener,Filter。正常来说一旦我们用了框架,这三个就用不上了,Listener可能还会用到,Servlet被Controller代替了,Filter被拦截器代替了。但是可能在一些特殊的场景下不得不使用这三个基本组件,那么在Spring Boot中要如何去引用呢?下面我们来看一下:首先自定义一个MyServlet继承HttpServlet...

2019-08-20 23:14:18 238

原创 12、Spring Boot——系统启动任务

什么是系统启动任务呢?就是当我这个应用启动的时候,我需要它执行的任务,例如在项目启动的时候做一些数据初始化操作,这些操作的特点是,只在项目启动时进行,以后不再执行,这里,容易想到web基础中的三大组件(Servlet,Filter,Listener)之一Listener,这种情况下,一般定义一个ServletContextListener,然后就可以监听到项目的启动和销毁,进而做出数据初始化和销毁...

2019-08-19 23:39:23 206

原创 11、Spring Boot——XML、拦截器

XML配置这里为方便就直接写在上篇的cors1中了创建一个名为HelloService的类,然后不在这个类中加@Service的注解由于没有加注解,那么这个HelloService现在没有注册到Spring容器中去,在这里注册呢,我不加注解注册,我也不用Bean注册,而是创建一个名为beans.xml的XML文件去注册,任何在这个文件中去配置HelloService:那么这个时候,这个He...

2019-08-18 23:01:42 798

原创 Oracle的安装及基本操作

1.数据库基础知识数据库的版本Oracle 8及8i:i表示的internet,向网络发展,过渡版本,只有一张vcd。8i是过渡性产品。Oracle9i:8i的升级版。1CDOracle10g:700M过渡性产品,其中g表示的是网格计算。以平面网格,以中心查找。Oracle11g:完整性产品,最新版本2G。 是现在使用最广泛版本Oracle12c:the world’s first ...

2019-06-28 23:04:45 747

转载 什么是Solr,它能为我们解决什么问题,怎么用?

一. 什么是Solr?其实我们大多数人都使用过Solr,也许你不会相信我说的这句话,但是事实却是如此啊 ! 每当你想买自己喜欢的东西时,你可能会打开某宝或者某东,像这样一搜,就能搜到很多东西,你知道你看到的这些数据都来自哪儿吗?百度一下你就知道!这些数据来自哪儿吗?等你了解完Solr后你就知道答案啦!现实生活中我们都知道大多数网站或应用都必须具有某种搜索功能,问题是搜索功能往往是巨大的资源...

2019-06-24 20:08:53 732

转载 为什么juc下的集合是线程安全的

我们都知道在java包下的集合大多是线程不安全的,而Vector,stack,hashtable是线程安全的,它men的线程安全是依靠synchronized,效率低。虽然可以通过Collections工具类中的方法获取java集合包对应的同步类,但是这些同步类的并发效率并不是很高。为了更好的支持高并发任务,并发大师Doug Lea在JUC(java.util.concurrent)包中添加了ja...

2019-06-24 20:08:25 915

原创 java中外部接口与内部接口的使用

什么是内部接口?内部接口也称为嵌套接口,即在一个接口内部定义另一个接口。举个例子,Entry接口定义在Map接口里面public interface Map { interface Entry{ int getKey(); } void clear();}为什么一个接口中可以再定义接口呢?就是你只实现了外部接口,那么就必须实现外部接口的所有方法;...

2019-06-24 20:07:57 4225

原创 22、Spring Cloud22——SpringCloudStream的使用

上篇文章我们看了Spring Cloud Stream的基本使用,但是上篇文章中的消息我们是从RabbitMQ的web管理页面发来的,如果我们想要从代码中发送消息该如何实现呢?自定义消息通道上一篇我们使用的消息通道实际上是系统默认提供的,就是那个Sink.class,它里面有一个常量叫做INPUT,接下来我们来看一下自己定义消息通道,我们来看看怎么弄。我们先来看一下,实际上默认情况下这里是定...

2019-06-21 15:41:06 349

原创 19、Spring Cloud ——Spring Cloud Bus之RabbitMQ介绍

为什么需要使用消息中间件?我们把Spring Cloud Bus称为消息总线,在使用微服务的时候,我们不可避免的需要在服务之间来做调用,调用的方式有很多种,之前用的Feign、RestTemplate只是其中之一而已,一般来说使用Feign或者RestTemplate来调用一个方法,调用完之后,很短时间内就能知道调用的结果。但是有一些调用我并不想马上就知道结果,甚至说没办法马上就知道结果,比如说...

2019-06-19 21:24:36 653

原创 21、Spring Cloud21——Spring Cloud Stream介绍

Spring Cloud Stream是一个构建消息驱动的微服务框架,它构建在Spring Boot 之上用以创建工业级的应用程序,并且通过Spring Integration提供了和消息代理的连接。Spring Cloud Stream为一些供应商的消息中间件产品提供了个性化的自动化配置实现(目前仅支持RabbitMQ和Kafka),同时引入了发布订阅、消费和区分的语义概念。现在我们来看看Spr...

2019-06-19 21:18:49 247

原创 20、Sprng Cloud20——SpringCloudBus的应用

这个消息中间件,在微服务中使用它可以更新我们的数据,而且更新还比较方便。比如说我们有两个微服务A和B,当我的微服务A/微服务B启动的时候,会从Config-Server中加载配置文件,而Config-Server则会通过git clone命令将配置中心的配置文件先clone下来在本地保存一份,然后再返回给微服务A/微服务B。这是我们之前的工作流程,现在我们结合Spring Cloud Bus来...

2019-06-19 15:00:53 346

原创 18、Spring Cloud18——配置中心服务化

什么是配置中心服务化?我们前两篇讲的分布式配置中心,实际上并没有引入eureka,这样是不合理的,相当于config-client里面把config-server的地址写死了,config-server如果以后换了地址,所有的config-client都得改,而且这个config-server如果你想要部署集群也不好处理,所以为了解决这个问题还是引入eureka。首先启动eureka,然后让c...

2019-06-18 10:45:49 269

转载 11、继承和组合的特点和区别?在你项目里面如何使用的?

类继承和对象组合是复用的两种最常用的技术。一:继承继承是Is a 的关系,比如说Student继承Person,则说明Student is a Person。继承的优点是子类可以重写父类的方法来方便地实现对父类的扩展。继承的缺点有以下几点:①:父类的内部细节对子类是可见的。②:子类从父类继承的方法在编译时就确定下来了,所以无法在运行期间改变从父类继承的方法的行为。③:如果对父类的方法做...

2019-06-18 09:12:11 532

原创 17、Spring Cloud17——加密解密服务

在为服务架构中,由于独立的服务个数众多,前期测试的工作量大,一些原本由运维人员维护的敏感信息会被我直接写在微服务中,提高开发效率,但是这种明文存储方式显然是非常危险的,所以我们要对这些信息进行加密,而Spring Cloud Config提供了对称密码、非对称密码的功能来完成我们的这一需求。加密方式一般有以下几种方案:1、Base64,这其实不是一种加密的方法,而是一种编码方案,叫Base64...

2019-06-18 01:17:04 1746

原创 11、容器编排

在实际的开发环境或者生产环境,容器往往都不是独立运行的,经常需要多个容器一起运行,此时,如果继续使用 run 命令启动容器,就会非常不便,在这种情况下,docker-compose 是一个不错的选择,使用 docker-compose 可以实现简单的容器编排。本文以 jpress 这样一个开源网站的部署为例,介绍 docker-compose 的使用。jpress 是 Java 版的 wordP...

2019-06-17 22:08:00 372

原创 16、Spring Cloud16——Spring Colud Config之客户端配置

上一篇搭建了分布式配置中心服务端,现在我们来学习如何在客户端使用它吧。首先创建一个名为config-client1的新的Module客户端并且添加如下依赖:在resources下新建一个名为bootstrap.properties(或者bootstrap.yaml都可以)的配置文件:#取名字必须和仓库中文件夹的名字一致spring.application.name=client1#要去c...

2019-06-17 20:27:56 462

原创 15、Spring Cloud15——SpringCloud Config分布式配置中心

为什么需要分布式配置中心呢?随着我们的分布式项目越来越大,我们可能需要将配置文件抽取出来单独管理,Spring Cloud Config对这种需求提供了支持。Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。我们可以使用Config Server在所有环境中管理应用程序的外部属性,Config Server也称为分布式配置中心,本质上它就是一个独立的微服务应用...

2019-06-16 00:22:04 253

原创 14、Spring Clou14——路由配置细节

首先我们来回忆一下上篇文章我们配置路由规则的那两行代码:zuul.routes.api-a.path=/api-a/**zuul.routes.api-a.serviceId=feign-consumer我们说当我的访问地址符合/api-a/**规则的时候,会被自动定位到feign-consumer服务上去,不过两行代码有点麻烦,我们可以用下面一行代码来代替,如下:zuul.routes...

2019-06-15 22:58:48 219

原创 13、Sping Cloud13——网关介绍

什么是API网关?当我现在建立了很多个服务之后,大家发现,我每次访问都是直接访问consumer的,然后由consumer去访问provider,像现在这种情况,如果我不想访问consumer,就想直接去访问provider,一样也是可以访问的。那么这样的话就会很乱,所以当我的微服务有成百上千个的时候,我希望给所有的服务有一个统一的入口,所有的请求都从这儿进,所有的请求都从这儿出。这样的话我要去...

2019-06-15 22:16:30 207

原创 12、Spring Cloud12——Feign详细配置

我们知道Feign其实就是对Hystrix的容错、服务降级、异常处理、负载均衡等进行的封装,这些在feign中通通都有,那么大家可能会想到容错的问题,在Feign中如何配置呢?发生错误该怎么办呢?去哪里去调用呢?首先在feign-conssumer中创建一个UserServiceFallback@Componentpublic class UserServiceFallback implem...

2019-06-15 20:54:42 279

原创 11、Spring Cloud11——Feign的继承特性

大家可能已经发现,在feign-consumer中BookService里面写的代码和provider中BookController中写的代码挺像的:BookService:@FeignClient("provider")//该注解表示这是一个Feign的客户端,绑定的provider表示要访问的服务提供者的名字叫providerpublic interface BookService ...

2019-06-15 20:23:50 545

原创 10、Spring Cloud10——声明式服务调用

前几篇已经展示了Hystrix+RestTemplate的方式调用服务,实际上在consumer的BookService里面,如果要挨个的去调用provider中的接口,BookService里面首先要注入RestTemplate,然后写相应的方法,每一个方法去调用provider中BookController中的接口,但是你会发现这些方法具有极大的相似性,你会发现这个BookService里面首...

2019-06-15 16:52:21 235

原创 9、Spring Cloud08——断路器03

Hystrix请求合并请求合并就是consumer反复的请求provider同一个接口,只是传的参数不一样,为了提高HTTP的通信效率,把它连着调用的很多个接口合成一个请求发出去,然后在provider上处理,处理完成后,返回一个一个结果就ok了,但是这不是所有的请求都能合并,这是有要求的,比如说,请求的时间里的特别近。服务端的接口也有要求,返回的数据要支持多个请求的,一般是list集合。比如...

2019-06-15 00:34:35 191

原创 8、Spring Cloud08——断路器02

异常处理服务降级一方面可能是去调用provider没调通,会发生服务降级。另一方面可能在是自己本身就抛出异常了,这种情况也会发生服务降级。那么自己本身抛出异常是怎么一回事呢?比如说在BookService中的hello方法中加入一行必错的代码:那么在这个hello方法本身在执行的时候时候就会抛异常,抛异常就会导致服务降级,不用等到调用provider调不通的时候再去服务降级。还有就是在Bo...

2019-06-14 23:08:23 203

原创 7、Spring Cloud07——断路器01

为什么需要断路器,在开发中,如果是前后端不分的话,很少使用断路器,但是在微服务中,断路器是一个非常重要的工具,因为在微服务里面,整个系统出错的概率远远高于单机服务,在微服务中可能有很多个单机服务,每个单机服务正常运行整个微服务系统才能正常运行,随着服务数量的增加,系统能正常运行的概率越低。采用微服务这个问题是无法避免的,我们能做的就是当一个微服务系统中的某一个单机服务出现问题后,希望它不要影响到整...

2019-06-14 21:15:11 234

转载 Spring Cloud的五大核心组件

springcloud是微服务架构的集大成者,将一系列优秀的组件进行了整合。基于springboot构建,对我们熟悉spring的程序员来说,上手比较容易。通过一些简单的注解,我们就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。SpringCloud的组件相当繁杂,拥有诸多子项目。重点关注Netflix服务发现——Netflix Eureka客服端负载均衡——Netflix ...

2019-06-14 11:28:26 1957

原创 6、Spring Cloud06——RestTemplate的用法详解

通过上一篇的了解https://blog.csdn.net/weixin_44868863/article/details/91899227,接下来来演示一下RestTemplate的具体用法。首先在cloud中使用Maven创建一个公共的模块commons,这个公共的模块到时候会被其他的几个模块所依赖.在commons中创建一个Book类然后在provider和consumer里面引用co...

2019-06-14 10:16:58 265

原创 5、Spring Cloud05——Eruek中的核心概念

服务提供者Eureka服务治理体系支持跨平台,虽然我们前文使用了Spring Boot来作为服务提供者,但是对于其他技术平台只要支持Eureka通信机制,一样也是可以作为服务提供者,换句话说,服务提供者既可以是Java写的,也可以是python写的,也可以是js写的。这些服务提供者将自己注册到Eureka上,供其它应用发现然后调用,这就是我们的服务提供者,服务提供者主要有如下一些功能:服务注册...

2019-06-13 22:54:29 416

原创 4、Spring Cloud04——引入RestTemplate

接下来来学习一个工具,这个工具叫做RestTemplate实际是就是Restful风格的Http请求的操作模板,RestTemplate是属于spring里面的东西,因为前面通过IO流解析有点麻烦,可以粉状一下,所以我们需要引入RestTemplate,通过它来发送网络请求。在consumer的启动类中做如下修改:它是spring里面一个特别基础的工具,就是一个网络请求的工具。在UserHe...

2019-06-13 21:47:57 471

原创 3、Spring Cloud03——服务注册

上一篇已经有了服务注册中心Eureka,接下来就可以往这上面注册一个服务。在原工程上创建一个新的Module(provider),就是一个spring boot工程,provider的applicat.properties配置文件,先注册到eureka1上面去,因为两个eureka会进行数据的同步,也可以指定同时注册到两个eureka上面去,在eureka.client.service-url...

2019-06-13 20:54:26 261

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除