JavaWeb
文章平均质量分 73
JavaWeb
秀秀_heo
一个学习前端开发的大学生,博客为自己的学习笔记,仅供个人学习使用。
展开
-
使用 Maven 创建 jar / war 项目
如果想要在项目中加入配置文件(如properties文件、xml文件等),那么需要自己手动加入resources目。录:除了.java文件,其他文件都放入到这个目录。编译后会把此目录所有内容直接放入到classes目。每个Maven项目都有自己的坐标。原创 2024-11-23 21:05:50 · 432 阅读 · 0 评论 -
【JavaWeb】分布式锁
Redisson 是一个 java 操作 Redis 的客户端,提供了大量的分布式数据集来简化对 Redis 的操作和使用,可以让开发者像使用本地集合一样使用 Redis,完全感知不到 Redis 的存在。核心思想 就是:先来的人先把数据改成自己的标识(服务器 ip),后来的人发现标识已存在,就抢锁失败,继续等待。等先来的人执行方法结束,把标识清空,其他的人继续抢锁。定时任务时间先设定好,大概延后几分钟就行,下面的操作包括:设定定时任务时间—打包—启动三个服务—到时间抢锁其中一个服务抢到锁控制台回馈。原创 2024-08-28 18:28:19 · 1188 阅读 · 0 评论 -
【JavaWeb】定时任务和批量插入数据库数据
默认情况下,上述不同的分组组合结果也会不同,而且并不是一组数越大越好,因为线程数如果不自定义的话是默认的,根据不同的电脑,默认分配的线程数是不一样的。这种插入方法过程:建立数据库连接会话,插入一条数据,关闭数据库连接会话。也就是说,一部分线程干了一次活,可能也有一部分线程干了两次活。问题:第一个用户访问还是很慢(因为只有在被请求后的数据才可能被缓存),也能一定程度上保护数据库。// CPU 密集型:分配的核心线程数 = CPU - 1。并发注意执行的先后顺序无影响,不要使用非并发类的集合。原创 2024-08-28 08:43:03 · 414 阅读 · 0 评论 -
【JavaWeb】分布式 session
当服务器 A (localhost:8080)登录用户,然后请求发到服务器 B(localhost:8081),那么结果请求 B 时,B 还会作出相应吗?当用户在 A 登录,所以 session(用户登录信息)存在了 A 上,然后因为 B 没有用户信息,所以不认识用户,也做不出正确的响应。为了测试结果,我们可以用不同的端口启动我们的后端项目。成功携带8080端口登录获得的用户信息(session),来请求响应8081端口的接口。如果要共享 cookie,可以种一个更高层的公共域名,比如 heo.com。原创 2024-01-21 16:53:02 · 837 阅读 · 0 评论 -
【JavaWeb】Swagger + Knife4j 接口文档的整合
【代码】Swagger + Knife4j 接口文档的整合。原创 2024-01-20 10:06:11 · 562 阅读 · 0 评论 -
【JavaWeb】AOP
MyLog。原创 2024-07-30 16:43:20 · 962 阅读 · 0 评论 -
【JavaWeb】公共字段自动填充功能(枚举、自定义注解、AOP、反射)
使用@interface语法来定义注解(Annotation)。注解的参数类似无参数方法,可以用default设定一个默认值,比如。元注解:有一些注解可以修饰其他注解,这些注解就称为元注解(meta annotation)。@Target使用@Target可以定义Annotation;;;;。@Retention元注解@Retention定义了Annotation;;。如果@Retention不存在,则该Annotation默认为CLASS。但是通常我们自定义的。原创 2024-01-06 23:30:26 · 1038 阅读 · 0 评论 -
【JavaWeb】事务管理
所谓事务的传播行为,指的就是在A方法运行的时候,首先会开启一个事务,在A方法当中又调用了B方法, B方法自身也具有事务,那么B方法在运行的时候,到底是加入到A方法的事务当中来,还是B方法在运行的时候新建一个事务?如果在这个方法执行的过程当中出现了异常,就会进行事务的回滚操作。在这两个方法上都添加了@Transactional注解,就代表这两个方法都具有事务,而在A方法当中又去调用了B方法。事务的传播行为:就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行事务控制。原创 2024-01-08 00:11:44 · 1179 阅读 · 0 评论 -
【JavaWeb】Interceptor
实现HandlerInterceptor接口,并重写其所有方法。原创 2024-07-30 11:43:28 · 374 阅读 · 0 评论 -
【JavaWeb】Filter
使用了过滤器之后,要想访问web服务器上的资源,必须先经过滤器,过滤器处理完毕之后,才可以访问对应的资源。在web服务器启动的时候会自动的创建Filter过滤器对象,在创建过滤器对象的时候会自动调用init初始化方法,这个方法只会被调用一次。doFilter方法:这个方法是在每一次拦截到请求之后都会被调用,所以这个方法是会被调用多次的,每拦截到一次请求就会调用一次doFilter()方法。当我们关闭服务器的时候,它会自动的调用销毁方法destroy,而这个销毁方法也只会被调用一次。原创 2024-07-30 11:26:38 · 500 阅读 · 0 评论 -
【JavaWeb】JWT
【代码】【JavaWeb】JWT。原创 2024-07-30 10:38:52 · 374 阅读 · 0 评论 -
【JavaWeb】会话技术
服务器端在给浏览器响应数据的时候,它会将 Session 的 ID 通过 Cookie 响应给浏览器。这个 Set-Cookie 响应头对应的值代表的服务器端会话对象 Session 的 ID。浏览器在第一次请求服务器的时候,我们就可以直接在服务器当中来获取到会话对象Session。如果是第一次请求Session ,会话对象是不存在的,这个时候服务器会自动的创建一个会话对象Session。拿到 ID 之后,就会从众多的 Session 当中来找到当前请求对应的会话对象Session。原创 2024-07-30 10:34:47 · 640 阅读 · 0 评论 -
【JavaWeb】配置文件
application.properties 是 springboot 项目默认的配置文件,所以springboot程序在启动时会默认读取application.properties配置文件,可以使用一个现成的注解:@Value,获取配置文件中的数据。比如:配置文件当中叫endpoints,实体类当中的属性也得叫endpoints,另外实体类当中的属性还需要提供 getter / setter方法。@Value 注解通常用于外部配置的属性注入,具体用法为: @Value(“${配置文件中的key}”)原创 2024-07-30 10:10:20 · 418 阅读 · 0 评论 -
【SpringBoot】分页查询
RequestParam(required = false) 设置可选参数。映射配置文件与源目录结构一致,创建。文件名字也需要一致。封装分页返回结果对象。原创 2024-01-02 11:29:40 · 559 阅读 · 0 评论 -
【Mybatis】动态 SQL
如果不使用动态 sql,当我们条件查询的时候:会出现这样没有传递参数,但是仍组装了这个查询条件。我们需要SQL语句会随着用户的输入或外部条件的变化而变化,也就是。原创 2024-07-29 11:23:27 · 360 阅读 · 0 评论 -
【Mybatis】xml 配置文件
如果需要实现复杂的SQL功能,建议使用XML来配置映射语句,也就是将SQL语句写在XML配置文件中。使用Mybatis的注解方式,主要是来完成一些简单的增删改查功能。resultType属性,指的是查询返回的单条记录所封装的类型。原创 2024-07-29 10:55:39 · 189 阅读 · 0 评论 -
【MyBatis】基础操作
我们输入的参数16并没有在后面拼接,id的值是使用?} 里面的属性名可以随便写,如:#{id}、#{value}。性能更高:预编译SQL,编译一次之后会将编译后的SQL语句缓存起来,后面再次执行这条语句时,不会再次编译。而在测试的过程中,我们会发现有几个字段(deptId、createTime、updateTime)是没有数据值的。},生成预编译SQL,防止SQL注入安全。更安全(防止SQL注入):将敏感字进行转义,保障SQL的安全性。:在SQL语句中,对不一样的列名起别名,别名和实体类属性名一样。原创 2024-07-29 10:51:29 · 1031 阅读 · 0 评论 -
【JavaWeb】封装全局异常处理类
【代码】【JavaWeb】封装全局异常处理类。原创 2024-01-24 08:25:09 · 401 阅读 · 0 评论 -
【JavaWeb】自定义通用返回对象
目的:给返回对象补充一些信息,告诉前端这个请求在业务层面上是成功还是失败,以及具体的描述信息。我们需要自定义错误码(因为前端的HTTP状态码默认的值比较少)和正常错误返回类。原创 2024-01-23 18:57:30 · 524 阅读 · 0 评论 -
【MyBatis-Plus】逻辑删除
注意,只有MybatisPlus生成的SQL语句才支持自动的逻辑删除,自定义SQL需要自己手动处理逻辑删除。对于一些比较重要的数据,我们通常采用逻辑删除。(即用一个字段表示是否删除,实际上始终在数据库没有被删除)当逻辑删除字段为 true,业务处理的时候会自动把该数据当做一个“不存在”的数据处理。原创 2024-01-18 22:18:29 · 534 阅读 · 0 评论 -
【MyBatis】快速入门
MyBatis是一款优秀的,用于简化JDBC的开发。官网:https://mybatis.org/mybatis-3/zh/index.html。原创 2024-07-27 11:29:10 · 760 阅读 · 0 评论 -
【SpringBoot】分层解耦
案例举例:在EmpController运行的时候,就要到IOC容器当中去查找EmpService这个类型的对象,而我们的IOC容器中刚好有一个EmpService这个类型的对象,所以就找到了这个类型的对象完成注入操作。在IOC容器中,每一个Bean都有一个属于自己的名字,可以通过注解的value属性指定bean的名字。IOC控制反转,就是将对象的控制权交给Spring的IOC容器,由IOC容器创建及管理对象。依赖注入,是指IOC容器要为应用程序去提供运行时所依赖的资源,而资源指的就是对象。原创 2023-12-09 15:21:06 · 1280 阅读 · 0 评论 -
【SpringBoot】请求参数
实体类:Address。原创 2023-12-09 14:43:17 · 1680 阅读 · 0 评论 -
【JavaWeb】redis
spring-data-xxx 就是封装了使用 java 操作某个数据库的依赖(数据访问框架,定义增删改查的接口)。key - value 存储系统(区别于 MySQL,他存储的是键值对)加上 @Slf4j 就可以直接使用 log 来记录日志。redis 内存不能无限增加,所以一定要设置过期时间。原创 2024-01-02 16:51:14 · 474 阅读 · 0 评论 -
【MyBatisPlus】核心功能
除了一些以id为条件的简单CRUD,一些复杂条件的SQL语句就要用到一些更高级的功能了。原创 2024-01-16 16:59:08 · 1348 阅读 · 0 评论 -
apache-commons-lang3 的基本使用
【代码】apache-commons-lang3 的基本使用。原创 2024-01-18 23:34:41 · 746 阅读 · 0 评论 -
【MybatisPlus】快速入门
泛型中的 User 就是与数据库对应的 Java 类(PO)。MybatisPlus根据PO实体的信息来推断出表的信息,从而生成SQL的。原创 2024-01-16 09:21:52 · 800 阅读 · 0 评论 -
【JavaWeb】基本项目结构
创建字段可以使用 IDEA 的可视化界面操作,也可以直接执行 sql 语句。drop 是删除表,delete 是删除数据。这里着重讲一些特殊的字段。原创 2024-07-26 15:30:05 · 320 阅读 · 0 评论 -
MyBatisX 基本使用
UserMapper放到mapper包下;impl包和UserService放到service包下;MyBatisX 插件,自动根据数据库生成 domain 实体对象、mapper、mapper.xml、service、serviceImpl。底下的UserMapper.xml是mybatis-plus用到的一个配置文件,会和Mapper文件关联上,对应好路径。在File->Settings->Plugins下载MybatiX插件。右键对应的表,可以看到MybatiX-Generator。原创 2024-01-18 23:26:39 · 1031 阅读 · 0 评论 -
【Tomcat】快速入门
Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP.少量 JavaEE 规范。TomcatTomcat 简单的说就是一个运行 Java 的网络服务器,底层是 Socket 的一个程序,它也是 JSP 和 Servlet 的一个容器。需要注意:Tomcat 与 JDK (一定要设置环境变量)、Servlet 等版本一定要统一。运行 Tomcat 需要 JDK 的支持【Tomcat 会通过 JAVA_HOME 找到所需要的 JDK】。原创 2024-07-25 21:18:21 · 477 阅读 · 0 评论 -
【JavaWeb】初始化 SpringBoot 项目
SpringBoot 是 Spring 提供的一个子项目,用于快速构建 Spring 应用程序。而 SpringBoot 主要用于项目构建。起步依赖:一个 Maven 坐标,整合了完成一个功能需要的所有坐标。自动配置:boot 程序启动后,一些 bean 对象自动注入ioc 容器内嵌 Tomcat,Jetty(无需部署 WAR 文件)外部化配置不需要 xml 配置import org} }} }} }} }原创 2023-12-09 13:25:01 · 709 阅读 · 0 评论
分享