- 博客(99)
- 问答 (1)
- 收藏
- 关注
原创 如何在自己的电脑上配置本地服务器,让你可以通过http的方式访问文件和图片
首先,打开控制面板,找到"程序"点击打开。找到“启用或关闭windows功能”,点击打开找到“Internet Information Services”(Internet信息服务),将它的子项及子项的子项全部勾选,点击确定。回到控制面板,将查看方式改为“大图标”或者“小图标”,找到管理工具,点击打开。进入管理工具,找到“Internet Information Services”,点击打开。进入后,将左边的目录树展开,可以看到“网站”这个文件夹,里面有一个默认的“网站”,我们也可以在“
2021-02-26 15:26:26
21572
6
原创 微信小程序入门篇
1、概述1.1 什么是微信小程序?微信小程序,简称小程序,英文名Mini Program,是一种无需下载安装即可直接使用的应用,实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。1.2 为什么是微信小程序?微信有大量的用户,在微信里开发产品更加容易触达用户;推广app或者公众号的成本太高;开发适配成本低;(以前开发app需要去适配不同的手机型号,十分繁琐,而开发小程序只需要按照小程序开发文档开发即可,微信会帮我们做好适配工作)容易小规模试错,便于快速迭代;跨平台(IOS/An
2021-02-13 20:38:41
3401
原创 读书笔记-Java编程思想-03
书中原文:在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化public class Test01 { public static void main(String[] args) { House house = new House(); }}class Window { public Window(int marker) { System.out.print
2020-12-08 12:44:38
779
原创 WebDataBinder的registerCustomEditor
我们知道,SpringMVC会自动将传递来的参数绑定到我们的controller方法的参数上,但是呢只能对基本数据类型进行绑定,如果是复杂类型比如Date的话,就显得力不从心了。这个时候,我们可以使用WebDataBinder的registerCustomEditor来注册自定义编辑器,也就是说将那些复杂类型交给我们自定义的编辑器来处理,不需要SpringMVC来做了,具体如下:实体类Userpublic class User { private String name; private
2020-12-02 10:08:48
1547
原创 认识@ControllerAdvice
@ControllerAdvice注解是一个增强版的Controller,它可以帮我们完成如下三个功能:全局异常处理全局数据绑定全局数据预处理1、全局异常处理首先,来看一下全局异常处理,创建一个SpringBoot项目,引入下列依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-st
2020-11-26 19:20:10
447
原创 读书笔记-Java编程思想-02
为什么不能通过返回值来区分重载假设我们这里有两个方法如下:void info(){}int info(){return 1;}有的时候,我们可能只是调用该方法,对它的返回值并不是很在意,那么我们可能会选择忽略它:info();那么这个时候Java又该如何区分调用的是哪一个info()...
2020-11-26 13:02:50
191
原创 读书笔记-Java编程思想-01
为什么要有重载首先,假设我们有一个方法info(),该方法是用来输出小树的信息的,但是我们希望有多种方式来调用info(),比如我想要输出小树的高度info(int height),我还想要输出小树的颜色info(color),如果对这种明显相同的概念使用不同的名字,不仅会让人很郁闷,同时日后维护也不方便;然后,我们知道,构造器的方法名强制性要求必须和类名相同,那么如果我想要以多种方式去初始化对象的话,没有重载,那该如何呢?...
2020-11-26 12:58:27
153
原创 java中的标号(标签)
标号(标签)是后面跟有冒号的标识符:label:在java中,标签起作用的唯一地方刚好是在循环语句之前,刚好表示不要在标号和循环语句之间插入其他语句:public class Test { public static void main(String[] args) { A: for (int i=0;i<10;i++){ for (int j=0;j<10;j++){ if (i==3 &a
2020-11-25 13:10:58
1905
原创 解决Springboot读取配置文件时中文乱码的问题
有的时候我们可能会在配置文件中编写自定义属性,如果属性值为中文,有可能在读取时会出现中文乱码的问题:# 自定义属性blog.author=zsblog.title=配置详解@RestControllerpublic class TestController { @Value("${blog.author}") private String author; @Value("${blog.title}") private String title; @G
2020-11-25 10:44:00
762
原创 IDEA报Error:(4, 46) java: 程序包org.springframework.boot.autoconfigure不存在问题解决
IDEA报Error:(4, 46) java: 程序包org.springframework.boot.autoconfigure不存在问题问题解决:第一步,可以尝试重新导入:第二步,如果上一步没用的话,可以打开控制台,输入mvn -U idea:idea下载未下载完的包...
2020-11-23 13:57:06
2984
原创 使用EasyPoi导出excel时如何避免导出null
使用replace将null替换为空字符串@Excel(name = "建设规模",width = 30,isImportField = "true",replace = {"大型_01","中型_02","小型_03","_null"})
2020-11-19 18:53:51
5318
3
原创 JWT的基本使用
1、什么是JWT官网介绍JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally sig
2020-11-13 17:09:11
302
1
原创 Dozer的基本使用
1、简介Dozer(http://dozer.sourceforge.net/) 是 Java Bean 到 Java Bean 的映射器,他以递归的方式将数据从一个对象复制到另一个对象。Dozer 支持简单属性映射、双向映射、隐式映射以及递归映射。使用该映射器可以很方便的在项目中进行 pojo、do、vo 之间的转换。2、入门2.1 搭建环境创建一个maven项目,导入下列依赖:<dependencies> <!-- https://mvnrepository.
2020-11-12 21:43:45
1407
1
原创 Swagger的基本使用
1、概述Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger 消除了调用服务时可能会有的猜测。Swagger 的优势支持 API 自动生成同步的在线
2020-11-12 16:30:37
457
原创 如何使用Restful发送数组到后台
后台代码:@DeleteMapping("/batch/{ids}") public Result deleteBatchIds(@PathVariable String[] ids){ ArrayList<String> idList = CollUtil.newArrayList(ids); operatorService.deleteBatchIds(idList); return ResultGenerator.genOkResu
2020-11-11 22:25:44
1766
1
原创 EasyPOI的基本使用
1、什么是EasyPOIeasypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板语言(熟悉的表达式语法),完成以前复杂的写法。2、基本使用2.1 环境搭建创建一个普通的maven项目,并引入以下依赖:<!----> <dependencies> <!--easypoi--> <de
2020-11-11 12:57:11
5329
原创 Java基础知识面试题(三)
引用1、this和super的异同不同点:this指向当前对象,用于访问当前对象的数据;而super指向当前类的直接父类对象,用于访问直接父类中的数据;this()调用的是本类的构造,而super()调用的是父类的构造;从本质上讲,this是一个指向当前对象的指针,而super是一个java关键字。相同点:this()和super()都必须出现在构造的第一行;this和super指向的都是对象,所以都无法在static环境下使用。2、static存在的主要意义(有什么用)sta
2020-11-10 13:29:17
92
原创 Java基础知识面试题(二)
引用1、&和&&的区别&&运算符表示短路与,&表示逻辑与和按位与。它们的共同点在于:当且仅当运算符左右两边的表达式都为true时,整个表达式才为true。不同的是:&在左侧表达式为false时,仍旧会计算右侧表达式的值;而&&则是只要左侧表达式为false,便不会对右侧表达式进行计算。2、final的用法修饰类:被修饰的类无法被继承;修饰方法:被修饰的方法不能被重写;修饰变量:不可变的是修饰的变量的引用,而不是引用指向的内
2020-11-07 21:09:48
73
原创 Shiro的介绍、使用和整合
1、权限的管理1.1 什么是权限管理基本上涉及到用户的系统都需要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。1.2 身份认证身份认证,就是判断一个用户是否为合法用户的过程。最简单的身份认证就是系统通过用户输入的用户名和口令,看其是否和系统存储的该用户的用户名和口令一致,从而判断该用户是否为合法用户。1.3 授权授权,即访问控制,就是控制用户可以访问哪些资源。主体通过身份认证后需要分配权限才能访问
2020-11-04 22:40:20
414
1
原创 CentOS使用vim编辑时如何快速搜索
当我们使用vim编辑文件的时候,可能会遇到文件内容篇幅过大的情况,这个时候如果想要快速定位到自己想要修改编辑的内容,可以在命令模式下敲/+你要定位的内容,刚进入时就是命令模式。比如想要修改某个文件的端口号,可以敲入/port然后回车,就可以快速定位了。...
2020-11-04 14:13:36
1475
1
原创 Hutool的简单使用
1、入门和安装1.1 简介Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带
2020-11-04 10:27:29
6809
2
原创 如何关闭Linux防火墙
关闭分两种:一种是临时关闭,在下次启动的时候又会开启systemctl stop firewalld还有一种是永久关闭,禁止开机自启动systemctl disable firewalld
2020-11-02 22:38:54
209
原创 Redis入门之基本命令、数据类型和持久化
1、什么是NOSQLNOSQL(Not Only Sql),意为不仅仅是sql,泛指非关系型数据库。2、为什么NOSQL随着互联网的兴起,传统的关系型数据库在应对动态网站,特别是超大规模、高并发的动态网站就显得力不从心了,暴露了很多难以克服的问题,如:商城网站中对商品数据的频繁查询、对热搜商品的排行统计等等,虽然可以实现这些功能,但是在性能上不容乐观,NOSQL这个技术门类的出现,很好的解决了这个问题,他告诉这个世界不仅仅是sql。3、NOSQL的四大分类3.1 键值(key-value)数据库
2020-11-02 21:52:51
492
原创 JAVA基础知识面试题(一)
参考文章1、什么时跨平台性?原理是什么?所谓的跨平台性指的是.java文件经过一次编译后,可以在不同的平台上运行。原理:.java文件编译后的字节码文件是运行在JVM上的,我们只需要安装不同系统对应的虚拟机即可。2、switch是否能作用在byte上?是否能作用在long上?是否能作用在String上?在java5以前,switch(expr)中的expr可以是byte、short、char和int,在java5时引入了enum枚举类型,expr开始支持枚举类型,到了java7时,expr开始
2020-11-02 13:29:07
210
原创 Linux的常用命令
1、Linux概述Linux是一款操作系统,免费,开源,安全,稳定,高效,在处理高并发上十分强悍,现在很多的企业级项目都会部署到Linux/Unix服务器上;Linux的读法:里尼科斯、里纽克斯、利纳克斯;Linux目前的发行版有:Ubuntu、Redhat、CentOS、deepin等等。2、Linux常用命令2.1 Linux命令的格式格式:命令 -选项 参数2.2 查看指定目录下的文件和目录查看指定目录下文件和目录(不指定就是当前目录)ls /etc查看指定目录中的文件
2020-10-30 22:19:28
626
1
原创 spring-validation数据校验
引用1、概述Java API规范(JSR 303)定义了Bean校验的标准validation-api,但没有提供实现。hibernate-validation对此提供了实现,并增加了校验注解如@Email、@Length等。对于web服务来说,为防止非法参数对业务造成影响,一般会在Controller层进行参数校验,请求参数一般分为如下两种:发送Post/Put请求,使用@RequestBody传递参数;发送Get请求,使用@RequestParam/@PathVariable传递参数。2
2020-10-24 15:56:59
961
原创 Dubbo学习笔记(一)
1、分布式基础1.1 什么是分布式系统分布式系统是若干独立计算机的集合,对于用户来说就像是一个相关系统。随着时代的发展,网站应用的规模不断扩大,常规的垂直应用架构已经无法应对,分布式服务架构和流动计算架构势在必行,但是将一个系统划分为若干个服务的话,如果服务的数量过多以及服务之间的依赖关系网太复杂的话,会在管理上造成很大的困难,这个时候急需一个治理系统确保架构有条不紊的演进。1.2 架构演进单一应用架构:当网站流量很小的时候,会选择将所用功能模块放在同一个应用内,而后打包部署到服务器上。优点
2020-10-19 21:04:12
232
原创 09-Vue之Axios的使用
Axios概述Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。其实就是用来做异步的特性从浏览器中创建 XMLHttpRequests从 node.js 创建 http 请求支持 Promise API拦截请求和响应转换请求数据和响应数据取消请求自动转换 JSON 数据客户端支持防御 XSRF使用首先进行项目搭建,创建一个Spring Boot项目,作为后台,在创建一个web项目,做前台编写后台controller@Re
2020-10-15 18:54:58
396
原创 08-Vue的插槽slot
1、插槽slot概述 先不说Vue的插槽,我们知道,我们的电脑都有USB插槽,当我们将鼠标的USB口插进去后,我们就可以使用鼠标在界面上进行点击、拖拽等;当我们将键盘的USB口插入到插槽中,我们便可以使用键盘输入文字信息。能够看出,USB插槽给我们的设备带来了可扩展性,让设备的功能更加丰富。 我们的Vue插槽的作用也是如此,我们可以给我们定义的组件预留插槽,当我们想组件显示一个按钮的时候,我们就可以放一个按钮到插槽,当我们想显示一个链接的时候,我们有可以往插槽中放超链接,这样不仅提高了可复用性,也
2020-10-15 18:51:34
153
原创 SpringDataJPA学习笔记
1、Spring Data Jpa概述Spring Data Jpa是Spring基于ORM框架、JPA规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码实现对数据库的访问和操作,推荐使用Spring Data JPA+ORM(如:hibernate)完成操作,这样在切换不同的ORM框架时提供了极大的方便,同时也使数据库层操作简单,方便解耦。SpringDataJpa、JPA和Hibernate的关系JPA是一种规范,内部由接口和抽象类构成。而我们的Hibernate是一套成熟的ORM框
2020-10-13 21:31:04
367
原创 JPA学习笔记
1、ORM思想概述:ORM(Object Relational Mapping),对象关系映射。主要目的:操作实体类对象就等同于操作数据库表。需要建立两个关系:建立实体类和数据库表之间的映射建立实体类属性和数据库表字段之间的映射不再关注: sql语句(自动创建)实现了ORM思想的框架:mybatis、hibernate2、JPA规范概述:Java Persistence API,Java的持久化API。那么,为什么会有“规范”的出现呢?拿JDBC规范来说,在出现它之前,我们都
2020-10-13 10:02:48
301
原创 07-Vue的组件化开发
16、组件化开发组件的基本使用<body> <div id="app"> <!--3.使用组件--> <my-cpn></my-cpn> <my-cpn></my-cpn> <my-cpn></my-cpn> </div> <script src="../js/vue.js"></script> <scrip
2020-10-12 19:15:52
152
原创 06-Vue高阶函数使用、表单绑定
14、js高阶函数的使用filter函数用于对数据进行过滤,它会遍历数组中的每个元素,并将其作为回调函数的参数传入,如果满足条件,则会将该元素放入新的数组,否则过滤掉,遍历完所有的元素后返回这个新数组。<script> //定义一个数组 const nums = [10,22,46,78,110,137]; //filter函数 let newNums = nums.filter(function (n) { //如果元素小于100,则将它加入新
2020-10-12 19:14:07
429
原创 05-Vue的循环遍历
1、循环遍历v-for遍历数组<body> <div id="app"> <!--不使用索引值(下标值)--> <ul> <li v-for="item in items">{{item}}</li> </ul> <!--使用下标值,下标值从0开始--> <ul> <li v-for="(item, index) in it
2020-10-12 19:10:54
815
原创 java面试题系列之异常篇(一)
1、java中异常有哪些种类 在java中异常分为:编译期异常(也叫做强制性异常)CheckedException和运行时异常(非强制性异常)RuntimeException,编译期异常是必须进行显式处理的异常,如果不处理,则会编译失败,如果可以处理,则使用try...catch,无法处理则将它抛出throw;运行时异常是程序在运行期间可能出现的问题,不一定非要处理。2、调用下面方法,得到的返回值是什么?public int getNum(){ try { int a = 1/0; r
2020-10-09 20:46:02
145
原创 java面试题系列之JavaSE语法篇(三)
1、抽象方法是否可以是静态(static)的,是否可以是本地方法(native),是否可以是synchronized?都不能。静态方法不能被重写,因为重写实现的是运行时的多态,是依赖于对象的,而静态方法是依赖于类的;我们的抽象方法需要被重写,故抽象方法不能是静态的。本地方法是由本地代码(如C)实现的,而抽象方法是没有实现的,相互矛盾。synchronized和方法的实现细节相关,而抽象方法不涉及实现细节,相互矛盾。2、阐述静态变量和实例变量的区别静态变量:是被static修饰
2020-10-08 19:28:13
188
原创 04-ES6语法、事件监听和条件判断
1、ES6语法var和let在ES6之前,我们不管是变量还是常量都使用var来定义,这种设计很不合理,存在很大的缺陷,因为它没有块级作用域的概念,什么是块级作用域呢?就是一个变量它可以作用的范围,没有块级作用域会产生什么后果呢?我们来看下面的代码:<body> <button>点击</button> <button>点击</button> <button>点击</button> <button&g
2020-10-07 21:29:02
1420
1
空空如也
oracle的pivot问题,奇了怪了
2021-11-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人