自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 前端发送含参Get请求浏览器报“status“: 400, “error“: “Bad Request“错误

1. 错误描述1.1 后端报错HttpMessageNotReadableException: Required request body is missing1.2 浏览器报错“status“: 400, “error“: “Bad Request“2. 原因当前端使用Get请求方式发送含参请求时,后端Controller接收参数时不同使用@RequesrBody注解。而应该使用如下方式: @GetMapping("/info") @ApiOperation("通过用户toke

2022-05-07 14:44:33 2100

原创 七大设计原则

1. 开闭原则1.1 定义对修改关闭,对扩展开放。含义:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。1.2 类图2. 里氏替换原则2.1 定义继承必须确保超类所拥有的性质在子类中仍然成立。里氏替换原则主要阐述了有关继承的一些原则,也就是什么时候应该使用继承,什么时候不应该使用继承,以及其中蕴含的原理。里氏替换原则是继承复用的基础,它反映了基类与子类之间的关系,是对开闭原则的补充,是对实现抽象化的具体步骤的规范。里氏替

2022-03-29 18:18:17 171

原创 (三)行为型设计模式

1. 策略模式1.1 问题背景分析在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。如果使用多重条件转移语句实现(即硬编码),不但使条件语句变得很复杂,而且增加、删除或更换算法要修改原

2022-03-29 18:17:34 542

原创 (二)结构型设计模式

1. 适配器模式1.1 定义将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。对象适配器应用较多。1.2 结构与实现类适配器模式:可采用多重继承方式实现,Java不支持多继承,但可以定义一个适配器类来实现当前系统的业务接口,同时又继承现有组件库中已经存在的组件。对象适配器模式:可釆用将现有组件库中

2022-03-29 18:17:04 412

原创 (一)创建型设计模式

1. 工厂模式定义:定义一个创建产品对象的工厂接口,将对象的创建工作推迟到具体子工厂类当中,使其满足创建与使用相分离这一特点。1.1 简单工厂模式1.1.1 问题背景分析现实生活中,原始社会自给自足(没有工厂),农耕社会小作坊(简单工厂,民间酒坊),工业革命流水线(工厂方法,自产自销),现代产业链代工厂(抽象工厂,富士康)。我们的项目代码同样是由简到繁一步一步迭代而来的,但对于调用者来说,却越来越简单。在日常开发中,凡是需要生成复杂对象的地方,都可以尝试考虑使用工厂模式来代替。1.1.2

2022-03-29 18:16:17 630

原创 软件项目管理复习

1. 软件项目管理概述1.1 项目管理的知识领域软件集成管理软件进度管理软件范围管理软件成本管理软件质量管理软件风险管理软件沟通管理软件资源管理软件采购管理软件干系人管理1.2 过程管理在软件项目中的重要性软件产品不同于普通产品,它是高度逻辑化的聚合体;因此软件产品质量的好坏不受物理实体的影响,而仅仅受生产工艺的影响,生产工艺在软件开发中的术语就是软件过程,因此软件的过程管理对软件产业的发展非常重要。软件过程管理有助于软件组织对过程资产进行有效管理,使之可以重用于实际项目

2021-06-15 19:42:49 1312 3

原创 算法设计与分析——分支限界法

文章目录1. 分支界限法1.1 基本思想1.2 搜索策略1.3 队列式1.4* 优先队列式2. 典型案例2.1 装载问题2.1.1 问题描述2.1.2 约束函数和限界条件2.1.3 队列式分支界限法求解(案例解释)2.1.4 案列二2.1. 代码实现3. 回溯法与分支限界法异同c++中 friend的用法1. 分支界限法1.1 基本思想对有约束条件的最优化问题的所有可行解(数目有限)空间进行搜索。该算法在具体执行时,把全部可行的解空间不断分割为越来越小的子集(称为分支),

2021-06-09 16:48:19 4607

原创 算法设计与分析——回溯算法

文章目录1. 回溯算法1.1 基本思想1.2 回溯法与分支界限法的异同2. 典型案例2.1 装载问题2.1.1 问题描述2.2 .2 约束函数与上界函数2.2.3 举例解释2.2.4 复杂度2.2 n皇后问题2.2.1 思路总结2.2.2 代码实现1. 回溯算法1.1 基本思想回溯法的基本做法是搜索,在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层

2021-06-09 16:46:52 503

原创 算法设计与分析——贪心算法

文章目录1. 贪心算法1.1 定义1.2 基本要素1.3 基本思想1.4 特点2. 典型案例2.1 背包问题(物品可分割)2.1.1 问题描述2.1.2 问题转换2.1.3 问题求解步骤2.2 背包问题与0-1背包问题的区别2.3 贪心算法可以求解背包问题,那么能不能用贪心算法求解0-1背包问题?若不能,为什么?去反例说明。2.4 最优装载问题2.4.1 问题描述2.4.1 问题转化2.4.2 贪心选择策略2.4.2 代码实现1. 贪心算法1.1 定义在求解最优解问

2021-06-09 16:46:19 2472

原创 算法设计与分析——动态规划

文章目录1. 动态规划1.1 基本思想1.2 设计步骤1.3 两个要素(特征)1.4 动态规划实质2. 典型算法案例2.1 最长单调递增子序列2.1.1 问题描述2.1.1 递归方程2.1.2 代码实现2.2 0-1背包问题2.2.1 问题描述2.2.1. 递归方程2.2.3 复杂度2.2.4 代码实现2.3 矩阵连乘积问题2.3.1 问题描述2.3.2 建立递推公式2.3.3 复杂度2.3.3 代码实现3. 动态规划与分治法区别4. 动规与分支对问题进行分解时各

2021-06-09 16:44:23 1508 1

原创 算法设计与分析——递归与分治策略

文章目录1. 递归算法1.1 特点1.2 优缺点2. 分治策略2.1 基本思想2.2 适用的条件2.3 求解过程(步骤)3. 典型算法案例3.1 二分搜索3.1.1 非递归实现3.1.1 递归实现3.2 棋盘覆盖问题1. 递归算法1.1 特点1.2 优缺点优点:结构清晰、可读性强缺点:运行时效率较低,耗费较多的时间、空间资源2. 分治策略2.1 基本思想分治策略的基本思想是将一个规模为n的问题分解为k个较小的子问题,这些子问题互相独立,并且和原问题相同,递归

2021-06-09 16:41:23 2631

原创 算法设计与分析——概述(算法的复杂度)

一、如何求算法的时间复杂度其实就是计算最深层次执行语句的执行次数,根据循环结束条件计算出语句的执行次数,该执行次数与n有关,得出一个含n的多项式,取最高次项,其他舍去。

2021-06-09 16:39:55 133

转载 struts2国际化解决中文乱码问题

在学习struts2的国际化时自己试了一下实例发现中文出现了乱码,国际化文件与页面如下图:网上有方法说使用jdk的native2ascii.exe对文件转码,然而这个方法并不简单native2ascii -encoding UTF-8 GlobalMessages.properties NewGlobalMessage.properties实际上还是文件idea对文件编码的问题,在Settings中改一下设置就好,方法如下:File -> Settings -> Editor -&g

2020-10-05 10:38:58 377 1

原创 Spring Boot(六)springboot模板引擎——Thymeleaf

一、Thymeleaf简介  Thymeleaf 是一个流行的模板引擎,该模板引擎采用 Java 语言开发 模板引擎是一个技术名词,是跨领域跨平台的概念,在 Java 语言体系下有模板引擎,在 C#、PHP 语言体系下也有模板引擎,甚至在 JavaScript 中也会用到模板引擎技术,Java 生态下的模板引擎有 Thymeleaf 、Freemaker、Velocity、Beetl(国产) 等。  Thymeleaf 对网络环境不存在严格的要求,既能用于 Web 环境下,也能用于非 Web 环境下。在

2020-08-25 15:58:37 406

原创 SpringBoot(五)springboot项目中使用拦截器——实现对未登录请求的拦截

一、创建Controllerpackage cn.krain.springboot.web;import cn.krain.springboot.model.User;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.Response

2020-08-25 14:23:12 2001 1

原创 SpringBoot(四)关闭和修改SpringBoot程序启动Logo

一、SpringBoot程序启动默认logo二、关闭logo  修改SpringBoot主程序。package cn.krain.springboot;import org.springframework.boot.Banner;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootAp

2020-08-25 11:03:21 365

原创 SpringBoot(三)springboot集成Dubbo——注解式配置

一、Dubbo  dubbo初体验,小白级入门案例  在SpringBoot中集成Dubbo,无需再写繁琐的xml配置文件,直接使用注解及其属性进行配置即可。二、创建Interface、Provider、Consumer三个工程interface工程只需要是一个普通的maven java工程即可,provider和consumer需要是SpringBoot工程。三、在Provider、Consumer工程的pom文件中加入依赖pom.xml<dependencies>

2020-08-24 23:11:25 1583

原创 Dubbo(一)dubbo初体验,小白级入门案例

Dubbo一、简介1、dubbo是一个轻量级Java RPC框架,用于分布式系统的开发RPC全称Remote Procedure Call,远程过程调用。是一种进程间的通信方式,是一种技术思想,而不是规范。它允许程序调用另一个地址空间(网络的另一台机器上)的过程或函 数,而不用开发人员显式编码这个调用的细节。调用本地方法和调用远程方法一样。分布式系统分布式系统是若干独立计算机(服务器)的集合,这些计算机对于用户来说就像单个相 关系统,分布式系统(distributed system)是建

2020-08-24 23:06:33 288

原创 Spring Boot(二)springboot集成redis,实现基本的存取值

一、在pom文件中加入redis依赖<!--springboot项目集称redis依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>二、启动Redis三、关闭防火墙,使用图形界面工具连接到

2020-08-24 22:01:14 2101

原创 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:***Fatal error compiling无效的标记

问题描述:idea中使用maven命令打包项目时出错。Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project 036-springboot-war: Fatal error compiling: 无效的标记: -parameters -> [Help 1]解决方法:  产生该错误的原因是jdk版本不一致造成的;需要保证Proje

2020-08-19 17:39:57 544

原创 SpringBoot基础知识入门总结(持续更新中......)

SpringBoot基础知识总结一、Spring Boot框架核心配置文件——application.properties  application.properties可用于设置内嵌tomcat端口、设置上下文根(访问路径)、自定义参数、配置数据库连接信息、声明mapper文件路径等。# 一、用于设置内嵌tomcat端口server.port=8081# 二、用于设置上下文根(访问路径)server.servlet.context-path=/springboot# 三、自定义参数na

2020-08-16 21:44:49 244

原创 Redis数据库五大数据类型的增删改查实例——使用Jedis实现

一、运行环境该实例在maven中运行。在pom文件中加入jedis依赖:<!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.3.0</ver

2020-08-14 16:52:11 303

转载 安装redis出现cc adlist.o /bin/sh:1:cc:not found的解决方法

错误信息:安装redis时 提示执行make命令时提示 CC adlist.o /bin/sh: cc: 未找到命令问题原因:这是由于系统没有安装gcc环境,因此在进行编译时才会出现上面提示,当安装好gcc后再进行编译时,上面错误提示将消失。解决方法:安装gcc[ckl@localhost ~]$ yum -y install gcc automake autoconf libtool make安装c编译器并编译[root@bogon redis-3.2.0]# makecd src

2020-08-11 21:12:54 3666

原创 XShell连接Linus虚拟机时,SSH服务器拒绝了密码

在虚拟机中以root用户身份登录即可。

2020-08-11 17:06:52 157

原创 Zookeeper启动报错:Exception in thread “main“java.lang.Unsupp ...... Unsupported major.minor version 52.0

错误信息:Exception in thread “main” java.lang.UnsupportedClassVersionError: org/apache/zookeeper/server/quorum/QuorumPeerMain : Unsupported major.minor version 52.0解决方法:  出现该错误是由于jdk版本所导致的,version 52.0需要使用jdk1.8以上版本(包含1.8),因此需要更换系统的jdk到1.8以上版本即可解决。...

2020-08-10 14:04:06 1678

原创 Spring中自定义监听器——实现数据字典

Spring中自定义监听器——实现数据字典一、JavaWeb中监听器类型  JavaWeb中共有三种监听器,分别是ServletContextListener,HttpSessionListener,ServletRequestListener;他们分别对应的作用域是Application、Session、Request,实现各自类型的接口即可实现监听器的创建。二、使用方式(ServletContextLisenter为例)package cn.krain.crm.web.listener;/*

2020-08-02 18:59:54 637 4

原创 No bug(一)org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping ...

错误描述:org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI [*.do(请求地址)] in DispatcherServlet with name ‘中央调度器名称’错误分析:发生该错误的原因是由于Spring没有成功创建对应的controller类对象。之所以没有成功创建对应的controller类对象是因为未成功指定controll

2020-07-29 19:44:59 3101

原创 SpringMVC(二)SpringMVC处理Web请求、获取返回值

一、注解@Controller作用:用于创建控制器对象。该对象能够处理Web请求。位置:该注解位于类名上方。@Controllerpublic class MyController {}@RequestMapping作用:请求映射,用于将指定请求绑定到指定方法上,该方法用于处理对应请求。属性:value:设置请求的url,值唯一;method:设置提交请求的方式(取值为get/post)位置:该注解位于方法名上方。@RequestMapping(value = "/some.d

2020-07-23 15:19:37 331

原创 SpringMVC(一)搭建第一个SpringMVC实例

一、SpringMVC概述  SpringMVC也叫Spring Web MVC,数据Spring框架的一部分,在Spring3.0之后发布。SpringMVC优点基于MVC架构,分工明确,能够解耦合SpringMVC是轻量级的,jar很小,不依赖特定的接口和类作为Spring框架的一部分,能够使用Spring的Ioc、Aop,方便整合Struts、Mybatis、Hiberate等其他框架。二、第一个SpringMVC实例实现功能::用户提交一个请求,服务端处理器在接收到这个

2020-07-22 10:24:08 187

原创 Mybatis(六)mybatis框架之动态SQL语句

1、动态SQL  概念:动态 SQL ,即 SQL 的内容是变化的,通过MyBatis提供的各种标签对条件作出判断以实现动态拼接 SQL 语句。可以根据条件获取到不同的 SQL 语句。常用的动态 SQL 标签有<if>、<where>、<choose/>、<foreach>等。MyBatis 的动态 SQL 语句,与 JSTL 中的语句非常相似。  动态 SQL,主要用于解决查询条件不确定的情况:在程序运行期间,根据用户提交的查询条件进行 查询。提交的查询

2020-07-17 22:32:24 189

原创 Spring(四)spring整合mybatis框架

1、整合思想  使用Spring的ioc技术,把mybatis框架中的对象都交给spring创建和管理。Spring是容器,包含项目中的各种对象,例如:Service、Dao、工具类等对象。开发人员从spring中获取对象,就不用同时面对两个或多个框架,只需面对一个spring框架进行开发即可。2、实现步骤在pom文件中加入Spring依赖、Mybatis依赖、Spring和Mybayis整合依赖、druid连接池依赖等编写数据库对应实体类、接口、mapper文件、service层文件等

2020-07-16 23:32:48 133

原创 Spring(三)spring核心技术——aop

一、AOP简介  AOP是Aspect Orient Programming的缩写,即面向切面编程。基于动态代理的,可以使用jdk和cglib两种代理方式。Aspect: 切面,给你的目标类增加的功能,就是切面。像上面用的日志,事务都是切面。切面的特点:一般都是非业务方法,独立使用的。Orient:面向,对着。Programming:编程  AOP就是动态代理的规范化,把动态代理的实现步骤,方式都定义好了,让开发人员用一种统一的方式,使用动态代理。作用:在目标类不修改的情况

2020-07-16 18:10:04 283

原创 Spring(二)spring核心技术——ioc

一、Spring核心技术——IOC  IOC是Inversion of Control的缩写,即控制反转;是一种思想、理论、概念。IOC把对象的创建、管理、属性的赋值,都交给代码之外的容器实现,通过外部资源完成。使用ICO的目的就是在减少对代码改动的情况下,实现不同的功能,实现解耦合。控制:创建对象,对象的属性赋值,对象之间的关系管理。反转:把原来的开发人员管理,创建对象的权限转移给代码之外的容器实现。由容器代替开发人员管理对象。创建对象,给属性赋值。正转:由开发人员在代码中,使用new

2020-07-16 16:30:54 237

原创 Spring(一)第一个Spring实例

1、Spring框架简介  Spring出现在2002年左右,它为降低Java企业级应用开发的难度而生。它可以减轻模块之间的管理,类与类之间的管理,帮助开发人员创建对象、管理对象之间的关系。  Spring的核心技术是IOC(控制反转)与AOP(面向切面编程),它能够实现模块之间、类与类之间的解耦合。  Spring全家桶:spring , springmvc , spring boot , spring cloud2、如何学习框架知道所学框架能够做什么,它的功能掌握框架的语法,即要实现某一功

2020-07-15 17:49:04 204

原创 Mybatis(五)#{}与${}的区别与使用

在映射文件中,有两种方式可在SQL语句中引入参数的值:#{}<select id="selectMultiParam" resultType="cn.krain.domain.Student"> select * from student where name=#{myname} or age=#{myage}</select><!-- 经过Mybatis处理过后的SQL语句为: select * from student where nam

2020-07-08 23:04:32 242

原创 Mybatis(四)SQL语句中参数传递的五种方法

  通过Mybatis的使用,开发人员只需要专心提供SQL语句即可,这篇文章介绍了SQL语句中参数传递的问题。大致有以下几种方式:1. 单个参数传递//在接口中定义放法,参数形式如下//使用单个参数Student selectById(int id);<!-- 使用单个参数查询: parameterType:表示参数数据类型(可不写) 使用 #{参数名} 获取参数的值 对参数名称无要求--><select id="selectById" p

2020-07-08 22:22:17 20112

原创 Mybatis(三)动态代理方式实现增删改查

  在上一篇文章中,我们使用静态代理的方式,通过一个类来实现DAO接口从而实现增删改查;在这篇文章中,将使用动态代理的方式进行功能的实现,其原理是Java的反射机制。话不多说,先上代码为敬。更改TestMybatis文件如下:package cn.krain;import cn.krain.dao.StudentDao;import cn.krain.domain.Student;import cn.krain.utils.MybatisUtil;import org.apache.iba

2020-07-08 21:32:57 470

原创 Mybatis(二)mybatis实现增删改查(静态代理)

1、mybatis中的核心对象Resources对象  Mybatis中的一个类,用于读取mybatis的主配置文件。InputStream in = Resources.getResourceAsStream("mybatis.xml");SqlSessionFactoryBuilder对象  用于创建SqlSessionFactory对象。SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();SqlS

2020-07-08 19:21:33 236

原创 Mybatis(一)mybatis简介及配置文件

前言:作为一名在未来要从事计算机工作的在校学生,在学习任何一种知识或技术之前,我都需要先明白三个问题:为什么要学习它它有什么作用学完后对我有什么提升弄清楚以上问题后,我认为学习的效果会大大提升。1、Mybatis简介  按照mybatis官方文档的定义,MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 J

2020-07-08 12:15:09 192

原创 jQuery技术学习总结

一、jQuery简介jQuery是一个JavaScript库,它能够简化JavaScript编程。jQuery是目前最流行的JS框架。jQuery能够兼容于目前所有主流的浏览器,包括IE6。jQuery能够对HTML元素进行选取和修改、实现JavaScript动画、选取操作dom对象、绑定事件、CSS操作、Ajax请求等。二、第一个jQuery实例/* $(document):$是jQuery中的函数名称,document作为函数的参数 作用是将document对象转化为jQ

2020-07-04 12:05:44 219

maven依赖库 - maven_repository.zip

maven依赖库,里面含有较为全面的jar包,如果maven无法自动下载依赖库,可手动导入依赖库;该压缩包解压后可以直接在maven项目中指定路径使用。

2020-07-07

空空如也

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

TA关注的人

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