- 博客(140)
- 收藏
- 关注
原创 使用redis模拟cookie-session,例子:实现验证码功能
*** 配置redisTemplate bean,自定义数据的序列化的方式,避免使用默认的jdk序列化方式* jdk序列化缺点:* 1.阅读体验差* 2.序列化后内容体积比较大,占用过多内存* @param redisConnectionFactory 连接redis的工厂,底层有场景依赖启动时,自动加载* @return*///TODO:方法名必须是redisTemplate,这是bean id 如果自己装配了这个类的bean,SpringBoot就不会自动装配了。
2024-08-23 08:18:19
594
原创 项目技巧1
1.创建出一个父工程,让这个工程的pom.xml来管理子工程的依赖版本,即让子工程的依赖锁定,这样一来我们就可以在父工程的pom.xml文件中直接修改子工程的依赖版本。2. 我们还可以在父工程下创建一个公共子工程,这个工程的作用就是导入其它子工程公共的依赖,这样一来,其他子工程只要导入这个公共子工程,就可以减少代码的冗余。1.通过该父工程聚合若干个子工程,统一管理若干工程的maven生命周期:clean,compile,package,install,deploy等。3.统一管理子工程的插件的版本锁定。
2024-08-21 17:52:08
732
原创 Docker
p:将宿主机端口号(Linux)于容器端口映射,冒号左边是宿主机端口号(外部通过这个端口号来访问),冒号右侧是容器端口。bash:进入容器执行的命令,bash是一个linux终端交互命令,即可以在容器内部使用linux部分命令。-it : 给当前进入的容器创建一个标准输入,输出终端,允许我们于容器交互。运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的。1.带数据卷模式:宿主机目录->数据卷->容器内目录。docker exec:进入容器内步,执行一个目录。--name:给容器起一个名字。
2024-08-18 22:23:15
798
原创 Redis的数据类型及操作命令
你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。否则,以秒为单位,返回 key 的剩余生存时间。brpop KEY_NAME TIMEOUT-->删除列表的最后一个元素,如果给列表为空,则阻塞等待timeout秒,然后列表被删除。如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上。
2024-08-17 16:06:00
786
原创 Linux安装redis和使用redisDesktop连接
因为我们是在linux安装的redis,而redis默认是不可以跨系统的,所以我们要进行修改。我们可以发现这样子启动就无法执行其他命令,所以我们要把redis启动放到后端启动。下载后把该压缩包文件上传到Linux上。下载redisDesktop。我选择的是4.0.0版本。我在soft目录下解压。找到redis官网(
2024-08-16 21:54:03
1077
原创 部署项目到Linux虚拟机和设置静态ip
这一行命令的意思是让此项目不挂起后台允许,且把项目相关的信息重定向到hello.log日志文件上。将 BOOTPROTO = dhcp 改成 BOOTPROTO = static。IPADDR="192.168.230.100" #最后一个数字可以随便写。可以发现,该项目允许成功,我们可以测试看一下。
2024-08-16 20:19:04
288
原创 Linux安装jdk8,tomcat和mysql
下载mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar压缩包。firewall-cmd --reload(让一步生效)firewall-cmd --reload(让一步生效)使用命令修改/etc/profile文件。创建mysql目录,在此目录下进行解压。查看mysql随机生成的密码。选择8.5.27版本。创建用户可以远程访问。
2024-08-15 19:20:17
967
原创 SpringBoot整合Juint,ssm框架
可以比较的是,如果不使用SpringBoot,我们需要在MybatisConfig配置类中写接口扫描的方法来对dao层的所有接口进行扫描,并创建代理对象。由于SpringBoot是简化Spring开发的,而SpringMVC又是Spring的一部分,所以不用去整合,所以要整合的就是mybatis框架。SpringBoot会根据改测试类处于的包名,进而去相同的包名下寻找SpringBoot引导类,并进行加载。,把这个类交给Spring管理,并告诉了Spirng这是一个接口类,对于这个接口类,我使用了。
2024-08-01 22:52:38
345
原创 SpringBoot的基础配置
Configuration//交给Spring管理@ConfigurationProperties(prefix = "people")//与配置文件中的people属性进行映射绑定@Override'}';return age;这个类中使用了两个注解@Configuration-->把这个类交给Spring管理@ConfigurationProperties(prefix = "people")-->与yml配置文件中的people属性进行映射绑定。
2024-07-30 21:41:01
868
原创 ssm框架整合,异常处理器和拦截器(纯注解开发)
Component//交给容器管理@Override//执行原方法之前//返回true才能放行去访问controller@Override@Overridespring核心配置类扫描该自定义的拦截器类,并生成bean@PropertySource("classpath:jdbc.properties")//导入外部文件@Import({JdbcConfig.class, MybatisConfig.class})//加载外部配置类。
2024-07-28 18:19:46
296
原创 SpringMVC入门
MVC(Model View Controller),一种用于创建web应用程序的表现层的模式1.Model(模型):数据模型,用于封装数据2.View(视图):页面视图,用于展示数据jsphtml3.Controller(控制器):处理用户交互的调度器,用于根据用户需求处理程序逻辑。
2024-07-24 22:46:45
850
原创 AOP面向切面编程
去看一下通知类有没有加@Component交给spring管理,有没有加@Aspect,切入点表达式有没有问题,SpringConfig配置类有没有加上注解。"execution(void com.hhh.dao.UserMapper.save())"这个就是一个切点表达式,也就是切。* : 单个独立的任意符号,可以独立出现,也可以作为前缀或者后缀的匹配符出现。在before(),after()方法进行增强内容的书写,书写的代码内容就是。,通知方法返回值的类型可以设置为void,也可以为Object。
2024-07-21 19:05:10
693
2
原创 spring整合mybatis,junit纯注解开发(包括连接druid报错的所有解决方法)
项目大致结构: 第三步:在pom.xml中导入我们所需要的坐标spring所依赖的坐标mybatis所依赖的坐标druid数据源坐标 数据库驱动依赖 第四步:编写SpringConfig配置类 第五步:编写数据源配置类(目的:返回一个数据源bean对象)第六步:编写MybatisConfig配置类第七步:编写dao层的接口文件第八步:编写测试类 结果:我们先来打印一个这个studentMapper对象
2024-07-20 16:47:23
1044
原创 Bean的注解开发
那么spring怎么知道它要被定义成bean,所以在springConfig.xml文件中配置除了可以通过类.class的方式来获取bean还可以通过id来获取bean,我们没有在标签中定义id名,那么对应的bean对象的id名是什么呢?如果我们也可以直接使用。
2024-07-18 23:40:51
735
原创 git和gitee的基本操作
我们可以发现master主分支和dev1分支的内容不同,这是因为没有把dev1分支的内容没有merge(合并)到主分支上所以我们再idea切换到master主分支上合并成功然后就可以推送了。
2024-07-11 18:17:59
955
原创 Filter和ServletContext和Listener
2.登录loginServlet中获取用户名和密码,存到user对象中,然后存在session中(不关闭服务器,这个session就一直在服务器里面),最后重定向到hhh.html。3. 使用一个过滤器对hhh.html进行拦截,先从session中获取用户信息,如果没有登录,获取的是null,就跳转到登录页面,如果不为null,说明登录成功,放行。1.访问hhh.html这个页面时必须先要登录,不登录不能访问,使用过滤器代码书写代码让其跳转到登录页面login.html。javaweb的监听器就是。
2024-06-01 21:27:41
666
原创 MVC和Filter
接口类型,过滤器可以对访问的静态和动态资源进行过滤,既可以过滤请求,也可以过滤响应。m-->model即模型是三层架构模型的业务层(service)和持久层(dao)c-->controller即控制器也是三层架构模型的表现层(web)静态:html,css,js,img。v-->views即视图是三层架构模型的表现层(web)3.在doFilter方法中书写过滤资源的代码。2.拦截web资源对客户端的响应。1.拦截客户端对web资源的请求。2.在实现类实现接口的所有代码。该怎么查看被过滤的资源呢。
2024-05-29 22:51:02
784
原创 使用vue,mybatis,mysql,tomcat,axios实现简单的登录注册功能
目录第一步环境搭建后端:前端:第二步画流程图web:service: dao层: 第三步前端代码的实现这是开始的页面,接下来我们要到router路由下书写#login的路径 路由中的component在我们自己创建的views书写vue文件#/success的success.vue文件第四步:后端代码的实现web层loginServer类web层registerServlet类 service的userServiceImpl类 dao层第五步测试我们现在要使用vue,mybatis,mysql实
2024-05-26 16:27:32
513
原创 Servlet的request对象
访问虚拟目录(项目访问路径)就是我们在Tomcat配置的位置设置的路径,是虚拟的,就是随便定义的 如果设置虚拟路径位置是/ 那么该方法获取的内容是空字符串。2.HttpServletRequest和ServletRequest都是接口,不能创建对象,因此在tomcat底层定义实现类并创建实现类对象。1.HttpServletRequest接口继承了ServletRequest接口,对其父接口进行了扩展,可以处理满足所有http协议的请求。只能获取GET请求的请求参数(因为get请求的请求参数在URL后面)
2024-05-23 22:33:08
876
原创 web前端的路径和Servlet注解开发
2.不带网络三要素/资源路径 这里/不能省略 ,要求访问的资源必须在同一个服务器上前端页面servlet类web.xml浏览器访问。
2024-05-21 22:44:35
427
原创 Web工程和Servlet
注意:导入 的是javax.servlet,而不是变成了tomcat10的jakarta.servlet,不然会出现HTTP状态 500 - 内部服务器错误//在创建的web项目中的自定义类实现Servlet@Override@Override@OverrideSystem.out.println("servlet入门");
2024-05-20 22:36:14
883
原创 vue的异步操作,钩子函数,和Element组件
我们可以看到,刚开始vue对象中的data的user和list都是空的,然后我们向用户名框写数据可以发现写下数据后,因为用户框与user.username双向绑定,user就多了以下内容,点击登陆键由于我现在没有后台服务器,所以list还是没有值。
2024-05-17 22:41:28
584
原创 vue入门
Vue (发音为 /vjuː/,类似) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。
2024-05-16 22:21:53
802
原创 es6新语法和ajax和json
在js中如果定义的函数有参数,调用的时候可以不传递实参,那么形参变量名就是undefined类型,值也是undefined,所以调用函数的时候。在json中,string类型的双引号可以省略,但是建议加上。let 函数名 =(参数1,参数2...)=>{函数体};1.json在js中是一个对象,在java中是字符串。3.json的字符串必须使用双引号包围(单引号不行)如果函数体就一句话,可以省略{}和return。模板字符串,要使用``重音符,使用${标识符}1. {} 表示对象。2. [] 表示数组。
2024-05-15 22:57:19
475
原创 JavaScript进阶2
let 变量名 =window.setInterval(匿名函数,毫秒)let 变量名=window.setTimeout(匿名函数,毫秒);说明:每隔多少毫秒执行一次匿名函数体内部的函数体。window.clearInterval(定时器变量名);let result=window.confirm("提示信息");说明间隔多少毫秒执行匿名函数,函数名称:function(形参列表){}点击取消,返回false;点击确认,返回true;属性:href:要跳转的地址。let 自定义对象名{
2024-05-11 22:21:21
323
原创 html的标签
使用十六进制RGB,例如:#xxyyzz xx表示red的值,yy表示green的值,zz表示blue的值。src:表示引入图片的路径,例如"../img/小熊.jpg",..表示上一级目录。controls:属性值可以不写,该属性表示播放控件,如果不加此属性就无法播放。href:"http://www.baidu.com" 表示跳转到的地址。type属性表示列表属性,默认值是1,然后子标签li依次递增。face:字体样式,例如"楷体","宋体"span标签:属于行内标签,共处一行的标签,img,a等。
2024-05-08 22:14:23
1047
原创 Mybatis进阶4-权限管理
1.权限 //相当于 职责2.用户 //相当于 职员(职员就职于一个职位)3.角色 //相当于 职位(有多个职责)权限管理基础表:权限表,用户表,角色表问题1:一个用户可以有多个角色吗 y问题2:一个角色可以被多个用户使用吗 y问题3:一个角色可以有多个权限吗 y问题4:一个权限可以被多个角色使用 y权限管理需要的表:用户表角色表权限表这就是权限5张表那么我们现在数据库创建五张表Permission表。
2024-05-07 22:22:39
637
原创 Mybatis进阶3--注解开发
我们要模糊查询某个品牌的名字,如果没有输入名字,,就查询status为1的所有品牌名。这两种方法都可以进行模糊查询,但是在java开发中,我们使用第二种,这样才可以使用。权限管理需要的表:用户表角色表权限表。3.角色 //相当于 职位(有多个职责)问题2:一个角色可以被多个用户使用吗 y。权限管理基础表:权限表,用户表,角色表。问题1:一个用户可以有多个角色吗 y。问题4:一个权限可以被多个角色使用 y。问题3:一个角色可以有多个权限吗 y。
2024-05-06 21:43:43
788
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人