- 博客(67)
- 收藏
- 关注
原创 微服务基础
①拆分:将大而全的程序拆分为小而美的模块②独立:模块间彼此独立,独立部署,职责分明③通信:模块间使用API调用,不关心彼此实现①以专注于单一职责与功能的小型功能区为基础②利用模块化方法组合成一个大型复杂系统③各模块之间使用与语言无关的API集相互通信。
2023-05-31 19:48:04 946
原创 ThreadLocal
1.针对于工具类,给每个线程一个工具类,从2个线程到10个线程使用线程池到静态资源到加锁到引申出ThreadLocal解决线程安全及性能问题——实现initialValue()方法,不需要实现set()适用对象初始化可自由控制场景。2.针对需要在线程多个方法之间传递的参数,我们使用ThreadLocal来保存,解决参数一直传递问题——实现set,适用对象初始化不受控制场景。Thread中含有ThreadLocalMap,其中有多个ThreadLocal。2.不需要加锁,效率高。3.减少创建,节省内存。
2023-05-10 22:30:53 610 1
原创 Java ——线程池
如果不使用线程池,新建线程则属于每个任务新建一个线程,当线程数据过大时,则会导致OOM线程池的好处在于:① 加快响应速度②合理利用CPU及内存③ 统一管理批量计算任务,服务器处理请求,excel解析等开发中,超过,超过5个以上的线程使用,则可以使用线程池。
2023-05-08 21:58:47 867
原创 SpringBoot实践项目
备注:使用统一接口返回类时,返回对象使用报错:No converter found for return value of type: class com.imooc.mall.common.ApiRestResponse" ,分析后时缺少部分字段的get/set方法。d. 异常处理返回 统一返回,使用异常处理器获取异常后处理为统一返回码(这一块重点关注,使用了SpringBoot注解) => 抛出的异常直接转换为ApiRestResponse的json串。这里给出异常处理的代码,有两个重要的注解。
2023-04-03 17:20:50 517 1
原创 SpringMVC
受浏览器同源策略保护机制,当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源,就算作“跨域”。称之为 CORS,(URL头包含Access-control-* 时表明请求支持跨域)@CrosOrigin注解 ——Controller跨域注解(局部的)配置 < mvc:cors > ——SpringMVC全局跨域配置
2023-03-30 16:42:44 424
原创 Spring JDBC
事务是一种可靠的,一致的方式,访问和操作数据库的程序单元说人话:要么把事情做完,要么什么都不做,不要做一半事务依赖于数据库实现,Mysql通过事务区作为数据缓冲地带。
2022-12-22 09:44:14 443 1
原创 Spring——AOP
几个重要概念xml配置如下:利用AOP 进行方法性能筛查applicationContext.xml:methodChecker:基于注解开发SpringAOP(静态代理 是指必须手动创建按代理类的代理模式使用方式)CGLib使用代理时如果没有接口,则使用CGLib
2022-12-07 00:17:32 282
原创 框架体系——SpringIOC
Spring 全家桶,包括Spring data,springboot,springcloud等等需求:下面是普通的代码实现,将child和apple进行强关联,这就出现了一个问题,灵活性不高,如果我想修改,就必须改动源代码针对这个问题,Spring应运而生,下面我们使用Spring来实现上述逻辑Spring首先,引入Spring的依赖下面是几大重要的包接着在resources下新建applicationContext.xml,增加配置如下:然后新建SpringApplication类,看看获
2022-11-26 22:43:11 558
原创 分布式消息队列RocketMQ
RocketMQ是一个统一消息引擎、轻量级数据处理平台。RocketMQ是⼀款阿⾥巴巴开源的消息中间件。2016年11⽉28⽇,阿⾥巴巴向 Apache 软件基⾦会捐赠RocketMQ,成为 Apache 孵化项⽬。2017 年 9 ⽉ 25 ⽇,Apache 宣布 RocketMQ孵化成为 Apache 顶级项⽬(TLP ),成为国内⾸个互联⽹中间件在 Apache 上的顶级项⽬。
2022-11-21 15:53:20 193
原创 Redis
用下面的地址下载redis压缩包,本地解压,然后在解压出的文件夹路径下执行redis-server redis.windows.conf命令。进入Redis安装目录,执行./src/redis-server redis.conf,看到下面这个界面就启动成功了。修改redis.config中 daemonize yes 来启动后台启动。String最大为512mb,建议单个最大kv不超过100kb。执行 ./src/redis-cli shutdown 命令。
2022-11-21 15:47:49 369
原创 MyBatis进阶使用
一级缓存存放在当前sqlsession中,当会话结束时,缓存被清空,可能使用率不高,还会浪费内存。设置为false,代表每次取出的都是对象副本,每一次取出的对象都是不同的,这种安全性较高。表示是否使用缓存,一次返回很多数据的sql一般设置为false,代表查询结果不放入缓存。代表了缓存的清楚策略,当缓存对象达到上限后,自动触发对应算法对缓存对象进行清除。设置为true,代表返回只读缓存,每次从缓存中取出的是缓存本身,执行效率较高。代表缓存存储上限,用于保存对象或者集合(1个集合是一个对象)的数量上限。
2022-10-26 23:25:08 763
原创 Mybatis入门使用
Mybatis是优秀的持久层框架(持久=>内存数据保存到数据库中,避免数据丢失)Mybatis使用XML将SQL和程序进行解耦,便于维护Mybatis学习简单,执行高效,是JDBC延伸。
2022-10-25 23:14:08 612
原创 Java进阶——工厂模式
工厂模式是创建型模式最基础,最重要的一种设计模式工厂模式用于隐藏创建对象的细节工厂模式的核心是:工厂类(Factory)简单工厂,工厂方法与抽象工厂。
2022-10-24 17:58:01 488
原创 Lambda表达式
函数式编程是基于函数式接口并是用Lambda表达式的编程方式函数式编程中重要的理念就是将代码作为可重用数据带入到程序运行中函数式编程强调“”你想做什么”,而不是”你想怎么做”。函数式接口是有且只有一个抽象方法的接口Java中拥有大量的函数式接口,例如java.lang.RunnableJDK8后提供了一系列的函数式接口,位于java.util.function包中。
2022-10-24 17:50:17 410
原创 Java进阶——反射
Constructor对象包含了具体类的某个具体构造方法的声明。通过Constructor对象调用带参构造方法创建对象。Costructor是Java类中的构造方法的抽象。Constructor类核心方法。Method类核心方法。Field类核心方法。
2022-10-22 23:50:19 472
原创 Mysql数据库——JDBC
JDBC 全称为Java Database Connectivity,他可以使java通过程序操作关系型数据库,JDBC基于驱动程序实现与数据库的连接与操作类似电脑的USB接口,可以链接鼠标,键盘,打印机,摄像头等不同的设备,只需要通过驱动来识别判断使用属于哪一种设备,JDBC驱动程序也可以通过驱动来使得Java程序使用数据库。
2022-10-08 23:40:51 2735
原创 MYSQL——事务机制与导入导出
当我进行数据修改时,数据库首先会将数据拷贝到UNDO日志中,接着将记录修改保存在redo日志中,最后如果事务正常提交,则将redo中的数据同步到数据库数据文件中,如果出现情况回滚,则将日志文件中的数据做上标记,不再进行同步。此时就有两段sql语句,首先是更新员工表数据,然后删除部门表数据,此时为了保证数据的一致性,就需要将这两段sql放在一个事务中进行处理。由于事务并发执行所带来的各种问题,前三种隔离级别只适用在某些业务场景中,但是序列化的隔离性,让事务逐一执行,就不会产生上述问题了。
2022-09-29 00:10:45 262
原创 MYSQL介绍——数据库的增删改及常用函数
INSERT语句中可以包含子查询语句,代表把子查询的内容写入到数据表。mysql函数是指数据库将复杂一点的功能封装在函数中,供使用者使用。DATE_FORMAT()函数用于格式化日期,返回用户想要的日期格式。DATE_ADD()函数可以实现日期的偏移计算,而且时间单位很灵活。把每个员工的编号和上司的编号+1,用ORDER BY子句完成。把月收入前三名的员工底薪减100元,用LIMIT子句完成。 把10部门中,工龄超过20年的员工,底薪增加200元。 把人数超过5人的部门记录拷贝到新的部门表。
2022-09-28 20:02:46 1007
原创 MYSQL介绍——数据库查询(重点)
聚合函数在数据的查询分析中,应用十分广泛。聚合函数可以对数据求和、求最大值和最小值、求平均值等等。SUM 函数SUM函数用于求和,只能用于数字类型,字符类型的统计结果为0,日期类型统计结果是毫秒数相加。SUM函数会排除NULL值MAX函数MAX函数用于获得非空值的最大值。下面给出一个问题:查询员工最长的名字长度MIN函数MIN函数用于获得非空值的最小值。AVG函数用于获取非空值的平均数,非数字数据统计为0COUNT函数。
2022-09-28 20:01:46 1535
原创 MYSQL介绍——排序分页与索引
数据库会先按照首要排序条件排序,如果遇到首要排序内容相同的记录,那么就会启用次要排序条件接着排序。此时我们会有一个问题,就是如果按照升序或者降序排序,那么排序字段值相同的情况下,又该怎么排序呢,数据库针对这种排序字段值相同的情况,Mysql会按照主键值的大小来排序两条数据。如果不设置,那么查询的结果集是不会有排序的,如果我们想要对数据进行排序,就必须使用 ORDER BY 字句。另外limit语句有简写方式,如果LIMIT子句只有一个参数,它表示的是偏移量,起始值默认为0。例如,我执行下面这个语句时。
2022-09-28 20:00:45 611
原创 MYSQL介绍——数据库约束与范式
数据表中的每条记录都必须是唯一的,为了实现区分,通常要为表加上一个列来存储唯一标识,这个唯一属性列被称为主键列。数据表的每一列都是不可分割的基本数据项,同一列中不能有多个值,也不能存在重复的属性。唯一约束:要求字段值唯一,但是对空字段值不约束,也就是可能存在多个为空的数据。此时如果字表中存在使用父表字段,则附表无法直接删除这一个被使用的数据。(这是数据库的基本要求,不满足这一点就不是关系型数据库)依照第三范式,数据可以拆分到不同的数据表中,彼此保持关联。每列都与主键有直接关系,不存在传递依赖。
2022-09-28 19:59:43 370
原创 MYSQL介绍——数据库表创建及修改
所以精确的小数我们得用Decimal来保存,因为Decimal实际上是使用字符串来存储的,而不是使用二进制,所以不会有精度丢失的问题,而Decimal的两个参数第一个是说明整数加小数一共多少位,第二个参数表示小数位保留多少位。
2022-09-28 19:58:40 282
原创 Mysql介绍——基础知识
关系型数据库系统(RDBMS)是指使用了关系模型的数据库系统,关系模型中,数据是分类存放的,但是数据之间有关联关系。NoSQL数据库指的是数据分类存放,但是数据之间没有关联关系的数据库系统,主要用于秒杀库存,登录信息,消息通知等。SQL是用于访问和处理数据的标准的计算机语言。
2022-09-28 19:56:53 314
原创 过滤器使用
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qA2vSQj4-1662049191297)(C:\Users\wangw\AppData\Roaming\Typora\typora-user-images\image-20220901232952408.png)]E ---->tomcat{过滤器1->过滤器2->servlet/jsp}jsp/servlet->过滤器2->过滤器1->响应。过滤器的两种开发模式:(先执行配置的,在执行注解的)过滤器-Filter。
2022-09-02 00:20:30 223
原创 正则表达式Regix
正则表达式是检查、匹配字符串的表达式- 正则表达式是描述规则,主流语言都有良好支持- 字符串校验、查找与替换是正则表达式主要使用场景常用正则表达式——通过常用正则表达式巩固语法规则下面给出一个正则表达式的案例:1.检查输入的身份证是否合法:示例: 13010220200328091x正则表达式:(
2022-09-01 23:01:01 483
原创 AJAX知识
js库实际上就是各大公司开发出来的JS函数。主流的JS库包括jQuery,Vue,REACT等。Ajax(Asynchronous JavaScript And XML)异步的JavaScript和XMLAjax可以在不刷新页面的前提下,进行页面局部更新Ajax不是新的技术,Ajax并不是W3C的标准。
2022-09-01 23:00:18 163
原创 JSON知识
JSON全称为JavaScript Object Notation(JavaScript 对象表示法)JSON是轻量级的文本数据交换格式JSON独立于语言,具有自我描述性,更易于理解。
2022-09-01 22:59:13 174
原创 EL表达式及JSTL
例如随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示以下是本篇文章正文内容,下面案例可供参考。
2022-07-27 21:52:17 412
原创 Servlet——web.xml配置
web首页的修改Servlet通配符映射与初始化参数全局参数的设置404,500等错误码的页面设置以上就是今天的内容,包括全局参数配置,web页面配置,统配符配置捕获请求等httpshttpshttpshttpshttpshttpshttps。
2022-07-18 15:04:49 14373
原创 Servlet——中文乱码处理
本篇主要介绍使用Servlet时Post请求和Get请求出现中文乱码问题的解决。提示以下是本篇文章正文内容,下面案例可供参考本文介绍了servlet-post和get请求出现中文乱码的原因和解决方式。httpshttpshttpshttpshttpshttps。...
2022-07-18 10:16:31 3268
原创 Java——ServletContext三大作用域
本文主要介绍ServletContext对象及其三大作用域对象的使用说明提示以下是本篇文章正文内容,下面案例可供参考以上就是ServletContext的相关知识,值得一提的是,三大作用域对象生命周期依次递增,按照使用习惯来说,我们应当尽量选择生命周期短的作用域来满足要求,以此节约内存成本。httpshttpshttps。...
2022-07-15 15:33:04 671
原创 Java——Session使用
本文主要介绍Session的基本知识及基本使用方法本文介绍了session相关的使用,以及简单介绍了cookie和session的区别,个人理解,Session本质上也是使用了Cookie,Cookie保存SessionId到客户端,每次调用服务器时带着SessionId去访问,服务器端开辟了一篇内存空间保存Session信息。...
2022-07-15 14:44:31 7418 2
sql数据从何处获取的
2022-12-08
学习Spring框架时候的疑问
2022-11-27
跨应用序列化对象存在类找不到问题
2022-11-09
SQL运行结果有疑问
2022-10-31
数据分组的时候,数据库和流应该用哪一种方式
2022-09-06
用FASTJSON实现两个类集合的转化
2022-08-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人