1. 问题描述 对 Controller 类进行切面编程,没有warning,没有error,一直无效。。。 2. 问题原因 怀疑切点表达式错误(其实没错),切入点表达式如下所示: //定义切点表达式 @Pointcut("execution(com.wslxxy.controller..(..))") privatevoidmyPointCut(){ } 项目目录如下所示: 各种修改切点表达式,没有结果,而且觉得错。 感觉没有逻辑错误  那就可能是配置错误,有我不知道的什么点被忽略了。 对比一下,学习AOP时只对Dao层进行...

使用Callable接口创建线程相较于实现 Runnable 接口方式的优点:可以有返回值,可以抛出异常。  1. 概述 Callable 接口的源码如下所示:@FunctionalInterface 表名是一个函数式的接口,可以有返回值 V(泛型),可以抛出异常 throws Exception。call 方法类似  Runnable 接口 中的 run 方法,作为线程的 执行体。 @FunctionalInterf...

Description定义一个二维数组: intmaze[5][5]={0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。Input一个5×5的二维数组,表示一个迷宫。数据保证有唯一解。Output左上角到右下角的最短路径,格式如样例所示。SampleInput0100001010000000111000010SampleOutput(0,0)(1,0)(2,0)(2,1)(2,2)(2,3)...

1. 问题描述 以下两个表达式一直判断失效: <c:iftest="${homework.status'0'}"> 已提交作业 </c:if> <c:iftest="${homework.statuseq'0'}"> 已提交作业 </c:if> 2. 错误原因 错误排查:用${homework.status} 在页面上打印了一下, 打印结果为:0 。证明传参成功,也没有多余的空格。 以前一直这样写也没错,后来看了一下homework.status,homework.status我使用的cha...

  anLrwkgbyYZS   2023年12月30日   36   0   0 数据数据错误解决错误解决

在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让队列有空间,那么生产者就会一直无限等待下去。因此,一般情况下,当队列满时,会让生产者交出对临界资源的占用权,并进入挂起状态。然后等待消费者消费了商品,然后消费者通知生产者队列有空间了。同样地,当队列空时,消费者也必须等待,等待生产者通知它队列中有商品了。这种互相通信的过程就是线程间的协作。...

  anLrwkgbyYZS   2023年12月30日   44   0   0 javaTestSystemTestJavaSystem

Lock锁,可以得到和 synchronized一样的效果,即实现原子性、有序性和可见性。 相较于synchronized,Lock锁可手动获取锁和释放锁、可中断的获取锁、超时获取锁。 Lock 是一个接口,两个直接实现类:ReentrantLock(重入锁),ReentrantReadWriteLock(读写锁)。 1. 概述 Lock锁,使用时手动获取锁和释放锁,比synchronized更加灵活;可中断的获取锁;超时获取锁。 Lock 锁的基本用法, l.lock()方法进行上锁, l.unlock()方法进行解锁,如下所...

  anLrwkgbyYZS   2023年12月30日   39   0   0 d3javaSystemJavaSystemd3

1.错误信息如下所示  在使用Spring 的切面编程时发生错误: Causedby:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor0':Cannotresolvereferencetobean'txPointcut'whilesettingbeanproperty'pointcut';nestedexceptionisor...

本文里面讲的是广义上的可重入锁,而不是单指JAVA下的ReentrantLock。 可重入锁,也叫做递归锁,指的是同一线程外层函数获得锁之后,内层递归函数仍然有获取该锁的代码,但不受影响。 在JAVA环境下ReentrantLock和synchronized 都是可重入锁。 下面是使用实例: packagereentrantLock; publicclassTestimplementsRunnable{ publicsynchronizedvoidget(){ System.out.println(Thread.currentThread().getId()); set()...

  anLrwkgbyYZS   2023年12月30日   38   0   0 重入锁Test重入锁SystemTestSystem

传输控制协议TCP(TransmissionControlProtocol),全双工通信、提供面向连接(只能有两个端点)、可靠的数据传输服务、面向字节流。 1. 概述 传输控制协议TCP(TransmissionControlProtocol),提供面向连接、可靠的数据传输服务,其数据传输的单位为报文段。 面向连接:在使用TCP协议之前,必须建立TCP连接,在传送数据完毕之后,必须释放连接。 TCP连接的三次握手(建立连接)与四次挥手(释放连接)。 TCP连接只能有两个端点:点对点  即一对一。 TCP提供可靠交付的服务:通过TCP连接传送的数据无差错、不丢...

  anLrwkgbyYZS   2023年12月30日   40   0   0 数据数据TCP缓存缓存TCP

Redis 使用的是单线程架构和I/O多路复用模型来实现高性能的内存数据库服务。  1. 客户端访问Redis服务器 每次客户端的调用都经历了发送命令、执行命令和返回结果三个过程,如下图所示(该图出自《Redis开发与运维》,付磊老师、张益君老师编著,下同)。 执行命令,因为Redis 使用单线程进行处理,所有的命令都会进入一个队列,然后逐个被执行,即不会有命令被同时执行,如下图所示。发送命令、返回结果和命令排队肯定不想描述的那样简单,Redis使用I/O多路复用解决I/O问题。 2. Redis 为什么这么快? 主要原因有...

类是构造对象的模板,由类构造(construct)对象的过程称为创建类的实例(instance)。 对象中的数据称为实例域(instancefield),操纵数据的过程称为方法(method)。 对于每个特定的类实例(对象)都有一组特定的实例域值,这些值的集合就是这个对象的当前状态(state)。  1. 封装性 封装性:将数据和对数据的操作封装起来,对象状态(属性)由这个对象自己的行为(方法)来读取和改变,隐藏细节部分。 Java 中属性的封装,无特殊情况都是用的private 修饰符, 用private 修饰符声明该属性为私...

  anLrwkgbyYZS   2023年12月30日   39   0   0 初始化Test初始化SystemTestSystem

策略设计模式(Strategy):可以整体的替换一个算法的实现部分,能够整体的替换算法,能让我们轻松地用不同方法解决同一个问题。  1. 示例程序 举一个收银的例子,普通用户打95折,会员打8折,超级会员打6折。 如果在一个函数里面去解决这些问题,那么增加会员类型和折扣变化的时候会导致代码臃肿,难以维护。 可以使用策略模式去解决这个问题。策略模式只适用管理一组同类型的算法,并且这些算法是完全互斥的情况。也就是说任何时候,多个策略中只有一个可以生效的那一种。 策略模式中出现的角色: 策略接口,Customer.java。 具体策略:CommonCustomer.java...

锁降级: 是指保持住当前的写锁(已拥有),再获取读锁,随后释放写锁的过程。 1.  锁降级的用途 锁分为读锁(共享锁)、写锁(排他锁)两种: 一个线程获取了写锁,其他线程无法获取写锁、读锁,进行阻塞; 一个线程获取了读锁,其他线程无法获取写锁(进行阻塞),但是可以获取读锁; 如果只使用写锁,那么释放写锁之后,其他线程就会获取到写锁或读锁,使用锁降级可以在释放写锁前获取读锁,这样其他的线程就只能获取读锁,对这个数据进行读取,但是不能获取写锁进行修改,只有当前线程释放了读锁之后才可以进行修改。 这样有什么好处: 相对于一直使用写锁,锁降级可以减少其他读线程...

SpringBoot 可以在application.properties 中配置信息spring.profiles.active来读取不同环境的配置文件。 1.  SpringBoot2读取不同环境的配置文件 工程运行环境可能有:开发环境、测试环境和生产环境,可以通过修改application.properties 来获取不同环境的的配置信息。 首先我们先讲一下用到的 @Value 注解, @Value 可以获取application.properties 中的配置信息,先看一个小实例。 ...

JVM内存中程序计数器、虚拟机栈、本地方法栈3 个区域随线程而生,随线程而灭。这几个区域不用考虑回收问题,因为方法结束后 或者 线程结束后,内存就跟着回收了。而Java堆和方法区不一样,一个接口的多个实现类需要的内存不一样,一个方法的多个分支需要的内存也可能不一样,我们只有在程序运行的时候才知道会创建那些对象,这部分内存的分配和回收都是动态的,垃圾收集主要所关注的就是Java堆和方法区。 1.可达性分析算法 可达性分析算法,这个算法的思想,通过一系列的称为GC Roots 的起始点,当一个对象到 GC Roots&nb...

文章目录 一、分布式系统的三个指标 二、Partitiontolerance 三、Consistency 四、Availability 五、Consistency和Availability的矛盾 分布式系统(distributedsystem)正变得越来越重要,大型网站几乎都是分布式的。 分布式系统的最大难点,就是各个节点的状态如何同步。CAP定理是这方面的基本定理,也是理解分布式系统的起点。 本文介绍该定理。它其实很好懂,而且是显而易见的。下面的内容主要参考了MichaelWhittaker的文章。 一、分布式系统的三个指标 1998年,加州大学的计算机科学家EricBrewe...

1. 事务概述 1.1事务的四个特性 ACID  原子性(Automic): 事务作为一个整体被执行,包含在事务中对数据库的操作,要么全部被执行,要么全部不被执行。 一致性(Consistency):事务应该保证数据库从一个一致状态转变为另外一个状态。 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。 持久性(Durability): 已被提交的事务对数据库的修改应该被永久的保存在数据库中。 1.2事务的隔离级别 首先有如下三个并发问题: 脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么...

Semaphore 控制访问特定资源的线程数量,新建规定数量的许可证,获得许可证可以继续执行,未获得需要阻塞,执行完成归还许可证,这样其余的线程(未获得许可证)才可以执行。例如:Semaphore用于流量控制,例如只有10个数据库连接,可以用Semaphore控制只有10个线程访问数据库,这样就不会报错无法获取数据库连接。  1. Semaphore的部分方法 方法 描述 publicSemaphore(intpermits) 构造函数:设置许可证数permits。 publicSemaphore(intpermits,booleanf...

1.TCP连接的建立 三报文握手: 客户端主动打开连接,服务器被动打开连接 (1)TCP客户端创建客户进程首先创建传输控制模块TCB,向服务器发出连接请求报文段,不能携带数据。 (2)服务器接收请求报文段,如果同意建立了请求,则向客户端发送确认。 (3)客户端还要向服务器发送确认,可以携带数据,防治已经失效的请求突然又传送到了服务器,例如A发送请求报文段给B,这个请求报文段在某网络结点延迟,等到B收到该请求报文段,A已经关闭了连接,B发送响应,A收不到响应,这样B就会一直等待,浪费资源。 三报文握手如下图所示(该图出自《计算机网络第七版》,谢希仁老师编著,下同)。 2.&nbsp...

继承:可以基于已存在的类构造一个新类,继承已存在的类就是复用(继承)这些类的方法和域,在此基础上,还可以添加一些新的方法和域。 1. 继承性  继承性: 把多种有着共同特性的多的类事物抽象成一个类,这个类就是多个类的父类。父类的意义在于可以抽取多个类的共性,代码复用,减少代码量。 例:三个类,Pupil类(小学生),MiddleSchoolStudent类(中学生类),CollegeStudent类(大学生类),他们有一个特性,都要有名字,学号,班级等等属性,都要去上课,考试等行为。 我们可以写一个父类为student类(学生),在Student类中实现名字...

  anLrwkgbyYZS   2023年12月30日   47   0   0 子类父类SystemSystem父类子类
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~