Java web 学习记录
看的spring boot视频笔记
twyc
这个作者很懒,什么都没留下…
展开
-
Java wiki笔记 Spring boot项目搭建
@SpringBootApplication中内置了@ComponentScan注解 扫描包的位置 默认只扫描当前包下的子包 需要指定路径@ComponentScan("com.jiawa")@RestController注解返回字符串@RequestMapping("/hello")注解指定url的路径和访问方式使用HTTP Client测试接口post请求不方便直接测试在项目文件夹下新建一个测试文件夹 新建一个.http的测试文件配...原创 2021-04-20 10:41:54 · 224 阅读 · 1 评论 -
vue 基础笔记
https://cn.vuejs.org/v2/guide/https://pan.baidu.com/s/1EMT0XR72FqTx27Z-oH3g0A标识一个dom的方式有 id="id"和class="class"两种在vue的挂载点中拿到的方式可以是el:"#id"和el:".class"一般使用id选择器,因为约定了唯一性只有双标签才能被vue挂载,除了html和body一般用div标签挂载是因为它没有样式@click和v-on:click等价v-show和v-if的效果等价 sh原创 2021-09-04 22:31:36 · 113 阅读 · 1 评论 -
Java wiki笔记 雪花算法和validation参数校验
美团的自增ID文章看起来不错的知乎回答唯一、趋势递增(聚集索引的要求)、单调递增(一些需求的要求)、信息安全(不能连续)思路1:根据mac地址等信息构造的UUID 有安全风险思路2:时间戳+机器标识+序列号 机器的时间不能回滚,否则造成服务不可用状态validation本质还是注解看这篇打上注解之后靠aop实现语义...原创 2021-05-21 01:35:04 · 100 阅读 · 0 评论 -
Java wiki笔记 后端配置
在idea的database->console中输入语句注意各个地方的引号drop table if exists test;create table test ( id bigint not null comment 'id', name varchar(50) comment '名称', primary key (id)) engine = innodb default charset = utf8mb4 comment = '测试';增加pack.原创 2021-04-23 21:29:45 · 157 阅读 · 0 评论 -
Java wiki笔记 过滤器、拦截器、AOP
过滤器filter 是一个容器层的概念 是责任链模式的应用创建一个类 实现servlet包的Filter接口 用@Component注解托管给springboot可以配置多个filter 每个filter只能响应一次 响应顺序看这篇博客 @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) th原创 2021-05-19 00:48:01 · 58 阅读 · 0 评论 -
第3章 用户模块开发
1. 使用SpringMVC的方式开发用户信息model层即之前配置的数据库对象的映射的组成 因为包括密码才是一个完整的model 再但是返回给前端的model不需要也不应该包括所有信息 所以目录结构长这个样子UserController.java 即控制层@Controller("user")//用来被spring扫描到@RequestMapping("/user")//在u...原创 2020-02-20 15:12:47 · 361 阅读 · 0 评论 -
JDBC
步骤为项目导入mysql-jdbc的jar包初始化驱动 通过类加载器将驱动在内存中进行注册建立与数据库的连接创建Statement执行SQL语句关闭连接(finally关键字) 或者使用try-with-resource的方式自动关闭连接 Connection和Statement都实现了AutoCloseable接口 所以可以使用public class DBUtil { ...原创 2020-02-06 16:13:15 · 117 阅读 · 0 评论 -
Spring学习-4-属性配置细节
字面值字面值:可用字符串表示的值,可以通过<value>元素标签或value属性进行注入基本数据类型及封装类、String等类型都可以采取字面值注入的方式若字面值中包含特殊字符,可以使用<![CDATA[]]>把字面值包裹起来在 Bean 的配置文件中, 可以通过<ref> 元素或 ref 属性为 Bean 的属性或构造器参数指定对 Bean 的引用....原创 2019-04-17 15:33:07 · 83 阅读 · 0 评论 -
Spring学习-1-Helloworld
Spring特点:轻量级:非侵入性的、依赖注入、面向切片编程、容器、框架、一站式新建一个HelloWorld类package com.wyc.helloworld;public class HelloWorld { private String name; public void setName(String name){ System.out.pri...原创 2019-03-29 22:25:06 · 78 阅读 · 0 评论 -
Spring学习-3-配置Bean
之前在HelloWorld工程中已经使用了XML进行配置<bean id="helloWorld" class="com.wyc.helloworld.HelloWorld"> <property name="name" value="Spring"></property> </bean>class属性为bean的全...原创 2019-04-11 21:53:07 · 100 阅读 · 0 评论 -
Spring学习-2-IOC&DI概述
IOC Inversion of Control思想为反转资源获取的方向 传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源。而应用了IOC之后,则是容器主动地将资源推送给它管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。这种行为也被称为查找的被动形式。DI Dependency Injection IOC的另一种表述方式:即组件以一些预先定义好的方式(如...原创 2019-04-11 20:04:31 · 104 阅读 · 0 评论 -
10 防刷限流技术
令牌桶的原理漏桶算法区别:漏桶算法无法应对突发流量 是用来平滑网络流量以固定的速率流入的操作令牌桶算法只是限制某一时刻的最大值 应对突发的流量 但是不能超过限定值...原创 2020-03-21 21:57:10 · 222 阅读 · 0 评论 -
9 流量削峰技术
秒杀令牌 秒杀大闸 队列泄洪现在的系统缺陷接口会被脚本不停的刷新 甚至活动未开始的时候仍然可能刷新这个接口秒杀验证逻辑和秒杀下单接口强关联 代码冗余度高秒杀验证逻辑复杂 对交易系统产生无关联负载缺陷:秒杀令牌只要活动一开始就无限制生成影响系统性能缺陷:浪潮流量涌入后系统无法应对多库存 多商品等令牌限制能力弱...原创 2020-03-21 21:24:08 · 309 阅读 · 0 评论 -
8 交易性能优化技术之事务型消息
异步化事务型消息模型库存的扣减操作在事务中正常进行 如果减库存的事务执行失败则将扣的库存加回来 在减库存的事务执行成功之后再发送消息库存流水状态库存售罄处理方案库存售罄标识售罄后不去操作后续流程售罄后通知各系统售罄回补上新后置流程(更新销量)销量逻辑异步化交易单逻辑异步化但是这个操作还是需要等待订单号的生成 强行异步只能依靠前端的loa...原创 2020-03-21 20:24:05 · 171 阅读 · 0 评论 -
7 交易性能优化技术之缓存库存
交易性能瓶颈交易验证完全依赖数据库 每一次操作 都是用sql语句的形式去数据库里读的库存行锁 所有减库存操作都是串行进行的后置处理逻辑 比如增加商品销量等信息也会影响性能交易验证优化用户风控策略优化:策略缓存模型化 判断用户id是否存在是最基础的风控策略 其他的还可以有最近是否有异常行为 将这些策略模型化 异步写入redis缓存中 然后实时拦截活动校验策略优化:引...原创 2020-03-21 19:44:20 · 241 阅读 · 0 评论 -
6 静态页面性能优化
CDN的全称是Content Delivery Network可以看做无限大的内容磁盘缓存 本身是没有文件存储的 当用户访问一个资源的时候 根据路由规则查看本地是否存在这样一个文件 有则直接返回 没有则返回给原站然后根据一定的规则缓存起来静态请求CDNDNS用CNAME解析到源站 阿里云的服务回源缓存设置强推失效其中no-cache将内容缓存 但是在用的...原创 2020-02-28 17:37:04 · 314 阅读 · 0 评论 -
5 查询性能优化-多级缓存
缓存设计的时候考虑的问题用快速存取设备 用内存将缓存推到离用户最近的地方脏缓存清理多级缓存redis缓存热点内存本地缓存nginx proxy cache缓存nginx lua缓存redis缓存当做集中式缓存的中间件 并将其作为内存级别的存储 易失性的redis是和mysql相同的集中式存储概念所有的set和get都会到这一台redis...原创 2020-02-28 16:33:56 · 179 阅读 · 0 评论 -
第4章 商品模块开发
1. 明确表和领域模型的设计顺序 应该是先设计领域模型再设计表 因为模型的一些属性出于安全性或者性能的考虑 可能会需要在数据库层面进行分开设计2. 在mybatis-generator.xml里添加 <table tableName="item" domainObjectName="ItemDO" enableCountByExample="false" ...原创 2020-02-26 15:31:45 · 150 阅读 · 0 评论 -
4 分布式扩展
现在的架构单机存在容量问题 需要进行水平扩展表象:单机cpu使用率增高 memory占用增加 网络带宽使用增加cpu的使用率看 cpu us和cpu sy两个参数 分别代表用户空间的CPU使用情况和内核空间的淳朴使用情况 分别主要是由用户层代码和系统调用引起的另外还有load average参数 分别代表1,5,15分钟load平均值 0表示正常 1代...原创 2020-02-27 21:36:48 · 190 阅读 · 0 评论 -
第2章 应用SpringBoot完成基础项目搭建
1. 新建maven项目 添加SpringBoot依赖2. 在App.java后面添加@EnableAutoConfiguration标签 将其变成一个Spring bean 并且能够自动配置点运行 在浏览器访问url即可 看到一个默认的错误页面 说明在不需要其他配置的情况下 tomcat容器已经启动3. 添加@RestController注解和@Reques...原创 2020-02-20 15:11:51 · 132 阅读 · 0 评论