- 博客(27)
- 收藏
- 关注
原创 DDD领域驱动设计(Domain-Driven Design)
三层应用架构:数据 - 应用 (业务逻辑层)- 展现,通常是以数据位为起点进行数据库分析设计,服务层过重,数据模型失血,没东西.DDD分层架构的数据库等基础资源访问,采用了仓储(Repository)设计模式,通过依赖倒置实现各层对基础资源的解耦。DDD分层架构对三层架构的业务逻辑层进行了更清晰的划分,改善了三层架构核心业务逻辑混乱,代码改动相互影响大的情况。数据库模型只是数据库映射,没有相关的行为支撑,行为都被上一层 Service 给完成等了,因此是失血的领域模型;另一个重要的变化发生在。
2023-11-29 14:17:56
93
1
原创 Web错误代码大全
HTTP1xx(临时响应):表示临时响应并需要请求者继续执行操作的状态代码。100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。2xx (成功):表示成功处理了请求的状态代码。注:200代表请求成,但是这并不意味着,返回的数据也是正确的200 (成功) 服务器已...
2023-11-13 09:36:00
166
原创 Java 8 Optional特性和实践
根据Oracle Java官方文档,Optional是一个容器对象,可以包含也可以不包含非null值。Optional在Java 8中引入,目的是解决 NullPointerExceptions的问题。本质上,Optional是一个包装器类,其中包含对其他对象的引用。在这种情况下,对象只是指向内存位置的指针,并且也可以指向任何内容。从其它角度看,Optional提供一种类型级解决方案来表示可选值而不是空引用。
2023-10-30 11:04:47
83
1
原创 项目开发中遇到的问题总结
1、echarts图表问题数据库中存储结构为横向一条数据包含体重,身高,血糖血压,添加事件等数据而前端需要纵向以属性为y轴,事件为纵轴,分别产生多张表格。需要前端使用javascript进行遍历,使用到了map方法this.status = response.data.dataconsole.log(this.status)const xData = this.status.map(...
2023-10-20 11:18:00
62
原创 XSS攻击简析
什么是XSS攻击?XSS攻击又称为跨站脚本(Cross Site Scripting),XSS的重点不在于跨站点,而是在于脚本的执行。XSS是一种经常出现在Web应用程序中的计算机安全漏洞,是由于Web应用程序对用户的输入过滤不足而产生的,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。XSS攻击有哪几种类型?常见的XSS攻击有三种:反射型XSS攻击、DOM-based型XSS...
2023-10-11 15:17:00
47
原创 【转】Java字节码漫画
引言最近刷到一篇短漫画,讲的是Java语言的字节码特性,非常有趣生动。V8 引擎最初是把JavaScript编译成了机器指令,后来发现了一些弊端,转而使用了字节码。这就激起了我的好奇心,又去看了一下别的语言,发现真是不得了,大部分的语言都采用了字节码的实现方式,Java, Python,Ruby,PHP,Perl,Lua,C#,VB.NET他们虽然语法不同,但是底层都不约而同地选择了字节码...
2023-10-11 08:56:00
40
原创 【转】JS事件捕获和事件冒泡
DOM事件流(event flow )存在三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段。事件捕获(event capturing): 当鼠标点击或者触发dom事件时(被触发dom事件的这个元素被叫作事件源),浏览器会从根节点 =>事件源(由外到内)进行事件传播。事件冒泡(dubbed bubbling): 事件源 =>根节点(由内到外)进行事件传播。无论是事件捕获还是事...
2023-10-10 14:49:00
44
原创 MyBatis-Plus初次实践(附代码)
我们都非常熟悉MyBatis这一框架,可以说是非常便捷的轻量级持久层ORM框架,便于开发者们对数据库进行操作。首先要引入MyBatis的Maven依赖,如果是spring boot则可引入starter包,更加便捷。条件构造器是MyBatis-Plus功能的核心,各种条件的筛选都由条件构造器生成。一些基础的CRUD基础操作都已实现,只需要直接继承官方提供的接口即可。只选择name,age和email字段,并且以age升序排列。既然是持久层框架,那么肯定要有数据库,官网的数据库脚本如下。
2023-10-09 17:22:00
81
1
原创 【转】HTTP协议错误代码大全
HTTP 1xx(临时响应):表示临时响应并需要请求者继续执行操作的状态代码。 100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 ...
2023-10-09 09:48:00
45
原创 Spring、Redis相关知识查漏补缺
动态web页面不具有动态性 ×静态web页面不具有交互性 √事务隔离级别是数据库自带的与Spring无关 √Spring自己实现了—套与数据库无关的事务机制 ×软件框架是面向某个领域的、可复用的半成品软件 √使用软件框架的优势是开发的灵活性和扩展性更好 ×拦截器可以拦截所有请求(包括静态请求和动态请求) ×拦截器只有prehandler方法可以截断...
2023-10-08 11:39:00
32
原创 AOP相关概念明晰
AOP(Aspect Oriented Programming)面向切面编程是通过预编译和运行期动态代理实现程序功能的统一维护的一种技术是OOP的延续和有益补充,函数式编程的一种衍生范型Spring中提供了AOP的丰富支持,允许分离应用的业务逻辑与系统级服务和事务管理进行内聚性的开发横切关注点通常,这些横切关注点从概念上是与应用的业务逻辑分离的(但往往直接嵌入到应用的业务逻辑...
2023-10-07 09:47:00
38
原创 Redis数据库
Redis数据库SQL数据库缺陷常见NoSQL数据库Redis特点速度极快Redis的所有数据都是存放在内存中,这是Redis 速度快的最主要原因Redis是用C语言实现的,一般来说C语言实现的程序"距离"操作系统更近,执行速度相对会更快Redis使用了单线程架构,预防了多线程可能产生的线程切换和竞争问题数据类型丰富与很多键值对数据库不同的是,Redis中的值不仅可以是...
2023-10-06 13:03:00
33
原创 SpringMVC 异常处理
SpringMVC 异常处理异常处理类ExceptionHandlerpackage com.tobie.globalexception;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springfram...
2023-10-06 13:00:00
43
原创 SpringMVC 文件上传
SpringMVC 文件上传<!--支持文件上传--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--maxUploadSizePerFile:单个文件大小限制 maxUploa...
2023-10-06 12:53:00
88
原创 SpringMVC 拦截器
SpringMVC 拦截器<!--配置拦截器,可定义多个拦截器--><mvc:interceptors> <!--定义1个拦截器--> <mvc:interceptor> <!--用于指定拦截器匹配url--> <mvc:mapping path="/user/**"/>...
2023-10-06 12:52:00
41
原创 SpringMVC 数据校验
SpringMVC 数据校验应用程序在执行业务逻辑前,必须通过数据校验保证接收的输入数据时正确合法的.在一般情况下,应用程序的开发是分层的,不同层的代码由不同开发人员负责。很多时候,同样的数据校验会出现在不同层中,这样会导致代码冗余,为了避免这样的情况,最好是将验证逻辑和相应的域模型进行绑定,将代码校验的逻辑集中起来管理自定义数据校验注解package com.tobie.valida...
2023-10-06 12:50:00
43
原创 SpringMVC 类型转换
SpringMVC 类型转换Spring引入通用的数据类型转换系统,其定义了SPI接口和相应的运行时执行类型转换的API,提供无状态、强类型其可以在任意类型之间进行类型转换,可以用于任何需要的地方(如SpEL、数据绑定等)内置类型转换器<!--开启类型转换服务--><mvc:annotation-driven conversion-service="conversio...
2023-10-06 12:47:00
38
原创 SpringMVC入门demo
工作流程demo使用配置文件配置DispatcherServlet<?xml version="1.0" encoding="UTF-8"?><!--更新版本为4.0--><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xm...
2023-10-06 12:45:00
33
原创 自定义注解实现AOP
自定义注解AOPpackage com.log;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import...
2023-10-06 12:42:00
49
原创 正则表达式
正则表达式一、元字符元字符:即为有特定含义的字符,常见的元字符如下代码说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始(在集合字符里[^a]表示非(不匹配)的意思$匹配字符串的结束二、反义字符反义字符:多用于查找除某个字符以...
2023-10-06 12:40:00
43
原创 Spring查漏补缺(Spring基本概念,代理模式,悲观锁,乐观锁)
SpringSpring 是分层的JavaEE应用一站式的轻量级开源框架,以控制反转(Inverse of Control, loC)和面向切面编程(AspectOriented Programming,AOP)为内核,提供了表现层Spring MVC、持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术。Spring Core是Spring 的核心模块,实现 loC容器(...
2023-10-06 12:14:00
33
原创 事务隔离级别与Spring事务机制
事务隔离Read uncommitted(未授权读取、读未提交)如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。该隔离级别可以通过“排他写锁”实现。这样就避免了更新丢失,却可能出现脏读。也就是说事务B读取到了事务A未提交的数据。Read committed(授权读取、读提交)读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将...
2023-10-06 12:13:00
25
原创 调用API获取天气数据
只要是符合REST风格的API都可以简单地进行请求,并获取相应的数据。我们在开发中常用的验证码,物流信息查询,人脸识别,身份证验证等等功能都可以通过调用API进行实现,非常方便快捷。最后,提前祝大家中秋快乐!但愿人长久,千里共婵娟注:REST架构风格在Roy Fielding 博士的2000年毕业论文中被首次提出Roy Fielding 博士是HTTP协议的主要设计者Apache Web Server的作者Apache软件基金会的联合创始人。
2023-09-19 17:37:10
624
原创 Spring与MyBatis集成中遇到的问题
本次集成是在原本三层架构的Spring+JDBC项目基础上进行重构,各个DAO层实现类在ioc容器中进行bean装配,而MyBatis的映射是基于DAO层接口的,在Service层进行依赖注入时会发生冲突,所以要将实现类移除出ioc容器。在进行Spring框架于MyBatis框架集成时需要使用xml文件装配sqlSessionFactory为bean,从而自动获取sqlSession,去除@Repository注解,也即不装配实现类为bean,则只有接口和映射文件作为DAO层实现。
2023-09-12 10:09:59
410
1
原创 开启AOP后getBean方法使用报错
使用SpringAOP后如果要获取的bean实现了某个接口,则在使用getBean方法时要传入的是实现的接口的class对象。
2023-09-11 09:35:25
259
3
原创 多线程文件复制,断点继续复制
要实现断点下载,必须要记录已经复制的位置,每次继续时从上次下载的结束位置继续复制,这里将已经复制的文件位置以long类型写入一个日志文件,继续下载时每个线程从对应的日志文件位置继续复制。多线程首先要对文件进行分割,这里使用每个子线程的任务大小固定的方法,根据文件大小分配不同数量的子线程。将每个线程需要完成的任务信息,如源文件,目标文件,起始文件位置,结束文件位置,日志文件。文件过大时会生成过多子线程,故使用线程池限制正常工作线程和最大工作线程。子线程类,实现runnable接口,重写run方法。
2023-08-31 13:49:31
230
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人