自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 SpringBoot整合ElasticSearch关于mapping source must be pairs of fieldnames and properties definition报错

通过Java 代码创建索引,设置Mappings映射的时候,有时候我们会报一个这样的错误。 mapping source must be pairs of fieldnames and properties definition. 这是因为我们在创建CreateIndexRequest对象的时候,导入的包不是org.elasticsearch.client.indices;包下的。 可以直接换成该包下的CreateIndexRequest对象。 import org.elasticsearch.cli

2020-10-20 21:02:18 23

原创 关于SpringBoot框架

在之前就有过一篇关于SpringBoot框架的文章,感觉写的特别差,今天再写一篇,作为自己的一个笔记吧。如果有什么错误,还请各位大佬多多指正。 1 SpringBoot概述 SpringBoot 提供了一种快速使用 Spring 的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短项目周期。 2 SpringBoot功能 2.1 自动配置 Spring Boot 的自动配置是一个运行时(应用程序启动

2020-10-19 13:43:59 21

原创 Restful风格

Restful概述 Rest( REpresentational State Transfer) 一种网络资源的访问风格,定义了网络资源的访问方式。 传统风格访问路径:http://localhost/user/get?id=1 Rest风格访问路径:http://localhost/user/1 特点: 不明确显示参数信息。(通过路径中的某部分来传递参数) 隐藏资源的访问行为,通过地址无法得知做的是何种操作。(通过请求方式来确定操作行为) 行为约定 GET请求: http://loca

2020-10-12 20:32:43 19

原创 SpringMVC的文件上传

文件上传三要素 必须包含表单项type=“file” 表单的提交方式是post 表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data” <h3>用户注册-文件上传</h3> <form action="fu" method="post" enctype="multipart/form-data"> 姓名: <input type="text" name="name" /> <br/>

2020-10-12 20:27:38 40

原创 SpringMVC其他技术

接受异步请求参数 //接收整体参数 @RequestMapping("/ajaxController") public String ajaxController(@RequestBody String message){ System.out.println(message); return "page.jsp"; } //如果,前台发送过来的参数是"json字符串",则需要在后台加上@RequestBody来接收并解析参数 //在服务器集群情况下,服务器之间只能收发字符串数据,所以

2020-10-12 20:25:17 18

原创 SpringMVC

SpringMVC 概述 三层架构: 表现层:负责数据展示 业务层:负责业务处理 数据层:负责数据操作 MVC(Model View Controller),一种用于设计创建Web应用程序表现层的模式。 Model(模型):数据模型,用于封装数据。 View(视图):页面视图,用于展示数据。 jsp html Controller(控制器):处理用户交互的调度器,用于根据用户需求处理程序逻辑。 Servlet SpringMVC SpringMVC是一种基于Java实现MVC

2020-10-12 19:41:17 17

原创 Spring声明式事务

所谓的声明式事务,就是通过配置的方式,来实现事务管理。 Spring中的声明式事务,底层是通过AOP来实现的。 相关jar包 <!-- spring的事务管理 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.1.9.RELEASE</vers

2020-10-12 19:02:15 4

原创 Spring框架——AOP面向切面编程(注解方式)

注解开发AOP制作步骤 在XML格式基础上 导入坐标(伴随spring-context坐标导入已经依赖导入完成) 开启AOP注解支持 配置切面@Aspect 定义专用的切入点方法,并配置切入点 @Pointcut 为通知方法配置通知类型及对应切入点 @Before <!--组件扫描--> <context:component-scan base-package="com.itheima.aop"/> <!--aop的注解支持--> <aop:aspect

2020-10-12 18:34:05 31

原创 Spring框架——AOP面向切面编程

AOP概念 AOP:面向切面编程,一种编程范式,指导开发者去和组织程序结构。 AOP是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 简单来说, 就是在程序运行期间, 在不修改源码的情况下, 对正在运行的方法进行功能增强(添加或删除某些功能)。 AOP开发方式(三种) XML方式 XML + 注解方式 注解方式 AOP的作用和优点 作用:在程序运行期间,在不修改源码的情况下对方法进行功能增强。 优势:减少重复代码,提高开发效率,并且便于维护。 AOP开发步骤 导入 AOP 相关坐标

2020-10-12 18:24:41 33

原创 Spring框架纯注解开发

编写三个测试类 package com.itheima.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotati

2020-09-27 14:52:21 24

原创 Spring框架02

Spring框架不仅仅可以使用配置文件进行开发,还可以使用更为简单的注解进行开发。 首先在Spring配置文件中开启注解扫描 <context:component-scan base-package="包名"/> 说明 在进行包所扫描时,会对配置的包及其子包中所有文件进行扫描 扫描过程是以文件夹递归迭代的形式进行的 扫描过程仅读取合法的java文件 扫描时仅读取spring可识别的注解 扫描结束后会将可识别的有效注解转化为spring对应的资源加入IoC容器 注意 无论是注解格式还是XM

2020-09-27 14:38:51 22

原创 Spring 框架和 Mybatis 框架的整合案例

Spring 框架配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:con

2020-09-27 14:24:53 15

原创 Spring框架01

这里我们首先介绍一下什么是框架: 框架是一个封装了很多功能和模块的程序的半成品。可以理解为是一个由很多工具类组合而成的一个工具包。 什么是Spring框架呢? Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架。是Java开发的灵魂框架。 Spring有两大内核: IOC(Inverse Of Control:控制反转) AOP(Aspect Oriented Programming:面向切面编程) Spring功能: IOC:控制反转,其实就是把对象的创建

2020-09-27 14:15:11 22

原创 Ajax

1、AJAX介绍 AJAX(Asynchronous JavaScript And XML):异步的 JavaScript 和 XML。 本身不是一种新技术,而是多个技术综合。用于快速创建动态网页的技术。 一般的网页如果需要更新内容,必需重新加载个页面。 而 AJAX 通过浏览器与服务器进行少量数据交换,就可以使网页实现异步更新。也就是在不重新加载整个页 面的情况下,对网页的部分内容进行局部更新。 2、原生JS实现AJAX(了解) 后台代码 package com.itheima.test; imp

2020-09-13 22:00:56 5

原创 jQuery开发

1、jQuery介绍 jQuery是一个JavaScript库。 所谓的库,就是一个JS文件,里面封装了很多预定义的函数,比如获取元素,执行隐藏、移动等,目的就 是在使用时直接调用,不需要再重复定义,这样就可以极大地简化了JavaScript编程。 2、jQuery入门小结 jQuery是一个JavaScript库。 说白了就是定义好的一个S文件,内部封装了很多功能,可以大大简化我们的JS操作步骤。 要想使用,必须要引入该文件。 jQuery的核心语法 $(); 3、jQuery基本语法 (1)j

2020-09-13 21:45:21 21

原创 Mybatis基于注解的开发与多表查询

1、注解开发 注解可以简化开发操作,省略映射配置文件的编写 (1)常用注解 @Select("查询的SQL语句"):执行查询操作注解 @Insert("新增的SQL语句"):执行新增操作注解 @Update("修改的SQL语句"):执行修改操作注解 @Delete("删除的SQL语句"):执行删除操作注解 (2)注解配置映射关系 <mappers> <package name="接口所在的包"/> </mappers> 2、注解多表操作 (1)一对一多表操

2020-09-13 21:18:13 16

原创 Mybatis进阶

1、接口代理方式-实现规则 传统方式实现Dao层,我们既要写接口,还要写实现类。而MyBatis框架可以帮助我们省略编写Dao层接 口实现类的步骤。程序员只需要编写接口,由MyBatis框架根据接口的定义来创建该接口的动态代理对象。 实现规则 映射配置文件中的名称空间必须和Dao层接口的全类名相同。 映射配置文件中的增删改查标签的id属性必须和Dao层接口的方法名相同。 映射配置文件中的增删改查标签的parameterType属性必须和Dao层接口方法的参数相同。 映射配置文件中的增删改查标签的resu

2020-09-06 23:01:10 21

原创 Mybatis框架之基础入门

这里首先介绍一下ORM思想,因为Mybatis正是使用了这种思想进行创建的。 1、ORM思想介绍 ORM:对象关系映射 指的是持久化数据和实体对象的映射模式,为了解决面向对象与关系型数据库存在的胡不匹配的现象的技术。 映射规则 数据表——>类 表字段——>类属性 表数据——>对象 2、Mybatis介绍 MyBatis是一个优秀的基于Java的持久层框架,它内部封装了JDBC。使开发者只需要关注SQL语句本身, 而不需要花费精力去处理加载驱动、创建连接、创建执行者等复杂的操作。

2020-09-06 22:40:40 16

原创 JDBC之数据库连接池

1、概念 数据库连接池 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接, 而不是再重新建立一个。这项技术能明显提高对数据库操作的性能。 2、开源数据库连接池的使用 (1)C3P0数据库连接池使用步骤 导入jar包。 导入配置文件到src目录下。 创建C3PO连接池对象。 获取数据库连接进行使用。 注意:C3PO的配置文件会良动加载,但是必须叫c3p0-config.xml或c3p0-config.properties。 c3p0-config.xml <

2020-09-06 22:24:06 16

原创 JavaWeb之JDBC

1、JDBC的概念 JDBC( Java DataBaseConnectivity java数据库连接)是一种用于执行SQL语句的JavaAPl,可以为多种关系型数据库提供统—访问,它是由一组用ava语言编写的类和接口组成的。 jdbc的本质: 其实就是java官方提供的一套规范(接口)。用于帮助开发人员快速实现不同关系型数据库的连接! JDBC快速入门 package com.itheima.jdbc; import java.sql.*; public class JDBCTest01 {

2020-09-06 22:21:35 14

原创 Listener 监听器

1、监听器介绍 观察者设计模式,所有的监听器都是基于观察者设计模式的。 三个组成部分 事件源︰触发事件的对象 事件∶触发的动作,封装了事件源 监听器∶当事件源触发事件后,可以完成功能 在程序当中,我们可以对:对象的创建销毁、域对象中属性的变化、会话相关内容进行监听。 Servlet规范中共计8个监听器,监听器都是以接口形式提供,具体功能需要我们自己来完成。 (1)配置监听器 <!--配置监听器--> <listener> <listener-class>

2020-08-30 22:45:02 17

原创 Filter 过滤器

1、过滤器介绍 在程序中访问服务器资源时,当一个请求到来,服务器首先判断是否有过滤器与请求资源相关联,如果有, 过滤器可以将请求拦截下来,完成一些特定的功能,再由过滤器决定是否交给请求资源。如果没有则像之前 那样直接请求资源了。响应也是类似的。 过滤器一般用于完成通用的操作,例如∶登录验证、统一编码处理、敏感字符过滤等等。 2、Filter介绍 Filter是一个接口,如果想实现过滤器的功能,必须实现接口! (1)核心方法 方法 说明 void init(FilterConfig c

2020-08-30 22:38:22 19

原创 Session

HttpSession介绍 HttpSession:服务器端会话管理技术。 本质也是采用客户端会话管理技术。 只不过在客户端保存的是一个特殊标识,而共享的数据保存到了服务器端的内存对象中。 每次请求时,会将特殊标识带到服务器端,根据这个标识来找到对应的内存空间,从而实现数据共享。 是Servlet规范中四大域对象之一的会话域对象。 作用∶可以实现数据共享 域对象 功能 作用 ServletContext 应用域 在整个应用之间实现数据共享 ServletRequest 请求域 在当前

2020-08-30 22:20:24 17

原创 Cookie

会话介绍 会话:浏览器和服务器之间的多次请求和相应。 会话过程中产生的一些数据,可以通过会话技术(Cookie 和 Seesion)保存 Cookie 客户端会话管理技术 把要共享的数据保存到客户端 每次请求时,把会话信息带到服务器端,从而实现多次请求的数据共享 作用: 可以保存客户端访问网站的相关内容,从而保证每次访问时先从本地缓存中获取,提高效率。 Cookie属性 属性名 作用 是否重要 name Cookie的名称 必须属性 value Cookie的值 必须属性 p

2020-08-30 22:12:49 20

原创 请求(Request)和响应(Response)

请求——Request 请求对象的介绍 请求:获取资源。在BS架构中,就是客户端浏览器向服务端发出询问。 请求对象:就是在项目当中用于发送请求的对象。ServletRequest 、HttpServletRequest 请求对象常用方法 获取各种路径 String getContextPath(); //获取虚拟目录名称 String getServletPath(); //获取Servlet映射路径 String getRemoteAddr(); //获取访问者ip地址 String

2020-08-23 21:03:56 60

原创 响应(Response)

响应对象介绍 常见状态码(了解)(可以去网上百度) 字节流响应消息常用方法 ServletOutputStream getOutputStream(); //获取响应字节输出流对象 void setConteneType("text/html;charset=UTF-8"); //设置响应内容类型,解决中文乱码问题 字符流响应消息常用方法 PringWriter getWriter(); //获取响应字符输出流对象 void setContentType("text/html;ch

2020-08-23 21:03:05 78

原创 ServletConfig 、ServletContext

ServletConfig介绍 ServletConfig常用方法 String getInitParameter(String name); //根据参数名称获取参数的值 Enumeration<String> getInitParameterNames(); //获取所有参数名称的枚举 String getServletName(); //获取Servlet的名称 ServletContext getServletContext(); //获取ServletConte

2020-08-23 20:44:43 44

原创 Servlet

Servlet 介绍 Servlet是运行在Java服务器端的程序,用于接收和相应来着客户端基于HTTP协议的请求 如果想实现Servlet的功能,可以通过实现javax.servlet.Setvlet接口或者继承它的实现类。 核心方法:servlet(),任何客户端的请求都会经过该方法。 Servlet 入门案例 package com.itheima.servlet; import javax.servlet.GenericServlet; import javax.servlet.Servle

2020-08-23 18:50:45 27

原创 MySQL的下载、安装和删除

下载 下载(可以直接到第四步点击链接,进入下载页面,进行下载) 第一步,访问MySQL官方网站(https://www.mysql.com/),首页点击 DOWNLOADS 第二步,点击 MySQL Community(GPL) Downloads,进入MySQL社区进行下载 第三步,选择 MySQL Community Server (MySQL社区服务) 第四步,这里可以看到现在将要下载的MySQL版本号,选择对应的操作系统,本人的系统为 Windows 10,点击下方的 Down

2020-08-18 21:57:21 58

原创 枚举

概述 为了间接的表示一些固定的值,Java就给我们提供了枚举 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内 格式 public enum s { 枚举项1,枚举项2,枚举项3; } 注意: 定义枚举类要用关键字enum // 定义一个枚举类,用来表示春,夏,秋,冬这四个固定值 public enum Season { SPRING,SUMMER,AUTUMN,WINTER; } 特点 所有枚举类都是Enum的子类 我们可以通过"枚举类名.枚举项名称"去访问指定的枚举

2020-08-11 00:31:27 63

原创 XML

概述 可扩展的标记语言。XML文件是由很多标签组成的,而标签名是可以自定义的。 作用 用于进行存储数据和传输数据 作为软件的配置文件 规则 标签由一对尖括号和合法标识符组成 标签必须成对出现 特殊的标签可以不成对,但是必须有结束标记 标签中可以定义属性,属性和标签名空格隔开,属性值必须用引号引起来 标签需要正确的嵌套 代码 <?xml version="1.0" encoding="UTF-8" ?> <student> <!--第一个学生信息-->

2020-08-11 00:31:15 30

原创 Lock锁

Lock中获得锁和释放锁的方法 void lock(); //获得锁 void unlock(); //释放锁 Lock是接口,不能直接实例化,采用它的实现类ReentrantLock来实例化。 构造方法 ReentrantLock(); //创建一个ReentrantLock的实例 注意 Lock对象本身,可以看作是当前同步块的锁对象,需要保证唯一 如果在unlock()方法执行之前,停止了代码的运行,有可能锁对象不会被释放 unlock()一般需要放在finally模块中 死锁 线程死锁是

2020-08-11 00:25:42 30

原创 Log4j

概述 Log4j是Apache的一个开源项目 通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件等位置 我们也可以控制每一条日志的输出格式 通过定义每一条日志信息的级别,我们能够更加细致的控制日志的生成过程 可以通过一个配置文件来灵活的进行配置,不需要修改应用的代码 Log4j开发流程 导入Log4j的相关jar包 编写Log4j的配置文件 # 配置根Logger 指定日志信息输出地址——my,fileAppender log4j.rootLogger=debug,my,file

2020-08-11 00:22:38 22

原创 Junit单元测试

概述 Junit是一个Java编程语言一个非常重要的单元测试工具 特点 开放源代码 提供注解来识别测试方法 提高代码编写速度,提高质量 优雅简洁,花费时间少 在一个条中显示进度,运行良好是绿色,运行失败是红色 使用基本流程 将Junit的jar包导入到工程中 编写测试方法,该测试方法必须是公共的无参数无返回值的非静态方法 在测试方法上使用@Test注解标注该方法是一个测试方法 选中测试方法右键通过Junit运行该方法 常用注解 @Test 表示测试该方法 @Before 在测试的方法前运行

2020-08-11 00:19:43 20

原创 注解

注解的作用 @Override //描述子类重写父类的方法 @Deprecated //描述方法过时 @SuppressWarnings //压制警告 注解和注释的区别 注释:给程序员看的 注解:给编译器看的(让虚拟机看到程序中的注解,注解代表程序的一些特殊功能) 自定义注解(了解) 格式 public @interface 注解名{ public 数据类型 属性名() default 默认值; } 注意 public可以省略. "default 默认值"可以省略 数据类型可以是

2020-08-11 00:16:27 50

原创 网络编程

概述 在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。 网络编程三要素 IP地址 设备在网络中的地址,是唯一的标识 端口 应用程序在设备中唯一的标识 协议 数据在网络中的传输的规则,常见的协议有UDP协议和TCP协议 InetAddress的使用 此类表示Internet协议地址 实现对IP地址的获取和操作 InetAddress inetAddress = InetAddress.getByName("XXX的Windows"); // 获取主机名 String hostN

2020-08-11 00:13:37 22

原创 类加载器 && 反射

类加载器 类加载时机 创建类的实例(对象) 调用类的类方法 访问类或者类接口的类变量,或者为该类变量赋值 使用反射方式来强制创建某个类或者接口对应的java.lang.Class对象 初始化某个类的子类 直接使用java.exe命令来运行某个主类 类加载器的分类 启动类加载器 :虚拟机内置的类加载器 平台类加载器:负责加载JDK中一些特殊的模块 系统类加载器:负责加载用户类路径上所指定的类库 代码实例 package com.itheima.cla; public class Demo01 {

2020-08-11 00:04:16 46

原创 泛型

泛型 泛型的好处 把运行时期的问题提前到了编译期间。 避免了强制类型转换。 泛型可以使用的地方 类后面,泛型类。 方法申明上,泛型方法。 接口后面,泛型接口。 总结 如果一个类的后面有,表示这个类是一个泛型类。 创建泛型类的对象时,必须要给这个泛型确定具体的数据类型。 泛型方法 格式 修饰符 <类型> 返回值类型 方法名(类型 变量名){} public <T> void method(T t){} 泛型接口 格式 修饰符 interface 接口名<类型>

2020-08-10 23:54:42 28

原创 多线程(二)

多线程 线程的六种状态 新建状态——创建线程对象 就绪状态——start方法 运行状态——run方法 阻塞状态——无法获得锁对象 等待状态——wait方法 死亡状态——全部代码运行完毕 线程池 线程池,就是存储线程的池子。线程池可以创建和回收线程。 创建线程池的两种常用方式 //创建一个默认线程池(内部最多有int最大值个线程) ExecutorService es = Executors.newCachedThreadPool(); //创建一个线程池(内部线程最大数量为num) Executor

2020-08-10 23:50:42 33

原创 多线程(一)

多线程 概念 并发执行多个线程。 特点 多个线程之间交替执行。 每个线程执行的时间和顺序是随机的。 并发、并行 并发:在同一时刻,多个指令在多个CPU上同时执行。 并行:在同一时刻,多个指令在单个CPU上交替执行。 进程、线程 进程:操作系统中正在运行的一个应用程序。 线程:应用程序中做的事情。 多线程的实现方式 继承Thread类的方式进行实现 定义一个MyThread类继承Thread类; 在MyThread类中重写run()方法; 创建MyThread类的对象; 启动线程。 注意 为

2020-08-10 23:41:46 51

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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