自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (2)
  • 收藏
  • 关注

原创 分布式事务

1、分布式事务:本地事务与分布式事务1)事务数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务拥有以下四个特性,习惯上被称为ACID特性:原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态是指数据库中的数据应满足完整性约束。除此之外,一致性还有另外一层语义,就是

2021-03-22 17:54:16 185 1

原创 分布式全文搜索服务Elasticsearch

1、ElasticSearch简介Elasticsearch,简称es,是一款开源的高扩展的分布式全文搜索服务,它可以近乎实时的检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也是使用Java开发并使用Lucene作为其核心来实现搜索的功能,但是它是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。...

2021-03-10 11:32:47 370

原创 搜索之Lucene

1、倒排索引举个例子:使用新华字典查找汉字,先找到汉字的偏旁部首,再根据偏旁部首对应的目录(索引)找到目标汉字。样例: 文档0(编号0): we like java java java 文档1(编号1): we like lucene lucene lucene (Term 词条) (Doc 文档,Freq 频率) (Pos 位置) we (0,1) (1,1) (0)(0) like (0,1) (1,1) (1)(1) java

2021-03-09 17:51:34 161

原创 MybatisPlus的简单使用

1. 概述•MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。2.快速入门2.1引入相关依赖创建maven工程,编写pom文件如下:<!-- 指定SpringBoot父工程--><parent> <groupId>org.springframework.boot</groupId> <artifactId>sp...

2021-03-08 20:06:12 408

原创 redis的简单使用

1. Redis的简介1.1NoSQL非关系型数据库概述什么是NOSQLNot Only SQL:不仅仅是SQL,指的就是非关系型数据库。以前学习过MySQL,它是关系型数据库。非关系型数据库是关系型数据库有益的补充,不能代替关系型数据库。非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。NoSQL数据库的四大分类分类 特点 代表产品 键值存储 数据一般存在内存中,读写速度快(10w/s),适合作为缓存服务

2021-03-06 18:13:14 227

原创 mysql的事务、索引

1、事务的概述事务:一批操作要么同时成功,要么同时失败事物是为了一批操作业务的正确性保证。 事务的四大特性 事务特性 含义 原子性(Atomicity) 所有的SQL操作是一个整体,不可再拆分。事务是应该是最小的执行单元。 一致性(Consistency) 事务执行前,执行后。数据库的状态应该是一致的。 如:转账前2个人总额与转换后2个人总额应该是一样的。 隔离性(Isolation) 事务是可以并发执行的,理想的情况应该是所有的事务之间不能相互影响。

2021-03-03 13:31:16 100

原创 MySQL多表操作以及三范式

1. 约束:唯一,非空,默认值唯一约束指定某一列不能出现相同的值语法在建表的时候创建create table 表名 ( 字段名 字段类型 unique)非空约束设置某列数据不能为空,必须要输入语法create table 表名 ( 字段名 字段类型 not null)默认值如果一个字段没有设置它的值,将使用默认值语法create table 表名 ( 字段名 字段类型 default 默认值)2.外键约束外...

2021-03-02 11:55:06 152

原创 springcloud之Feign,Gateway,Config配置中心组件

1、Feign:介绍与使用

2021-03-01 11:15:14 1367

原创 vue的简单使用

