![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java项目学习笔记
念衢
这个作者很懒,什么都没留下…
展开
-
mybatis批量删除
EmployeeMapper.xml文件:注意里面的foreach进行取数组的值的写法。ps:数组需要加注解。3、测试: 方法调用。原创 2023-03-08 16:26:14 · 406 阅读 · 1 评论 -
mybatis实现多条件模糊查询
【代码】mybatis实现多条件模糊查询。原创 2023-03-08 14:53:09 · 1701 阅读 · 0 评论 -
redis缓存穿透和击穿
对查询为空的缓存对象设置过期时间 eg:在12点上秒杀,但用户11点开始搜,到12点后再搜应该能搜到了,如果不设置有效时间,那该用户就一直搜不到秒杀商品。这里互斥锁是保证每次从数据库查询数据,都再从redis查找数据,最后拿到的都是最新的,这样redis里就不会有过期数据。发生原因:有恶意攻击或DB确实没有符合查询条件的。缓存击穿:redis没有,但是数据库可能有。缓存穿透:redis和数据库都没有。原创 2022-10-30 00:06:52 · 57 阅读 · 0 评论 -
redis 的 java实现 ——Lettuce
3.2、用genericJackson2JsonRedisSerializer实现。3.1、用Jackson2JsonRedisSerializer实现。方法1、properties文件配置。ttl :距离失效时间还剩XXX秒。哨兵操作(前提知识:主从模式)3、配置redis配置文件。1、 创建项目,添加依赖。原创 2022-10-29 23:37:39 · 876 阅读 · 0 评论 -
redis数据持久化
appendonly 实时记录,不丢失,记录在aof文件里(存的完整的命令,项目长期使用的话,占用空间比rdd大,启动时间也比较久)一般启用aof,rdd失效,但现在也可以混合开启。rdd(存的是数据)原创 2022-10-29 17:22:49 · 52 阅读 · 0 评论 -
Java项目整合redis序列化工具——操作Java对象
目的:实现redis存储string字符串,非二进制字符。原创 2022-10-29 16:26:29 · 347 阅读 · 0 评论 -
Access denied for user ‘root‘@‘localhost‘ (using password: YES)
3、如果以上都正确,但是mysql数据库账户密码是以0开头的,加上单引号,否则会解析成八进制。原创 2022-10-24 22:33:12 · 746 阅读 · 0 评论 -
spring security Ⅲ—— authenticationManager.authenticate()验证流程
进入provider.authenticate(authentication)方法后发现我们到了AbstractUserDetailsAuthenticationProvider类,而这个方法的返回值需要需要依赖user,要获取这个user,咱又不得不进入retrieveUser(username, (UsernamePasswordAuthenticationToken) authentication) 这个方法。在得到这个user之后才能进行下一步。原创 2022-10-14 23:18:31 · 9670 阅读 · 3 评论 -
spring security Ⅱ
1、在UsernamePasswordAuthenticationFilter前加入了一个自定义的filter,如果用户带了token来进行访问则——进行jwt拦截校验;如果没有则放行,dofilterchain(res,req),因为后面如果还是未登录状态,authenticed:false,就会被后面的拦截器,把请求返回的资源拦截。2、重写UserDetailsService方法里的loadUserByUsername方法,实现从数据库中查找数据,原来框架默认方法是从内存InMemory里查找。原创 2022-10-14 23:19:10 · 202 阅读 · 0 评论 -
spring security 密码校验Ⅰ
使用security默认的加密方式——BCrypt方法,对于同一个字符串,进行加密,每一次的结果都不同。但是不同的结果与原加密来的字符串进行matches时,都能得到true。1、先通过getPasswordEncoder()拿到注入容器的passwordEncoder。但加密后的结果再matches就是false了。2、再到matches()方法。3、最后是checkpw()原创 2022-10-14 22:27:12 · 1072 阅读 · 0 评论 -
spring security 配置类——SecurityConfigration
/权限注解,访问服务需要的权限@PrePostEnabled("hasAuthority('admin')")//创建BCryptPasswordEncoder注入容器@Bean}//// @Bean//// throw new RuntimeException("手机号或者密码错误");//// }//// //查用户权限//// //把数据封装成UserDetails返回// };// }原创 2022-10-12 14:31:14 · 558 阅读 · 0 评论 -
生成token的工具类
注意引入的依赖的版本,和工具类是否匹配,不然报错。以下工具类都可以,版本号限制不大。原创 2022-10-12 14:13:41 · 1599 阅读 · 0 评论 -
spring security 登录认证——用户认证一直不成功
自定义的登录逻辑:前端手机号+密码,经过加密传输——后端接受后端自定义登录controller里:1、根据手机号,查找用户名。原创 2022-10-12 14:11:44 · 3525 阅读 · 0 评论 -
前后端分离时,后端用spring security做登录的认证和授权需要注意的点
5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。前后端不分离时,为了提高系统的安全性,可能会用到session、cookie、token(这里的token一般都是存在了请求体里)等,但是无论哪一种其实都能被伪造,遭受CSRF攻击。2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;跨站攻击的本质是, 攻击者拿着你的“身份凭证”,冒充你进行的相关攻击行为。原创 2022-10-09 22:20:49 · 493 阅读 · 0 评论 -
mybatisplus无法调用继承来的方法:Invalid bound statement (not found): com.example.springboot.mapper
2、对应java实体类的字段也要保持一致,在id上加一个@TableId("id")的注解,或者不写也可以,但是不能没有,因为mybatisplus是不需要对数据库进行字段的匹配的,非常方便,因此每一个字段都很重要了;3、实体类的属性也不能比数据库里多一个。既不能多,也不能少。type 设置主键类型、主键的生成策略。1、数据库里id不可为空,作为主键。@TableId注解使用介绍。value映射主键字段的名字。原创 2022-09-25 17:36:16 · 1069 阅读 · 0 评论 -
前后端数据交互常见问题:JSON parse error: Unrecognized token ‘phoneNum‘
后端:加上@RequestBody用String接收,后再一一对多参数进行处理,subString()方法:根据字符的下标位置进行分割,不包前,但包后,eg:第9个字符是“=”,所以从第九个字符开始分割,到第20个字符结束,包括了第二十个。(是对发送过去的数据格式限制),dataType是对接收数据的格式限制。原理不清楚,有大佬的话,求求路过看一眼,顺带告诉我一下,真心感恩~传参结果:正常,第一个手机号,第二个前端MD5加密后的密码。,没有传值的参数,会自动成null。去掉contentType属性。原创 2022-09-24 15:01:03 · 1238 阅读 · 0 评论 -
springboot项目用easycode自动生成代码,配置、问题及解决
捋一下流程:controller——》service(接口)——》serviceImp(通过@Service注解和implements service的方式,里面用.方法发调用dao层方法)——》dao层(通过properties文件的配置找到mapper目录下 xxDao.xml文件) ——》xxDao.xml文件,里面有sql语句。意思差不多是bean注入失败,即@Resource @Autowired这两种注解,失败,检查发现UserServiceImp层没有加。多的是问题,等我捋明白了库😭。原创 2022-09-20 20:51:36 · 635 阅读 · 0 评论 -
解决前后端跨域问题
【代码】解决前后端跨域问题。原创 2022-09-18 22:39:10 · 121 阅读 · 0 评论 -
springboot访问静态页面,并加载css、js样式
src="/js/jquery.min.js" 也就是地址 src="/static/js/jquery.min.js"2、因为是通过地址栏访问,所以使用@GetMapping注解,注解后的内容可随意写,访问时的地址就是:“3、return“ ”里面填的字符串一定要是自己放入templates里的html页面的名字。1、一定要用@Controller注解,不能用@Restcontroller;虽然href或src内的内容idea会标识不认识,但地址是没有问题。原创 2022-09-16 15:14:21 · 5999 阅读 · 2 评论 -
在插件、依赖的安装都没有问题的情况下,Lombok注解失效
value不要和@Data、@AllArgsConstructor、@NoArgsConstructor混用,否则在使用实体类时会发现Lombok注解失效的情况,并且是在插件、依赖的安装都没有问题的情况下。原创 2022-09-15 22:51:00 · 131 阅读 · 0 评论 -
spring boot 项目能正常启动,但是服务访问不到
如图,controller包要在springboot包下,或者把TestController放到springboot包下,这样控制器才能扫描到。新建一个springboot项目后,只写一个controller,代码如下。原因:项目目录有问题,controller没有扫描到。正常情况下,启动服务后,访问。但问题是访问不到,显示404。...原创 2022-08-30 20:15:31 · 6054 阅读 · 3 评论 -
使用IDEA新建简单Spring Boot 项目过程,及各选项含义
点击next——>finish。原创 2022-08-30 20:04:17 · 312 阅读 · 0 评论 -
spring boot文件配置两种格式
YAML 是一种用于指定分层配置数据的便捷格式,比它的属性文件application.properties更具可读性,因为它不包含重复的前缀。每一级目录都是通过缩进(不能使用tab,只能使用空格)区分,并且键和值之间需要添加冒号+空格来表示。最多有三级目录,列表下元素用-+空格+元素名称表示。...原创 2022-08-30 12:18:40 · 175 阅读 · 0 评论 -
spring boot —— Spring Security定制权限管理
Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。提供了完善的认证机制和方法级的授权功能。是一款非常优秀的权限管理框架。它的核心是一组过滤。类似于启动spring boot项目后,会先验证,如果没有登陆,会跳转到框架默认登录页面(封装好的,不用自己写)如果没有配置登录用户,那么终端会自动生成用户并打印随机生成的用户密码,如果有配置,就不会生成。...原创 2022-08-30 12:15:53 · 507 阅读 · 0 评论