- 博客(41)
- 收藏
- 关注
原创 SpringDataES
SpringDataElasticsearch(以后简称SDE)是Spring Data项目下的一个子模块。Spring Data的使命是给各种数据访问提供统一的编程接口,比如Mysql、Redis、ES等等,目的是简化开发人员的代码。SDE提供对象即支持ES的原生API操作,也提供了ElasticsearchTemplate对象来操作ES。创建索引库和映射创建springboot工程,导入依赖 <parent> <groupId>org.sp.
2021-08-17 21:11:05
1380
1
原创 出现NodeAvailableException[None of the configured nodes are available问题解决方案
在测试SpringDataES的时候,出现了下面错误原因是我们application.yaml配置文件出现了问题:配置文件正确写法:spring: data: elasticsearch: cluster-name: my-application cluster-nodes: 127.0.0.1:9300可以看到这其中有两个配置:cluster-name: my-application和cluster-nodes: 127.0.0.1:9300①
2021-08-17 20:54:45
1603
原创 编写测试类中出现java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration以及解决办法
原因:测试类和启动类的包名不一致 因为springboot的“默认”扫描机制就是指将主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来。
2021-08-17 18:07:49
480
原创 ElasticSearch原生API_Java High Level Rest Client (附源码)
在elasticsearch官网中提供了各种语言的客户端:https://www.elastic.co/guide/en/elasticsearch/client/index.html1.Java操作ES官方帮助文档ES提供了java语言的客户端,Java High Level REST Client 内部仍然是基于Java Low Level REST Client。它提供了更多的API,接受请求对象作为参数并返回响应对象,由客户端自己处理编码和解码。所以我们直接使用Java High Level.
2021-08-15 20:16:51
650
原创 Elasticsearch基本操作
1.使用kibana对索引库操作①创建索引库PUT /lepeng②查看索引库GET /lepeng③删除索引库DELETE /lepeng2.使用kibana对类型及映射操作有了索引库,等于有了数据库中的database。接下来就需要创建数据库中的表。创建数据库表需要设置字段约束,索引库也一样,在创建索引库的类型时,需要知道这个类型下有哪些字段,每个字段有哪些约束信息,这就叫做字段映射(mapping)①Elasticsearch支持的数据类型:https://www.ela
2021-08-13 16:14:24
1098
3
原创 解决虚拟机开启后连接不到,导致虚拟机中开发环境不能使用的方法
重启网卡1.停止服务service NetworkManager stop2.重启服务service network restart
2021-08-07 22:58:18
142
原创 SpringAMQP处理RabbitMQ的常用五种消息模型
1.AMQPAMQP(Advanced Message Queuing Protocol)AMQP,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。提供了三个功能:自动声明队列、交换机及其绑定关系基于注解的监听器模式,异步接收消息封装了RabbitTemplate工具,用于发送消息2.配置环境引入依赖:&
2021-08-03 20:34:34
992
5
原创 RabbitMQ入门
1.RabbitMQ是什么?RabbitMQ 是一个消息代理:它接受和转发消息。我们可以将其视为邮局,当我们将要投递的邮件放入邮箱时,我们就可以确定邮差最终会将邮件递送给您的收件人。在这个比喻中,RabbitMQ 充当了一个邮箱、一个邮局和一个邮递员。在开发中,RabbitMQ和邮局类似,不同的是它接受、存储和转发二进制数据块-消息。所以RabbitMQ也称为消息中间件。RabbitMQ是一个中间件,也就意味着需要生产者和消费者。生产者就是发送消息,消费者就是接收消息,我们寄邮件需要放入邮箱,然后才会
2021-08-03 16:26:36
132
原创 SpringCloud之Nacos安装(Windows)
1.Windows安装1.1.下载安装包GitHub的Release下载页:https://github.com/alibaba/nacos/releaseswindows版本使用nacos-server-1.4.1.zip包即可。1.2.解压将这个包解压到任意非中文目录下目录说明:bin:启动脚本conf:配置文件1.3.端口配置Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。如果无法关闭占用8848端口的进程,也可以进入naco
2021-07-16 22:15:23
236
原创 SpringCloud之Eureka
1. Eureka基础架构在前一篇博客中,提出了三个思考其实这三件事就是注册中心帮我们去完成的1.消费者该如何获取服务提供者具体信息?服务提供者启动时向eureka注册自己的信息eureka保存这些信息消费者根据服务名称向eureka拉取提供者信息2.如果有多个服务提供者,消费者该如何选择?服务消费者利用负载均衡算法,从服务列表中挑选一个3.消费者如何感知服务提供者健康状态?服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态eureka
2021-07-16 22:05:46
115
1
原创 SpringCloud之微服务远程调用RestTemplate
假设我们需要根据订单id查询订单的同时,把订单所属的用户信息一起返回。在SSM框架中我们可能会在先查询订单信息,然后将根据用户订单中id查询用户,之后将查出来的用户封装到一个订单信息的resultMap中后进行返回订单信息。而微服务的远程调用则不用那么繁琐,他可以通过一个请求路径url进行直接查询用户信息,这就代表我们在查询订单信息的时候,只需要访问一个user请求的url就可以查出来对应的用户信息,然后直接对订单信息中的用户信息进行赋值。而这种调用的实现就需要依靠RestTemplate.
2021-07-16 21:39:53
436
1
原创 linux下启动tomcat报错(Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least on)
解决方案vim setclasspath.sh按i修改,加上jdk环境变量,/usr/local/src/jdk/jdk1.8.0_181是安装在linux的jdk目录位置,修改之后esc,删除:wq保存并退出编辑。export JAVA_HOME=/usr/local/src/jdk/jdk1.8.0_181export JRE_HOME=/usr/locl/src/jdk/jdk1.8.0_181/jre然后就可以成功启动...
2021-07-14 22:39:06
169
1
原创 springboot的启动原理
如需要此思维导图可私信获取!!!@SpringBootApplication注解下有三个核心注解,分别是@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan1.@SpringBootConfiguration底层注解使用了@Configuration,<在https://blog.csdn.net/qq_42480555/article/details/118359107?spm=1001.2014.3001.
2021-07-14 11:12:19
291
1
原创 spring整合Dubbo的demo
1.Zookeeper第一步需要选择一个注册中心,注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小.Dubbo官方推荐使用 zookeeper 注册中心2.服务提供者目录结构引入依赖<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.comp
2021-07-13 20:29:51
221
1
原创 Dubbo的产生和架构
1.软件架构的演进过程随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。系统架构大体经历了下面几个过程: 单一应用架构—>垂直应用架构—>分布式架构—>SOA架构单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。此
2021-07-13 17:04:57
87
原创 springboot入门
在之前SSM整合中,介绍了spring整合springmvc、mybatis的过程,可以看出整合过程极其麻烦。1.Spring优缺点分析优点:Spring为企业级Java开发提供了一种相对简单的方法,通过IOC和AOP,用简单的Java对象(POJO)实现之前只有EJB才能完成的事情。缺点:虽然Spring的组件代码是轻量级的,但它在开发时整合的配置却是重量级的,比如:在管理整个项目依赖时,总是会发生jar包的版本冲突问题。项目添加一个框架或者技术时,需要导入的maven依赖太多。项目
2021-07-09 17:30:01
107
原创 浅谈spring之JWT鉴权
1.JWT鉴权是什么?①针对于浏览器而言传统方式下,我们登录成功后可以将登录信息存储在session中,然后服务器会将sessionId标识返回给浏览器存储在cookie里,然后浏览器每次访问服务器的时候,都会通过cookie携带sessionId,后端通过sessionId就能取到session中的用户信息了②针对于app/小程序而言一个App,它是不支持cookie的;那么这种情况下,服务器如何来完成客户端的身份认定呢?这就需要JWT技术的支持了JWT(令牌),全称为JSON Web
2021-07-07 15:54:31
178
原创 基于SSM实现阿里云OSS服务进行图片存储(附源码)
官网地址:https://www.aliyun.com/product/oss1.注册账号2.购买服务oss需要我们付费的有两个地方:存储,直接4.98购买套餐流量,按照访问量自动扣费存储包,直接购买套餐流量包,上行流量是免费的,下行流量是按照访问量自动扣费的[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0VWTFoa9-1625622833198)(assets/image-20210402095853573.png)]...
2021-07-07 14:51:23
1346
原创 mybatis基于接口的方式进行dao层开发
1.为什么使用mybatis在用传统JDBC开发的代码如下:我们可以看出,在JDBC开发中我们需要自己连接数据库,获取链接,编写sql语句,对sql语句进行预编译,之后去数据库查询返回一个ResultSer结果集,之后手动关闭各种连接…可以看出极其的麻烦。而mybatis就是简化了这一切操作,我们只需要编写sql语句就行了,剩下的操作交给mybatis去处理。2.怎么使用mybatis①编写mybatis连接数据库等的配置文件SqlMapConfig.xmlenvironment标签:pr
2021-07-02 17:06:14
305
原创 浅谈spring之拦截器Intercepter
1.拦截器拦截器和过滤器类似,过滤器Filter是在请求进入容器后,但在进入servlet之前进行预处理,请求结束是在servlet处理完以后。拦截器 Interceptor 是在请求进入servlet后,在进入Controller之前进行预处理的,Controller 中渲染了对应的视图之后请求结束。2.拦截器测试在使用拦截器之前首先在springmvc.xml加入拦截器配置 <!--拦截器配置--> <mvc:interceptors> &
2021-07-02 00:13:27
257
原创 浅谈spring之自定义异常
1.创建一个普通类,实现HandlerExceptionResolver接口@Componentpublic class MyHandlerExceptionResolver implements HandlerExceptionResolver { /* 捕获并处理异常信息 请求: request response handler: 用户具体调用处理的某个方
2021-07-01 20:52:38
593
原创 @RequestBody和@ResponseBody
@RequestBody用于前端数据传入后端进行反序列化操作。用于将ajax传入的json字符串反序列化为实体类对象,这个过程使用的是无参构造,然后才走的set方法,这意味着我们可以通过无参构造对某些成员属性初始化。@ResponseBody用户后端返回实体类对象给前端,转化为json格式。和@Controller注解可以合并为@RestController...
2021-07-01 20:24:54
77
原创 ThreadLocal类及spring模拟多用户转账
1.ThreadLocal类的作用如果我们在多线程情况下不使用ThreadLoacl类:public class MyDemo { private String content; public String getContent() { return content; } public void setContent(String content) { this.content = content; } public sta
2021-06-30 16:45:33
204
原创 浅谈Spring之用纯注解方式整合Dbutils
要想使用纯注解开发,还需了解以下几个注解@Configuration:相当于applicationContext.xml,将此类作为xml配置文件@ComponentScan:相当于<context:component-scan base-package=""/>开启包扫描@PropertySource:相当于<context:property-placeholder location=""/>,导入外部配置文件@Bean:将第三方类(对象)交给ioc容器,让他去为需要的地
2021-06-30 13:57:24
129
原创 druid连接池
1.为什么要有连接池之前每次用户来访问数据库,我们都会为这个用户创建一个连接。用户操作之后,这个连接就会关闭。如果以后还由用户来访问,我们还会给用户创建连接。这样频繁创建以及销毁连接对性能带来的影响是比较大的。解决方式:我们可以预先创建很多的连接,把这个连接放到一个容器中。当用户来访问时,我们从容器中获取连接给用户使用,如果操作完后这个连接也不要关闭,再放回到容器中,这样就可以避免频繁创建以及销毁连接带来的性能问题。这个容器就是连接池。连接池:就是一个容器,这个容器中预先保存了很多连接,用的时候直接从
2021-06-30 11:47:15
440
原创 浅谈Spring之整合Junit
先看之前我们之前的测试类:我们想去测试spring为我们创建的对象,我们需要加载配置文件去创建spring容器,然后根据Spring中的getBean方法去获取Bean的实例。这样测试起来会特别麻烦,所以开发者将junit整合到Spring框架中,来简化这些操作,让开发者可以直接在测试类注入Bean实例,前提是把配置文件的名称或者配置类告诉spring!!在pom文件导入spring-test的jar包<dependency> <groupId>junit<
2021-06-30 10:48:46
200
原创 浅谈Spring之注解Component 和Autowired实现IOC和DI
在浅谈Spring之IOC、DI中写到过根据XML配置文件方式进行Spring开发,那需要我们去编写配置代码,重复且复杂。所以开发Spring的团队推出了注解开发,用注解代替xml配置文件可以简化配置,提高开发效率。要想进行注解开发,必须在xml中进行一个开启包扫描的配置,描目的是在扫描这些包中的类,查询哪些类上有注解,有就执行注解操作。<context:component-scan base-package="包名"/>① @Component这个注解主要用于代替xml中的bean
2021-06-30 09:38:01
311
原创 浅谈Spring之AOP
1.AOP是什么AOP:全称(Aspect Oriented Programming)面向切面编程。AOP是一种编程思想,指的是在程序运行期间,将某段代码动态切入到指定方法的指定位置进行运行的编程方式。那么这句话是在说什么呢?假设我们想实现转账功能,转账需要事务管理。我们第一时间会想到在转账的过程中进行事务管理(如开启事务、回滚事务、提交事务),而且都将转账业务和事务管理都封装到一起。那么下一步我们可能会想到将事务管理封装到一个类中,当需要事务管理的时候,我们手动去调用。这样的确简化了代码,但是这
2021-06-28 20:56:57
90
1
原创 浅谈Spring之IOC如何创建并获取对象
这句话是spring官网对IOC容器给出的定义。里面描述了容器读取配置元数据即配置文件xml中的去实例化对象。以下是Spring官网给出基于 XML 的配置元数据的基本结构:如何根据bean获取到对象<bean id="userDao" class="dao.impl.UserDaoImpl"></bean>此时ID为此元数据bean的标识,class为完全限定名。当执行ApplicationContext ac = new ClassPathXmlApplicat.
2021-06-27 15:40:58
262
原创 浅谈Spring之IOC、DI
1.Spring是什么?Spring是一个轻量级框架,整合了表现层、业务层和持久层等众多优秀应用技术。Spring的核心是 IOC(Inverse OfControl:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)2.IOC控制反转和DI 依赖注入①IOC 控制反转控制:指的是控制权,可以简单理解为对象的创建权限反转:指的对象的控制权由程序员在类中主动控制(new)反转到由Spring容器来控制。IOC就把创建对象的控制权交给Spring框架。
2021-06-27 13:09:20
106
原创 linux的基本命令
一、目录处理命令1.pwd查看当前所在目录语法: pwd2.ls查看当前目录下的文件语法: ls [参数] 目录参数: -l 以详细形式查询当前目录下的文件(不包含隐藏文件) -a 查看目录下的所有文件,包含隐藏文件(不是详细展示) -la 上面两个功能的组合(详细查看所有文件)3.cd进入文件目录语法: cd 目录目录表达形式: / 从根目录开始写的绝对路径目录 .. 上层目录 . 当前目录 ~ 家目录 - 上
2021-06-21 16:31:40
93
1
原创 pagehelper分页失效,查询了全部数据
1.查询全部的debug调试分析利用debug调试发现在PageHelper.startPage(pageNum,pageSize)前面执行查询功能,size=512,说明分页并没有生效。2.分页查询的debug调试分析利用debug调试发现在PageHelper.startPage(pageNum,pageSize)后面执行查询,size=10,说明分页功能生效。结论在PageHelper.startPage(pageNum,pageSize)后执行查询功能,分页查询才能生效
2021-06-14 17:51:40
4237
原创 java中输入输出流 同时操作同一文件出现的问题
有一道题如下:`“测试文件.txt”中,有如下数据:abc 请分析,以下代码执行后,文件中的数据为: ( )public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("测试文件.txt"); //1 FileOutputStream fos = new FileOutputStream("测试文件.txt"); //2 i
2021-04-17 18:15:27
1315
2
原创 安装PYCharm后右键打开桌面项目导致菜单栏变宽解决方法
运行regedit注册表;按以下路径,HKEY_CLASSES_ROOT\Directory\Background\shell\PyCharm Community Edition ,找到PyCharm Community Edition文件夹,删除
2020-02-22 13:33:54
16503
50
原创 float浮动带来的影响以及两种解决方法
CSS 中的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列,往往是用于图像,但它在布局时一样非常有用。但是在布局是会出现一些影响如下图:未使用float浮动使用float浮动这里可以发现一个问题,使用float浮动后子元素虽然实现了水平方向的浮动,但是父元素的高度却塌陷了。解决方法一、在父元素的样式中加入overflow:hidden属性。目的是父元素包住...
2019-10-20 15:48:50
1824
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人