- 博客(34)
- 收藏
- 关注
转载 设计模式在外卖营销业务中的实践 - 转载
介绍了领域模型到代码工程之间的转化,从DDD引出了设计模式,详细介绍了工厂方法模式、策略模式、责任链模式以及状态模式这四种模式在营销业务中的具体实现。除了这四种模式以外,我们的代码工程中还大量使用了代理模式、单例模式、适配器模式等等,例如在我们对DDD防腐层的实现就使用了适配器模式,通过适配器模式屏蔽了业务逻辑与第三方服务的交互。
2021-06-08 14:11:54
238
转载 领域驱动设计在互联网业务开发中的实践
1.以数据为驱动,查数据库-》处理数据-》前端,小系统没有复杂的业务,对象是数据的载体,没有行为。 随着业务的复杂,代码逻辑散落在大量的方法中,代码只是对数据的处理会使我们忘记代码的目的,领域驱动设计使对象包含行为,将数据和行为封装在一起,并与现实世界中的业务对象相映射。
2021-06-07 17:21:23
200
原创 String、Stringbuffer和StringBuilder
文章目录1.String2.StringBuffer3.StringBuilder4.三者区别4.1String 类型和 StringBuffer 的主要性能区别4.2字符串拼接(特别情况)StringBuffer和StringBuilder类的区别 1.String 字符串常量,字符串长度不可变。Java 中 String 是 immutable(不可变)的。 private final char value []; 用于存放字符的数组被声明为 final 的,因此只能赋值一次,不可再更改。 2.S
2021-03-19 20:21:56
297
原创 重载(编译期多态),重写(运行时多态)
多态顾名思义,是多种状态,是指方法有多种不同的状态,在编译时或运行时才可以确定具体的状态,这种使程序具有多种状态的技术就叫做多态,在面向对象语言中,接口的多种不同的实现方式即为多态。
2021-03-17 17:24:54
2769
原创 JVM的内存
文章目录1.JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 1.JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 栈区: 每个线程包含一个栈区,栈中只保存方法中(不包括对象的成员变量)的基础数据类型和自定义对象的引用(不是对象),对象都存放在堆区中 每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。 栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。 堆区: 存储
2021-03-16 09:33:44
172
原创 数据库的ACID和隔离级别
spring框架中提供的事务处理方案 ACID原则 ACID分别是atomicity,consistency,isolation和durability的缩写,表示原子性、一致性、隔离性和持久性。它是数据库系统需要的四个基本原则。ACID和数据库中事务的概念息息相关,MySQL的事务特性遵守ACID原则。 原子性(atomicity/,ætə’mɪsɪti/) 一个事务对数据库做的多个更改,要么在事务被提交时所有更改都成功,要么在事务被回滚时所有更改都撤销。 一致性(consistency /kən’sɪ
2021-03-10 09:48:06
655
1
原创 类初始化和实例初始化
1.类初始化过程 一个类要创建实例需要先加载并初始化该类 main方法所在的类需要先加载和初始化 一个子类要初始化需要先初始化父类 一个类初始化就是执行 clinit()方法 clinit方法由静态类变量显示赋值代码和静态代码块组成 从上到下执行。 只执行一次 2.实例初始化过程 实例初始化就是执行init()方法 init()方法可能重载有多个,有几个构造器就有几个init方法 init()方法由非静态实例变量显示赋值代码和非静态代码块、对应构造器代码组成 非静态实例变量显示赋值代码
2021-03-07 09:30:07
734
1
原创 SingLeton饿汉式与懒汉式
- 在内部类被加载和初始化时,才创建INSTANCE实例对象 - 静态内部类不会随着外部类加载和初始化而初始化,它要独自加载和初始化 - 因为是在内部类加载和初始化时。创建的,因此是线程安全的
2021-03-06 23:03:33
411
1
原创 volatile保证多线程DCL双端检测
进入前后判断 有隐患,指令重排,会出异常 加入volatile可以防止指令重排 指令重排只会保证单例运行的合理性,不会关心多线程语义的一致性
2021-03-06 14:24:36
365
原创 Spring AOP的重要概念
文章目录0.Spring AOP的重要概念1.通知:就是会在目标方法执行前后执行的方法1.1.1JoinPoint 对象1.1.2前置通知@Before1.1.3环绕通知@Around1.1.4后置返回通知@AfterReturning1.1.5异常通知 @AfterThrowing1.1.6后置通知@After2.定义切入点函数:应用通知进行增强的目标方法2.1直接把切入点函数作为值传递给通知类型2.2通过@pointcut2.3execution基本格式3.连接点:连接点就是可以应用通知进行增强的方法4
2021-03-05 11:28:17
684
2
原创 JAVA集合详解(一)
文章目录1.List,Map,Set存取的特点2.ArrayList、Vector、LinkedList的存储性能和特性3.ArrayList和LinkedList的区别4.HashMap和Hashtable的区别4.1继承的父类不同4.2线程安全性不同4.3key和value是否允许null值4.4内部实现使用的数组初始化和扩容方式不同4.5迭代器不同5.快速失败(fail-fast)和安全失败(fail-safe)的区别6.Iterator和ListIterator的区别6.1ListIterator
2021-03-03 16:48:07
1651
9
原创 内部锁池和等待池
Java平台中,每个对象都有一个唯一与之对应的内部锁(Monitor)。Java虚拟机会为每个对象维护两个“队列”(姑且称之为“队列”,尽管它不一定符合数据结构上队列的“先进先出”原则)
2021-03-03 11:31:15
435
3
原创 volatile关键字
volatile是java中的一个类型修饰符。它是被设计用来修饰被不同线程访问和修改的变量。如果不加入volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器 失去大量优化的机会。
2021-03-02 10:11:03
156
原创 java注解(Annotation)
目录1.描述2.定义3.元注解3.1@Retention3.2@Documented3.3@Target3.4@Inherited3.5@Repeatable4.注解的属性5.Java 内置的注解5.1 @Deprecated5.2@Override5.3@SuppressWarnings5.4@SafeVarargs5.5@FunctionalInterface6.注解的提取6.1注解与反射7.注解应用实例7.1JUnit 测试框架7.2mybatis中的@Param()注解 1.描述 官方:注解是一
2021-02-25 20:11:03
162
1
原创 mybatis获取参数的方式
目录mybatis获取参数的方式1.${}和#{}2. 不同的参数类型取值方式2.1当传输参数为单个string或基本数据类型和其包装类2.2当传输参数为JavaBean时2.3当传输多个参数时2.4当传输map参数时 mybatis获取参数的方式 1.${}和#{} ${}使用的是Statement:必须使用字符串拼接的方式操作sql,注意单引号问题 #{}使用的是Preparedstatement: 可以使用通配符操作SQL,因为在为string赋值时,可以自动加单引号,因此不需要注意单引号问题 2
2020-12-29 14:07:55
1426
原创 mybatis注解记录
目录mybatis注解有感1.了解2.利用注解开发3.分析4.mybatis执行过程 mybatis注解有感 1.了解 mybatis最初配置信息是基于 XML ,映射语句(SQL)也是定义在 XML 中的。而到MyBatis 3提供了新的基于注解的配置。不幸的是,Java 注解的的表达力和灵活性十分有限。最强大的 MyBatis 映射并不能用注解来构建 sql类型主要成分: @select() @update() @insert() @delect() 根本原因 : 解耦 , 可拓展 , 提高复
2020-12-26 23:03:04
145
1
原创 Mybatis核心配置解析
Mybatis核心配置解析 configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源) databaseIdProvider(数据库厂商标识) mappers(映射器) 1.环境
2020-12-23 15:39:35
227
原创 读 程 序 员 修 炼 之 道 --前言有感
程 序 员 修 炼 之 道–前言 1.新的思考方式 设想你在参加一个会议。 或许你在想, 这个会议没完没了, 你还不如去写程序。 而 Dave 和 Andy 会想, 他们为什么在开会, 他们想知道是否可以通过另外的方式取代 会议, 并决定是否可使某样事情自动化, 以使开会的工作推后。 然后他们就会这样去做. 开会并非是某种使他们远离编程的事情。 开会就是编程 , 并且是能够加以改善的编程。 2.注重实效的程序员 - 早期的采纳者/快速的改编者。 - 好奇。 - 批判的思考者。 - 有现实感。 - 多才
2020-12-23 09:59:48
352
1
原创 CSS盒子模型
目录CSS盒子模型1.简介2.设置边框和内容(Border,Content)3.内边距(padding)4.外边距(margin)4.1垂直外边距的重叠5.内联元素(inline)的盒子6.盒子的显示(display)7.盒子溢出(overflow)8.文档流(Normal Flow)8.1文档流定义8.2元素在文档流中的特点:8.3脱离文档流9.浮动(float)9.1浮动定义9.2浮动特点 CSS盒子模型 1.简介 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和
2020-12-22 11:31:47
313
原创 CSS常用选择器
CSS常用选择器 HTML:展示网页 CSS:美化网页 JS:动态展示网页 1.推荐软件 HBuilder 官网下载 使用教程 HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE。 2.CSS CSS (Cascading Style Sheets) 用于渲染HTML元素标签的样式。 2.1使用CSS CSS 可以通过以下方式添加到HTML中: 内联样式- 在HTML元素中使用"style" 属性 <p style="color:blue;margin
2020-12-21 16:48:11
242
原创 Mybatis增删改查
Mybatis增删改查 select id:就是对应的namespace中的方法名 resultType:Sql语句的返回值 parameterType:传入的参数 增删改需要提交事务 UserMapper.java文件 public interface UserMapper { /** * 查询全部用户 * @return */ List<User> getUserList(); /** * 根据Id查询 * @p
2020-12-20 20:33:12
208
1
原创 Mybatis的创建 (2020IDEA版)
Mybatis的创建 (IDEA版) 1.安装maven 在官网https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries 下载maven的3.6.1版本(apache-maven-3.6.1-bin.zip)。 解压 maven 压缩包至一个没有中文的路径下,并找一个位置创建仓库文件夹 修改\apache-maven-3.6.1\conf中的setting.xml文件, 配置本地仓库地址 打开idea在其中配置mave(路径选择自己maven所
2020-12-19 16:11:03
1740
8
原创 AJAX请求
目录AJAX请求什么是AJAX请求jQuery中的AJAX请求$.ajax 方法$.get 方法和 $.post 方法$.getJSON 方法表单序列化 serialize() AJAX请求 什么是AJAX请求 Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。 ajax 是一种浏览器通过 js 异步发起请求, 局部更新页面的技
2020-12-15 11:17:40
18482
原创 json的学习
json 轻量级的数据交换格式 轻量级和xml作比较 可读性 JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负。 可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML可以扩展而JSON却不能扩展的。不过JSON在Javascript主场作战,可以存储Javascript复合对象,有着xml不可比拟的优势。 编码难度 XML有丰富的编码工具,比如Dom4j、Dom、SAX等,JSON也有提供的工具。无工具的情况下,相信熟练的开发人员一样
2020-12-14 23:09:53
328
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