自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 问答 (2)
  • 收藏
  • 关注

原创 代理模式之动静态代理

代理模式之动静态代理日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…一、什么是代理模式为某一对象提供一个代理对象,代理对象可控制被代理对象完成一系列操作,并向外界暴露出代理对象,从而控制被代理对象简单理解就是中介,你想去买房子,直接找中介,中介除了能完成帮你买房子的操作还能帮你选房分析、买房流程等其他服务。二、为什么要用代理模式代理模式的优点:中间隔离:代理模式能将被代理对象和客户对象分隔开,在客户对象不能或不香直接调用被代理对象时通过调用代理对象来实现耦合度低、扩

2020-12-25 09:46:27 108

原创 一文搞懂序列化与反序列化

一文搞懂序列化与反序列化日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…一、是什么序列化:就是将对象转化成字节序列的过程。反序列化:就是讲字节序列转化成对象的过程。对象序列化成的字节序列会包含对象的类型信息、对象的数据等,说白了就是包含了描述这个对象的所有信息,能根据这些信息“复刻”出一个和原来一模一样的对象。二、为什么那么为什么要去进行序列化呢?有以下两个原因持久化:对象是存储在JVM中的堆区的,但是如果JVM停止运行了,对象也不存在了。序列化可以将对象转化成字节

2020-11-27 20:29:40 459

原创 Spring Boot优雅整合Swagger2,自动生成在线文档

Spring Boot优雅整合Swagger2,自动生成在线文档日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…一、前言现在的很多项目都是前后端分离的,后端提供接口,前端调用接口,在这个过程中一般后端会向前端提供一份接口文档,但是随着程序的调整,我们还要不断的去迭代接口文档,最后可能会搞出一堆,写起来比较耗时且在规范性上也很难要求。在这个前提下我们可以选择Swagger加入到我们的项目中。Swagger提供了很多的功能,其中Swagger UI和Swagger Inspect

2020-10-10 17:26:08 170

原创 SpringBoot定时任务和异步操作

SpringBoot定时任务和异步操作日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…一、定时任务在做业务时总会有这样的场景:在特定时间去执行某些逻辑。这其实就是定时任务的应用场景,比如:需要每月一日给用户发上月数据总结等场景。1.技术实现定时任务的技术很多Timer:JDK自带的java.util.Timer其实更类似于定时器,可实现延迟执行和按照一定频率执行,也可以指定某个时间执行,使用较少ScheduledExecutorService:也是JDK自带的,是基于

2020-08-03 22:35:08 213

原创 异常、异常处理和统一异常处理

异常、异常处理和统一异常处理日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…废话不多说,先来几个基础垫吧垫吧。一、异常顾名思义,异常就是不正常呗,这是一种现象,也是Java为我们提供的程序安全退出的通道。一旦出现异常,异常处理机制会将代码执行交给异常处理器,而不再执行原有方法。为了描述不同的这种不正常现象,我们定义了各种各样的异常类型。首先来张图:1)Thr...

2020-04-25 09:07:41 366

原创 优雅的参数校验(JSR-303的实现Hibernate-Validator)