1、Vue简介1.1 概述 Vue (读音 /vjuː/,类似于view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库整合。另一方面,Vue 也完全能够为复杂的单页应用提供驱动。 渐进式: 可以有选择性的使用该框架的一个或多个组件,并不需要将框架的全部组件都用在应用中;当应用业务需要用到更高级的,我们后面可以再加入高级组件。 1.2 安装 方式一: 直接下.

2021-02-28 17:01:48 458 1

原创 springcloud之Eureka,Ribbon,Hystrix

1、系统架构演变1.1分布式服务架构优点: 将基础服务进行了抽取,系统间相互调用,提高了代码复用和开发效率 问题: 服务越来越多,需要管理每个服务的地址(例如,A需要调用B、C、D、E四个服务,便需要配置四个服务的地址) 调用关系错综复杂,难以理清依赖关系(上图可见) 服务过多,服务状态难以管理,无法根据服务情况动态管理(例如,A需要调用B,B采用集群,集群有三个服务B1, B2, B3,到底调用哪个服务?怎么负载均衡?如果B1宕机了A怎么知道?) 1..

2021-02-25 16:29:52 163

原创 SSM的整合

1. SSM整合的概述什么是SSM整合所谓SSM,即SpringMVC+Spring +mybatis,标准的MVC设计模式,将整个系统划分为web、service层、DAO层。Spring MVC、spring、mybatis各司其职,在整个框架中有着不同的作用。 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,主要实现业务对象管理; Spring MVC框架,通过实现MVC模式将数据、业务与展现进行分离,主要负责 请求的转发和视图管理; My

2021-02-25 13:11:11 430

原创 springmvc拦截器

拦截器:自定义拦截器什么是拦截器SpringMVC框架中的拦截器,类似于web阶段学习的过滤器(filter)拦截器可以对处理器方法执行预处理(前置增强)和执行后处理(后置增强),还有最终处理。过滤器与拦截器的区别组件 过滤器Filter 拦截器 Interceptor 来源 来源于Servlet,重量级的组件 来源于SpringMVC框架,只能用在这个框架中 拦截范围 所有的资源:Servlet,JSP,HTML 只能拦截处理器

2021-02-23 20:28:55 49

原创 springmvc(二)

1. 访问静态资源:解决方案一步骤 创建静态页面,目前可以正常访问 将web.xml中DispatcherServlet的url-pattern改成/,重启服务器tomcat 再次访问后台控制器的方法,去掉后缀名.do,可以正确访问 但所有的静态资源都访问不了 原因:也被DispatcherServlet拦截,而这个Servlet不能处理静态资源。在tomcat中专门有一个默认的Servlet用来处理静态资源。而我们配置的DispatcherServlet覆盖了默

2021-02-23 20:06:58 167

原创 SpringMVC(一)

1. SpringMVC介绍MVC模型MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种用于设计创建 Web 应用程序的模式。主要目的就是为了分离Model模型和View视图,将数据的展示和数据的存储分离,核心是控制器,降低代码的耦合度,不同于三层架构。序号 MVC 职责 1 Model(模型) 存储数据:JavaBean 与数据库进行交互 2 View(视图)

2021-02-23 17:17:13 178

原创 spring之AOP和声明式事务

1. AOP的基本概念AOP(Aspect Oriented Programming),即面向切面编程。 (OOP:Object 面向对象编程)比如去银行取款和查询余额有了AOP,你写代码时不需要把这个验证用户步骤写进去,即完全不考虑验证用户。只写取款和显示余额的业务代码。而在另一个地方,写好验证用户的代码。这个验证用户的代码就是切面代码,以后在执行取款和显示余额的时候,利用代理模式。将验证用户的功能在执行取款和显示余额前调用。代码在Spring容器中执行的时候,通过配置告诉Spring

2021-02-22 17:22:15 474

原创 springboot整合各种框架

1、SpringBoot:整合SpringMVC整合SpringMVC只需要引入: spring-boot-starter-web启动器依赖。说明: 虽然默认配置已经可以使用SpringMVC,不过我们有时候需要进行自定义配置。1.1 日志控制# 配置日志logging: level: # debug-info-warn-error cn.it: debug说明: logging.level: 是固定写法,说明下面是日志级别配置,日志相关其它配置也可...

2021-02-22 11:57:10 4752

原创 springboot原理及配置

01、SpringBoot:概述1.1 SpringBoot是什么?SpringBoot是搭建应用的脚手架,由Spring公司的核心团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突等问题得到了很好的解决。...

2021-02-22 10:49:30 296

原创 代理模式

1. 代理模式1.1 何为代理?代理是通过代理对象访问目标对象,这样可以在目标对象的逻辑进行增强,或者称之为改变。代理分为静态代理和动态代理两种。1.2为什么要代理?原因一:你可能没有目标类的源码,也就是java文件,这样你如何修改逻辑?原因二:若是直接在目标类上修改某方法逻辑,而项目中有多处都需要调用该类的该方法,会导致所有调用处的逻辑都发生改变,但假如我只想在某一处调用的地方添加自己的增强逻辑呢?2. 静态代理2.1 介绍静态代理和动态代理都是实现代理的两种方式,区.

2021-02-21 20:15:11 67

原创 Spring框架之Spring JDBC 和 IoC

1、JdbcTeamplate概述JdbcTemplate是Spring提供的一个模板类,它是对jdbc的封装。用于数据库持久层的操作,它的特点是:简单、方便。它简化了JDBC的使用,并有助于避免常见错误。它执行核心的JDBC工作流程,我们只需要写SQL语句,并且从中获取结果就可以了。JDBC中操作: 获取Connection 获取PreparedStatement 执行增删改查 查询还要获取ResultSet 处理异常:SQLException

2021-02-21 18:10:50 165

原创 Spring之IoC容器和依赖注入(2)

4. IoC容器:创建容器三种方式BeanFactory容器的类结构方式一:类路径配置文件建容器方式二:本地配置文件方式创建容器方式三:注解的方式创建容器代码package com.it.test;import com.it.service.CustomerService;import com.it.service.impl.CustomerServiceImpl;import org.junit.Test;import org.springframework.con

2021-02-20 20:40:02 165

原创 Spring之IoC容器和依赖注入(1)

1. IoC的概念本质上就是工厂模式以前以前我们是由自己主动创建一个对象,主动获取一个资源//Car是接口, 后面是实现类Car bmw = new Bmw();Car benZ = new BenZ();Car audi = new Audi();现在使用工厂模式,我们需要的对象由工厂去创建,我们不再自己创建,我们只消费对象。Car bmw = BeanFactory.getBean("bmw");Car benZ = BeanFactory.getBean("be

2021-02-20 18:00:54 454

原创 Quartz 任务调度

Quartz框架的介绍Quartz是一个完全由Java编写的开源任务调度的框架,通过触发器设置作业定时运行规则,控制作业的运行时间。其中quartz集群通过故障切换和负载平衡的功能,能给调度器带来高可用性和伸缩性。主要用来执行定时任务,如:定时发送信息、定时生成报表等等。1、Quartz使用步骤: 添加依赖 编写任务类(你要什么?) 编写Spring整合Quartz配置 启动服务 实现:1、使用Spring整合Quartz: <!--定时任

2021-02-18 15:08:52 100

原创 MyBatis逆向工程

逆向工程的简介 正向工程 : 在软件开发的过程中有些人是先设计实体类、dao最后才设计数据库,这个过程称作为正向工程。 逆向工程: 先设计数据库,然后再设计实体类、dao,这个过程称作为逆向工程。 步骤 创建项目:mybatis_generate 配置pom.xml, 添加依赖 配置Jdbc.properties 配置mybatis-generator-config.xml, 指定表及实体类路径、映射文件路径等。 编写测试类 实现1、

2021-02-18 14:33:52 103

原创 RBAC权限模型 --shiro

1、RBAC简介基于RBAC设计的目标,简化权限管理!==RBAC(全称:Role-Based Access Control)基于角色的权限访问控制==,作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予.

2021-02-18 14:33:31 889 2

原创 分页之PageHelper

介绍PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库, 例如mysql、 oracle、mariaDB、 DB2、 SQLite、Hsqldb等。使用步骤: - 设置当前页与页面大小 - 查询页面数据 - 创建PageInfo对象,并且把List对象传入第一步:添加依赖<dependency> <groupId>com.github.pagehelper</groupId&gt...

2021-02-17 16:24:54 178

原创 统一异常处理

实现项目中统一异常的配置,做到项目后台出现异常,自动跳转到错误页面。第一步:创建自定义异常类package cn.it.web.exceptions;import org.springframework.stereotype.Component;import org.springframework.web.servlet.HandlerExceptionResolver;import org.springframework.web.servlet.ModelAndView;import

2021-02-17 15:55:38 48

原创 微信扫码支付

1、微信扫码支付申请微信扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景。申请步骤:第一步:注册公众号(类型须为:服务号)请根据营业执照类型选择以下主体注册。第二步:认证公众号公众号认证后才可申请微信支付,认证费:300元/次。第三步:提交资料申请微信支付登录公众平台,点击左侧菜单【微信支付】,开始填写资料等待审核,审核时间为1-5个工作日内。第四步:开户成功,登录商.

2021-02-17 15:16:40 474 1

原创 设计购物车

对象结构CartItem购物车项对象放在domain包中 三个属性 Route route商品对象 Integer num数量 Double subTotal小计 使用@Data注解 修改getSubTotal()方法 计算结果 = 线路价格 * 数量 返回计算结果 package com.it.travel.domain;import lombok.Data;/** * 购物车每一项 */

2021-02-17 14:51:22 58

原创 面包屑导航和轮播图

步骤 $.get()方法访问route地址 发送的数据:action= findRouteByRid&rid=xx,rid从地址栏上得到 在成功的回调函数中得到Route对象,取出数据 显示在.bread_box这个div中 注:要导入<script type="text/javascript" src="js/getParameter.js"></script>代码$(function () { //显示线路详情

2021-02-17 11:33:54 287

原创 搜索功能

步骤 DAO层的编写 业务层的编写 Servlet的编写 代码Daopackage com.it.travel.dao;import com.it.travel.domain.Route;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Select;import java.util.List;/** * 线路DAO */public i

2021-02-17 10:49:21 92

原创 页面分页显示

要将所有显示在页面上的部分抽象成一个对象,这个对象封装了分页中所有的数据PageBean分成以下三类属性1. 由数据库查询:data,count2. 由用户提交:current,size3. 其它四个属性通过计算得到代码package com.it.entity;import java.util.List;/** * 分页对象 */public class PageBean<T> { /* 一共是8个属性,分成三大类: 1. 从数据库

2021-02-17 09:50:09 547

原创 文件上传

1、文件上传三要素 表单必须使用POST提交 表单必须指定enctype="multipart/form-data" 必须使用input type="file"文件域,要指定name属性 enctype="application/x-www-form-urlencoded"表单中数据以键值对的方式发送的enctype="multipart/form-data"表单分成不同的部分传递,整个表单由多个部分组成2、Servlet中上传的Part接口注:To

2021-02-17 09:35:43 201

原创 redis优化导航条举例

1、复制jedis.properties把jedis.properties文件复制到resources目录下2、编写方法:List<Category> findAll() 先查Redis缓存 判断指定的键是否存在 如果存在 通过get获取缓存中JSON字符串 将JSON字符串转为List对象 如果不存在 则查询数据库,得到List集合 将List集合转成JSON字符串,存到Redis中 关闭Jedis连接 返回List对象

2021-02-17 09:35:17 55

原创 动态SQL语句

UserDao映射文件DAO的方法update的配置方法: 使用update标签和set标签实现动态生成SQL语句 当nickname,sex,birthday,email,pic属性不为空,而且不为空串,则设置值 步骤 在resources目录下创建文件夹,注意:文件夹不是点号,而是斜杠。 在目录下创建UserDao.xml配置文件 最终部署到服务器上,这两个文件是在同一个目录下 UserDao.xml<?xml version="1.

2021-02-17 09:34:51 130

原创 个人信息回显

在左边的照片显示图片 如果${currentUser.pic}为空,则默认显示为img/photo_icon.png图片 否则取出${currentUser.pic}显示 <div class="person-photo" style="text-align: center"> <%-- 头像的显示,如果没有头像图片,显示默认的 --%> <img src="${empty currentUser.pic?'img/photo_icon.p

2021-02-16 18:10:52 124

原创 退出功能

销毁会话域的用户信息 跳转到login.jsp页面 /*退出 */protected void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //让会话销毁 request.getSession().invalidate(); //重定向 response.sendRedirect(requ..

2021-02-16 17:59:44 114

原创 验证码的处理

步骤验证码的处理 复制验证码PicCodeServlet到Servlet包下 这个Servlet生成一张图片,并且向会话域中保存了字符串 修改login.jsp上的验证码图片地址 <span><img src="code" style="cursor: pointer" id="picCode" title="看不清,点击刷新"></span><script type="text/javascript"> //点击图片,

2021-02-16 17:30:07 117

原创 自定义异常

主要是起到语义的作用package com.it.travel.exception;/** * 用户自定义异常 */public class CustomMessageException extends Exception { /** * 构造方法 * @param message 要传入的错误信息 */ public CustomMessageException(String message) { super(message.

2021-02-16 17:28:32 114

原创 BaseServlet利用反射优化方法调用

import com.fasterxml.jackson.databind.ObjectMapper;import javax.servlet.Servlet;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;i.

2021-02-16 16:31:17 77

原创 手机发送验证码

1 需求发送短信以后,再次发送短信按钮变得不可用,倒计时60秒以后才可以使用2 步骤创建按钮倒计时的方法:function countDown(count),在发送短信请求以后调用 发送短信按钮不可用 每过1秒调用1次匿名函数 匿名函数中计数减1 按钮上的文字变为:x秒后可再次发送验证码 如果计数变为0 按钮变得可用 文本变成:发送手机验证码 清除计时器 3 代码//发送短信的按钮$("#sendS...

2021-02-16 16:08:33 638

JedisUtils.zip

jedis工具类、jedis配置文件

2021-02-16

用java编写的聊天软件

本系统要求使用java技术开发。所需知识包括java程序设计语言、swing基本GUI组件、多线程编程、socket编程、集成开发环境使用eclipse。系统采用两层C/S体系结构,C端负责通过GUI与客户交互,实现注册、登陆、收发信息、退出等功能; S端是聊天系统的服务器。

2018-11-07

空空如也

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

TA关注的人

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