谷粒商城 杂记

3 篇文章 0 订阅
@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

@Param注解:用注解来简化xml配置的时候(比如Mybatis的Mapper.xml中的sql参数引入),@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中(一般通过#{}的方式,${}会有sql注入的问题)。


@PathVariable 映射 URL 绑定的占位符
通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过

@PathVariable(“xxx”) 绑定到操作方法的入参中。

PageUtils:使用时,只需在service层中获取需要查询的记录总数,并提供当前页码(currentPage)以及每页显示记录条数(pageSize),用于创建PageUtils对象,然后再讲PageUtils中的当前页和每页记录数获取后作为分页查询条件,调用DAO层实现,获取集合数据,最后将集合数据存储到PageUtils对象,并返回。


 @RequestBody
 主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);
 而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。
 在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。


@Autowired
这个注解就是spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get。


VO(value object) 值对象:
通常用于业务层之间的数据传递,和 PO 一样也是仅仅包含数据而已。但应是抽象出的业务对象 , 可以和表对应 , 也可以不 , 这根据业务的需要 。用 new 关键字创建,由 GC 回收的。

解决百万并发查询 采用cache的方式     在redis层使用StringRedisTemplat添加缓存

添加缓存会带来 
1、缓存穿透(查一个不存在的数据,直接穿过cache;解决方法:给cache层存一个空标志) 
 2、缓存雪崩(当百万数据来的时候,所有缓存时间刚好过期,百万请求同时查询数据库,数据库会崩;解决方法:每一个数据的过期时间随机)
 3、缓存击穿(当百万请求同一个数据的时候,缓存过期时,数据库会瘫痪;解决方法:加一把锁,只允许一个请求通过,返回数据,存在缓存中)

 synchronized ()
 synchronized中文意思是同步,也称之为”同步锁“。

synchronized的作用是保证在同一时刻, 被修饰的代码块或方法只会有一个线程执行,以达到保证并发安全的效果。

synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。


synchronized的作用主要有三个:

原子性:确保线程互斥地访问同步代码;
可见性:保证共享变量的修改能够及时可见,其实是通过Java内存模型中的“对一个变量unlock操作之前,必须要同步到主内存中;如果对一个变量进行lock操作,则将会清空工作内存中此变量的值,在执行引擎使用此变量前,需要重新从主内存中load操作或assign操作初始化变量值” 来保证的;
有序性:有效解决重排序问题,即 “一个unlock操作先行发生(happen-before)于后面对同一个锁的lock操作”;


model.addAttribute:
往前台传数据,可以传对象,可以传List,通过el表达式 ${}可以获取到,
类似于request.setAttribute("sts",sts)效果一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值