Java后端
个人分享
程序员gelei
专注于大学生项目实战开发,讲解,毕业答疑辅导,java就业辅导,高校老师/讲师/同行合作。以及产品测评宣传、工具推广等合作。全网粉丝10w+,平台优质创作者。
展开
-
java收徒、java面试辅导、java辅导、java就业辅导
💗博主介绍:✌全网粉丝1W+,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗🌟文末获取源码+数据库🌟Java编程,不仅是技能,更是通向未来的桥梁。我,资深Java开发者,现开放收徒,传授实战经验。无论你是编程新手还是职场老手,只要你有梦想,有决心,我都将倾囊相授。从基础语法到框架应用,从数据结构到设计模式,我将与你一同探索Java的奥秘。加入我们,让代码成为你实现梦想的工具,一起在技术的道路上不断前行。原创 2024-06-02 22:08:12 · 352 阅读 · 0 评论 -
学生选课系统
4.前后端技术:系统后端使用spring、springmvc、mybatis技术,前端使用jsp,数据库使用mysql。2.课程管理:管理员用自己的admin账号登陆到系统后,可以管理学生和老师的账号,可以发布新课程并指定授课教师。3.成绩打分:老师登陆后,可以查询自己授课课程,可以给学生进行课程打分。1.多个角色:分为学生、老师、管理员,每个角色都有自己不一样的功能。3.学生选课:学生登陆后,可以查询课程,选择自己喜欢的课程。技术: 基于ssm+jsp前学生选课系统的设计与实现。原创 2023-06-26 12:33:21 · 371 阅读 · 0 评论 -
java收徒 java辅导
java收徒,java面试原创 2023-02-26 23:08:19 · 211 阅读 · 1 评论 -
谷粒商城-品牌管理开发(OSS图片上传)(待更新)
1.单体应用可以将图片存在项目本地2.分布式项目不能将图片存在项目本地,因为一个服务部署在多个服务器,在一次上传图片上传到了1号服务器,如果下次请求到了2号服务器,将拿不到1号服务器保存的图片要解决此问题我们可以使用文件存储服务,文件同一写入这个服务中,同时读取时也统一在这里获取:3. 这里我们使用阿里云的OSS对象存储服务:(1)进入阿里云的控制台(2)创建此项目的存储空间(Bucket):gulimail-d(3)进入刚刚的Bucket,上传图片访问测试在浏览器访问.原创 2021-11-22 20:39:45 · 931 阅读 · 0 评论 -
谷粒商城-商品服务的开发(树的拖拽效果)--后期有时间再做
1.通过tree的draggable属性实现拖拽效果:原创 2021-11-21 15:55:40 · 309 阅读 · 0 评论 -
Java中的long类型和Long类型比较大小问题
1.做谷粒商城项目新增菜单的时候遇到了这个问题:这里会有一个bug: return categoryEntity.getParentCid() == root.getCatId();新建层级不能显示是因为递归filter过滤的时候catId和父id是Long对象,所以==不行要用equils两个Long对象值超过127的时候就不能用== 号来进行比较了,必须使用equals。在后台debug可以看到catId的类型:参考博客:(1)https://原创 2021-11-18 16:49:02 · 497 阅读 · 0 评论 -
java系列
1、方法一List<Integer> result = new ArrayList(map.keySet());List<String> result2 = new ArrayList(map.values());2、方法二List<Integer> result = map.keySet().stream().collect(Collectors.toList());List<String> result2 = map.val..原创 2021-11-16 18:18:33 · 3423 阅读 · 0 评论 -
String类型转Int类型、其他类型转String类型
1.String类型转Int类型:Integer.parseInt(String)方法、Integer.valueOf(String)方法2.其他类型转String类型:(String)、toString、String.valueOf方法参考博客:https://blog.csdn.net/kkkkkfffd/article/details/121293849java如何把String类型转换为int类型-java教程-PHP中文网...原创 2021-11-16 10:49:20 · 407 阅读 · 0 评论 -
(String)、toString、String.valueOf的区别
参考博客:https://www.cnblogs.com/xhyouyou/p/6014367.html原创 2021-11-12 18:45:27 · 226 阅读 · 0 评论 -
谷粒商城-商品服务的开发(查询)
1.先在gulimail_mail数据库中的pms_category表中执行sql导入模拟数据.2.在gulimail-product模块进行后端开发查询处所有商品分类并以树形结构展示出来。(1)在CategoryController中: /** * 查出所有分类以及子分类,以树形结构组装起来 */ @RequestMapping("/list、tree") public R list(){ List<CategoryEntity>原创 2021-11-09 10:54:20 · 332 阅读 · 0 评论 -
redis缓存雪崩
概念:与缓存击穿类似。如果缓存中大量数据在一段时间内集中过期了,这时候就会发生大量缓存击穿现象,所有的请求都落在了DB上,由于查询数据量大,会引起DB压力过大甚至导致DB宕机。解决方案:1.给缓存的失效时间,加一个随机值,避免集体失效。如果redis是集群部署,将热点数据均匀分布在不同的redis库中也能避免全部失效的问题。2.利用互斥锁,但是该方案吞吐量明显下降了。3.设置热点数据永不过期。4.双缓存。我们有两个缓存,缓存A和缓存B。缓存A的失效时间为20分钟,缓存B不设置失效时间原创 2021-10-12 16:50:37 · 56 阅读 · 0 评论 -
redis缓存穿透
概念:查的数据是缓存和数据库中都不存在的数据。比如通过id查询商品信息,id一般大于0,攻击者会故意传id为-1去查询,由于缓存不命中则从DB中获取数据,这将会导致每次缓存都不命中数据导致每个请求都访问DB,造成缓存穿透。解决方案:1.利用互斥锁,缓存失效的时候,先去获得锁,得到了锁,再去请求数据库。没得到锁,则休眠一段时间重试。2.采用异步更新策略,无论key是否取到值,都直接返回。value值中维护一个缓存失效时间,如果缓存过期,异步起一个线程去读数据库,更新缓存。需要做缓存预热(项目启原创 2021-10-12 15:27:41 · 63 阅读 · 0 评论 -
stream()流的用法
List<UserDTO> userDTOList1 = jpaQueryFactory.selectFrom(qUser) .where(booleanBuilder) .orderBy(qUser.id.desc()) .limit(rows) .offset(rows*(page-1)) .fetch().stream().ma..原创 2021-10-12 10:11:20 · 681 阅读 · 0 评论 -
Arrays.asList()的用法
参考文章:Arrays.asList使用指南 - 简书 (jianshu.com) /** * Arrays.asList()的几种用法 */ //1.传入参数: String[] array = {"qwe","asd","zxc"}; List<String> list1 = Arrays.asList(array); list1.forEach(System.out::p原创 2021-10-12 09:43:39 · 312 阅读 · 0 评论 -
redis缓存击穿
redis设置失效时间:(key的过期淘汰机制)缓存击穿:1.概念:高并发情况下,某个热门key突然过期,导致大量请求在redis未找到缓存数据,进而全部去访问DB请求数据,引起DB压力瞬间增大。2.解决方案:缓存击穿的情况下一般不容易造成DB宕机,只是会造成对DB的周期性压力,对于缓存击穿一般有以下解决方案:(1)...原创 2021-10-11 21:24:06 · 58 阅读 · 0 评论 -
SpringDataRedis整合哨兵
有两种整合方法:1.第一种:在yml配置文件中进行配置:(最后六行)spring: redis: host: 192.168.43.196 port: 6380 password: 123456 database: 0 timeout: 10000ms lettuce: pool: max-active: 1024 max-wait: 10000ms max-idle: 200原创 2021-10-11 20:51:41 · 249 阅读 · 0 评论 -
springdataredis获取所有的key,以及设置失效时间
/** * 获取所有的key */ @Test public void testAllKey(){ Set keys = redisTemplate.keys("*"); keys.forEach(System.out::println); } /** * 失效时间 */ @Test public void testExpire(){ ValueOperation..原创 2021-10-11 18:21:30 · 835 阅读 · 0 评论 -
SpringDataRedis操作set数据类型
/** * 操作sorted set */ @Test public void testSortedSet(){ ZSetOperations zSetOperations = redisTemplate.opsForZSet(); //添加数据 ZSetOperations.TypedTuple<Object> objectTypedTuple1 = new DefaultTypedTuple<>.原创 2021-10-11 16:30:28 · 683 阅读 · 0 评论 -
SpringDataRedis操作set数据类型
/** * 操作set */ @Test public void testSet(){ SetOperations setOperations = redisTemplate.opsForSet(); //添加数据 String[] letters = new String[]{"aaa","bbb","ccc","ddd"}; //setOperations.add("letters", "aaa","b.原创 2021-10-11 16:07:56 · 117 阅读 · 0 评论 -
SpringDataRedis操作list数据类型
/** * 操作list */ @Test public void testList(){ ListOperations listOperations = redisTemplate.opsForList(); //左添加 listOperations.leftPush("students", "wangwu"); listOperations.leftPush("students", "lisi");..原创 2021-10-11 15:58:33 · 384 阅读 · 0 评论 -
SpringDataRedis操作hash数据类型
/** * 操作hash */ @Test public void testHash(){ HashOperations hashOperations = redisTemplate.opsForHash(); /** *添加一条数据 * 第一个参数:redis的key * 第二个参数:hash的key * 第三个参数:hash的value ...原创 2021-10-10 21:16:32 · 530 阅读 · 0 评论 -
SpringDataRedis操作String类型数据
/** *操作string */ @Test public void testString(){ ValueOperations ops = redisTemplate.opsForValue(); //添加一条数据 ops.set("name", "zhangsan"); //获取一条数据 String name = (String) ops.get("name"); Sy..原创 2021-10-10 18:09:16 · 161 阅读 · 0 评论 -
springDataRedis序列化模板
1.redis存储pojo对象必须解决对象序列化问题,spaingdataredis提供了一些现成的方案:2.使用GenericJackson2JsonRedisSerializer序列化对象:(1)创建config类:@Configurationpublic class RedisConfig { @Bean public RedisTemplate<String,Object> redisTemplate(LettuceConnect原创 2021-10-10 17:29:14 · 89 阅读 · 0 评论 -
SpringDataRedis项目搭建
1.进入到spring官网,找到SpringData:Spring Data它封装了很多东西:2.项目搭建:(1)创建springboot项目:选择springweb/spring data redis依赖<dependencies> <!--spring-data-redis依赖--> <dependency> ...原创 2021-10-10 16:46:08 · 138 阅读 · 0 评论 -
redis系列
读写分离可以防止redis宕机无法提供服务,但是当原创 2021-09-30 15:41:31 · 72 阅读 · 0 评论 -
redis主从概念
1.什么是主从:原创 2021-09-25 22:57:41 · 139 阅读 · 0 评论 -
Map集合遍历的几种方式(更新中)
1.先参照此博客:(25条消息) Map集合遍历方式_CHD@的博客-CSDN博客_map遍历2.有时间自己总结下原创 2021-09-21 21:09:36 · 53 阅读 · 0 评论 -
关于操作redis控制台报的错
1.redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.原因:未设置密码当时是我忘记加这个password.原创 2021-09-21 16:53:40 · 78 阅读 · 0 评论 -
java中Number类的相关方法(更新中)
1.valueOf():我目前理解他的作用时对象转换,不过String转Int时,如果String不是纯数字则无法转换原创 2021-09-21 12:31:00 · 49 阅读 · 0 评论 -
项目管理工具:Git、SVN系列
1.jedis和lettuce的区别:(1)jedis是直连连接redis服务器。在多个线程之间共享一个jedis实例,线程不安全的,并发不安全。(如果想要在多线程的场景下使用jedis需要使用jedis连接池,此时每个线程都会使用自己的jedis的实例,当连接数增多时,会消耗比较多的物理资源。)(2)lettuce是线程安全的,是基于Netty的连接方式,支持同步异步响应式操作,多个线程可以共享同一个连接实例,不用担心多线程的并发问题。并发安全2.(1)当spring版本为1.x时,spr原创 2021-09-20 22:48:00 · 931 阅读 · 0 评论 -
break和continue以及return在循环中的作用
1.break:结束最里层的整个循环体2.continue:跳过循环体之后的代码,执行下一次循环。3.return:与continue作用类似,return 可以有返回值,也可以没有:直接return;原创 2021-09-16 14:07:11 · 199 阅读 · 0 评论 -
QueryDSL学习记录(持续更新)
概念1.QueryDSL是一个通用的查询框架,适用于不同类型的ORM框架。使用1.使用QueryDSL之前需要:(1)引入JPAQueryFactory(2)需要通过maven插件编译自动生成实体类型的结构查询实体2.使用方法:(1)先创建结构查询实体 :(2) 使用jpaQueryFactory可以进行查询(select),删除(delete),修改(update)...原创 2021-09-15 16:21:09 · 210 阅读 · 0 评论 -
关于JPA规范的学习(持续更新中)
概念1.jpa全称为java persistence Api,是java官方(sun公司)推出的java持久层操作规范API2.jpa仅仅是一套(ORM)规范,而不是具体的ORM框架,它定义好了一些接口,需要其他框架实现这些接口规范。(jpa推出的目的就是给其他ORM框架指定统一的规范,实现天下归一)3.Hibernate就是一个实现了Jpa接口规范的ORM框架。4.spring data jpa是spring公司下spring data项目的一个模块,它对jpa进一步的进行了封装,让其da原创 2021-09-15 15:51:20 · 201 阅读 · 0 评论 -
foreach遍历集合
java8中已经实现了lambda表达式。以循环打印Arraylist中的值为例,在java8之前的写法是for(Integer i : list) { System.out.println(i);}在java8中可以写成list.forEach(x -> System.out.print(x));代码会简洁很多...原创 2021-08-10 08:53:14 · 130 阅读 · 0 评论 -
SOA架构
(1)SOA:面向服务的体系结构(service-oriented architecture)简称:面向服务的架构。该定义并不特指一种技术,而是一种分布式运算的软件设计方法。软件的部分组件(调用者),可以透过网络上的通用协议调用另一个应用软件组件运行、运作,让调用者获得服务....原创 2021-08-03 14:35:17 · 56 阅读 · 0 评论 -
RPC协议
(1)RPC:(Remote Procedure Call Protocol)远程过程调用协议。是一种协议(一套规范),而不是框架。(2)基于RPC协议的相关框架:Dubbo:国内最早开源的 RPC 框架,由阿里巴巴公司开发并于 2011 年末对外开源,仅支持 Java 语言。 SpringCloud:国外 Pivotal 公司 2014 年对外开源的 RPC 框架,提供了丰富的生态组件。 Motan:微博内部使用的 RPC 框架,于 2016 年对外开源,仅支持 Java 语言。 Tars:原创 2021-08-03 14:30:40 · 1501 阅读 · 0 评论