优雅的参数校验(JSR-303的实现Hibernate-Validator)日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中......一、背景在我们平时开发中,经常会对前台传给我们的参数进行校验,如:@GetMapping("test")public String test(String id) { if (id != null &am...

2020-04-20 08:44:03 236

原创 Java爬虫-Jsoup爬取妹子图

腰酸推荐Java-Jsoup爬取妹子图日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…一、先放成果我扶了下腰,不多不多。。。二、前言背景之前一直听爬虫爬虫的,咱也不知道是啥,但都是用Python,咱也不会啊,就回个Python。后来了解到,简单的爬虫其实就是解析页面嘛,提取自己需要的资源(嘿嘿)。再后来在工作中接到了个需求里需要解析html,度娘了一下了解到了...

2020-04-08 14:06:43 396

原创 Comparable和Comparator区别和使用

一文搞定Comparable和Comparator日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中......一、Comparable(1)、定义首先Comparable是Java提供的一个接口、里面只有一个方法:/** * Compares this object with the specified object for order. Returns a ...

2020-04-05 23:58:19 157

原创 Jackson解析JSON数据教程

(Jason解析)Jackson使用教程日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…一、JSON解析我这里指的解析是:JSON和JavaObject之间的序列化和反序列化。如果你的项目进行了前后端分离,那你一定使用过JSON进行数据交互,那在后端就一定会涉及到对Json数据的解析,虽然使用SpringMvc加上@requestBody都已经帮我们解析好并映射...

2020-04-02 16:34:51 4650

原创 Java基础-枚举

枚举日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…关键字enum枚举类中的每个值都将映射到protected Enum(String name,int ordinal)构造函数上,在这里每个值的名称都会转换为一个字符串,序号表示创建的顺序每个值都是一个Enum<E extends Enum>对象可以理解为enum关键字声明的是类,里面的每个值都是对...

2020-02-18 22:20:17 89

原创 Java基础-Java8特性-Lambda表达式和Stream

Java8特性-Lambda表达式和Stream日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…Lambda表达式可以理解为:简写的函数式接口的实现。对于“函数式接口”的简化写法(和其他特性结合构成更加简洁的代码结构)函数式接口:接口中只有一个抽象方法(可以有默认方法和静态方法),为了保障只有一个抽象方法,可以在接口上添加@FunctionalInterface...

2020-02-18 11:55:53 160

原创 Java基础-多态

多态日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…一、实质(比较官方的回答)多态是指:当系统A访问系统B的服务时,系统B可以通过多种实现方式来提供服务,而这一切对于系统A而言是透明的。二、举例理解父类:动物类;子类:猫类和狗类;父类的方法cries()被两个子类重写。现在有一个功能要实现发出某种动物的叫声,动物有很多种,我们只需要要这样写:public voi...

2020-02-18 11:48:15 118

原创 Java基础-修饰符

修饰符日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…Java中的修饰符经常用到的大概有:abstract(抽象的)、static(静态的)、public(公开的)、protected(受保护的)、private(私有的)、synchronized(同步的)、volatile(受保护的)、final(不可改变的)。一、访问控制修饰符public:他可以修饰类、成员变...

2020-02-18 11:45:02 139

原创 Java基础-接口

接口日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…基础:声明接口关键字interface,实现接口关键字implements。一个类可以实现多个接口。接口里内容:1.成员变量的相关修饰符默认(必须)是public static final(由于是final其必须显示初始化赋值)2.方法默认(必须)是public abstract的3.jdk8以后增加了两种方法...

2020-02-18 11:40:39 76

原创 Java基础-方法的重载和重写

方法的重载和重写日常求赞,感谢老板。欢迎关注公众号:其实是白羊。干货持续更新中…重载:在同一个类里定义的方法只要方法名相同,修饰符、发回值和参数都可以不同,其中参数在个数、类型、顺序上必须有一个不同的重写:出现在发生继承的子类中,子类对父类方法进行重写,满足条件:除了修饰符外,方法名称、返回值和参数必须一致子类的访问权限修饰符不能小于父类的子类抛出的异常不能比...

2020-02-18 11:32:08 124

原创 shiro+自定义注解解决权限问题(毕设校园交流平台权限更正)

毕设(校园交流平台)权限修正前段毕设时间把毕设部署到了线上,果然当时懒惰没认真做权限,部署完没多久就被大佬看破了然后好吧然后我就趁今天有时间修复下。先说下现状当时为了懒省劲(大家别学我)只在user表上加了一个字段判断是否管理员身份,权限上只在部分接口上加了,现在想起来还真是漏洞百出。其实就管理员和普通用户两种角色,但由于后端权限未做全导致现在存在的问题:管理员权限泄露普通用...

2020-02-10 11:02:22 406

原创 Java异常

首先我们要知道几个关于异常的关键字:try catch finally throw throwsJava虚拟机的方法调用栈每个线程都有一个独立的方法调用栈,最新被调用的方法会被放到栈顶。那么发生异常时本方法有两种处理,一是捕获(try-catch)、二是throws。发生异常时Java虚拟机要找到能捕获该异常的catch,本方法找不到就弹出栈顶去下面的那个找,依次找下去...

2019-04-16 18:44:25 175

原创 ServletContext.getRealPath()和getResource()

他们两个都是得到项目根目录下(包括WEB-INF等文件)里面的参数:1:getRealPath(“/”)最后得到的根目录最后是\                       2:getRealPath(“.”)得到的是上一个去掉最后一个\                        其他的参数也是得到相应的路径。区别:getRealPath是得到真是路径    返回值是String       ...

2018-05-28 21:03:52 1835

原创 SmartUpload实现文件下载(单个以及批量)

首先需要前台请求后台并向后台发送所要下载的文件名称(可以通过表单或者超链接等)单个下载:1)实例化:SmartUpload su=new SmartUpload();2)初始化:su.initialize(getServletConfig(),request,response);3)下载:su.download(路径);这样下载会以默认的方式(浏览器方式)打开,要进行设置4)设置响应方式(不使用默...

2018-05-05 12:03:28 620

原创 SmartUpload实现文件的批量上传

一:第一步,引包,将jspsmartupload.jar包引入lib下。二:设计表单,注意form标签里属性设置:method=“post”enctype=“multipart/form-data”三:在servlet中的doget或dopost方法中编写代码;四:文件上传步骤:1)创建smartupload对象:SmartUpload su=new SmartUpload();2)初始化对象:s...

2018-05-03 20:35:46 506

原创 Hibernate注解方式映射

JPA:Java persistence APIJPA注解是JavaEE的标准和规范JPA是标准接口,Hibernate是实现,优先使用JPA注解。一:类级别注解1:@Entity映射实体类name属性对应数据库中的表(一般不写通过@Table写)注意:使用@Entity时必须制定实体类的主键属性。2:@Table映射实体类在数据库中的表name属性(name=“表名”)表明和实体类名相同时不用写...

2018-04-17 17:50:41 261

原创 java中常见的容器

分类Collection和Map两种接口1:Collection保存单一的元素。常用方法:add(Object o):增加;remove(Object o):删除;hasNext():判断是否还有元素;next():获取下一个元素;size():集合种元素的数量;contains(Object o):集合是否有元素o;isEmpty():判断集合是否为空;containsAll(Collectio...

2018-04-14 21:27:42 450

空空如也

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

TA关注的人

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