- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 前后端交互,后端跨域访问配置
跨域访问的话,在后端,也就是java层面,我们可以定义一个配置类,实现WebMvcConfigurer这个接口,重写addCorsMappings这个方法。
2023-12-19 10:06:45
446
原创 MySQL的下载与配置
C:\mysql-8.2.0-winx64\mysql-8.2.0-winx64\bin 配置到path中。mysql是一个命令,在bin目录下,对应的命令文件是mysql.exe,如果将bin目录配置到环境。注意:mysql默认情况下root账户是不支持远程登录的,其实这是一种安全策略,-h中的h实际上是host单词的首字母。在-h后面的是远程计算机的ip地址。-uroot 表示登录的用户是root,u实际上是user单词的首字母。-p 表示登录时使用密码,p实际上是password单词的首字母。
2023-12-13 17:12:31
375
原创 mybatis之级联查询
select="com.yan.mapper.EmpMapper.findAllEmpByDeptNO" 要调用的另一个的sql语句。fetchType="eager" 积极加载 lazy 是懒加载。jdbcType="INTEGER" 传入参数的数据库的类型。javaType="list" 对应的类型。column="deptno" 传入的参数。* 根据deptno 查询部门信息。* 根据部门号查询多个 员信息。--级联查询的方式-->
2023-11-21 15:02:35
186
原创 实现一个容器,提供两个方法,add(),size() 写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数为5时,线程2 给出提示并结束。
【代码】实现一个容器,提供两个方法,add(),size() 写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数为5时,线程2 给出提示并结束。
2023-11-21 09:51:06
48
原创 SSM框架的整合
- 包含 beans、core、expression、aop 等依赖-->-- 自动加载 Spring 工厂、支持文件上传等-->-- 封装 jdbc 、包含 spring-tx 事务管理依赖-->-- 动态代理 -->-- springmvc 核心依赖 -->-- mybatis-spring 整合依赖 -->-- mysql 驱动 -->-- 数据库连接池 -->-- json 格式转换-->
2023-11-20 22:07:45
38
原创 单例模式(DCL)
在 Java 开发中,单例模式是一种常用的设计模式,其目的是确保某个类只有一个实例。DCL(double-checked locking) 是一种线程安全的单例模式。
2023-11-16 13:46:26
250
1
原创 Spring AOP的实现
AOP 面向切面编程,可以在不修改现有代码的情况下,对程序的功能进行拓展,,主要可以用来AOP实现的原理就是,在有接口的情况下,使用JDK动态代理,在没有接口的情况下使用cglib动态代理。
2023-11-16 13:29:32
138
1
原创 Cglib动态代理
面向父类 解决了JDK 动态代理的缺点与不足。--这个里面包括了所需的jar包-->3 只能读取接口中方法的上注解。1 必须有接口和实现类。2 增强接口中定义的方法。要依赖第三方JAR包。
2023-11-14 10:16:12
56
1
原创 JDK动态代理
在不修改原有代码的基础之上,通过代理对象来增强相对应的方法,从而达到扩展的功能,同时 也满足了开闭原则,对扩展开放,对修改关闭。JDK动态代理,一定要有接口和实现类的存在。代理对象只能增强接口中定义的方法 实现类中其他和接口无关的方法是无法增强的。代理对象只能读取到接口中方法上的注解 不能读取到实现类方法上的注解。
2023-11-13 21:00:00
73
原创 线程中常用的方法
结果: 三、线程的优先级cpu调度线程的优先级有1 - 10 这10个级别。四、线程的礼让通过Thread类中的静态方法 yield()来实现注: yield() 方法释放了cpu,但是不释放锁资源通过Thread类中的静态方法sleep() 实现的注:sleep() 方法不释放锁,释放cpujoin 方法 释放锁,抢占CPU1. 如果在main线程中调用了t1.join(),那么main线程会进入到等待状态,需要等待t1线程全部执行完毕,在恢复到就绪状态等待CPU调度。2.
2023-11-13 15:37:24
59
原创 代理模式和静态代理
静态代理中代理类与被代理类都需要实现同一个接口。必须事先知道要代理的类,并且要知道面向那个接口来实现的。在实际开发中,有很多的类需要被代理,并且实现并不能知道要代理那个类,所以继续使用静态代理的话,工作量会增加,效率低,代码复用率不好。是通过代理对象访问目标对象,这样可以在目标对象基础上增强额外的功能,如添加权限,访问控制和审计等功能。
2023-11-12 14:50:35
48
1
原创 线程的基础概念
根本区别,线程是程序执行的基本单位,进程是操作系统进行资源调度和分配的基本单位。是程序执行的基本单位,多个线程共享资源,操作系统进行运算调度的最小单位。CPU在极短的时间内,反复切换执行不同的线程,看似好像是并行,但是只是CPU高速的切换。资源方面,进程之间的资源是相互独立的,线程之间的资源是相互共享的。开销方面 ,进程的创建、销毁、调度开销大,线程的话,开销小。上下文切换,进程的话,速度比较慢,线程的话 ,速度比较快。一个进程,包含多个线程。1.线程越多,占用内存越多,上下文切换时,额外的耗费资源。
2023-11-10 16:03:39
34
1
原创 二、Shiro框架的基本使用(二)
我们可以仿照JdbcRealm来实现一个自定义的Realm对象。......JdbcRealm 继承了 AuthorizingRealm下面是自定义Realm实现的步骤。
2023-11-10 09:23:03
49
1
原创 二、Shiro框架的基本使用(一)
超级管理员=user:add,user:delete,user:update。实现权限校验时,库表设计方案, 经典五张表(用户认证,授权)admin=admin,超级管理员,管理员,普通用户。注:在实现权限校验时,必须先开启,默认是false。基于文件存储用户名、密码,角色等信息,支持。创建maven项目,添加如下依赖。代码测试:(认证和角色校验)shiro.ini文件。实际上使用三张表也可以。
2023-11-07 22:07:32
53
原创 JDK中自带的线程池
核心线程数一个,最大线程数一个,生存时间的0,单位是毫秒 ,使用的任务队列是。不适合并发,可能会引起I/O阻塞,影响线程相应的操作。一、newSingleThreadExecutor(
2023-11-05 22:53:36
124
原创 CAS实现原理
在多线程的环境下,在某一个线程执行时,先读取这个值E,在这个线程执行的过程中算出新值,然后,这个线程读取到的旧值和原本的旧值做比较,看值是否发生改变。若相等,则说明这个线程在执行中,其他线程不能执行这部分代码。在内部调用了CompareAndSwapInt()方法,后面是native方法。刚开始是5,中间状态是8,最终结果是5。ABA 问题,主要是指其他线程修改数据后,在把数据修改成和程序未执行前的旧值是一样的。lock cmpxchg 指令 来实现的。我们可以清楚的看到,CAS的操作原理。
2023-10-13 22:40:08
40
原创 在排序数组中查找元素的第一个和最后一个位置
1.先进行二分查找,看要找的数是否在数组里,如果在,进行下一步处理,不在,返回-1,在主函数里直接返回{-1,-1}即可。2.这个数在数组里,以这个数为中心,找这个数的最左边界和最右边界。
2023-04-06 22:46:58
66
1
原创 两数之和的解法
具体解法:判断target-nums[i]是不是在map,如果在map里,直接返回对应的下标值。否则,将这个数添加到map集合中。如果上述条件不成立,返回空。两次循环,nums[i]+nums[j]==target;用这个条件判断,并且输出即可。第二种解法 用Map集合。第一种解法(暴力法)
2023-04-02 18:49:48
332
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人