![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SSM
羡云不羡君
这个作者很懒,什么都没留下…
展开
-
@Transactional和synchronized同时使用时的一些问题以及解决
该方法创建一个单一工作线程的线程池,如果此线程在执行过程中失败了,会有一个新的线程来继续完成未完成的工作。newSingleThreadExecutor()创建单线程化的线程池。任务会被保证是顺序执行的(串行),并且再任意时间都不会超过一个活跃线程。由于事务用的是spring的事务,是基于aop实现的,ok找到问题了。然业务代码还是要加@Transactional的!传入一个Callable 任务,返回执行完成的返回值。说到这里,问题就比较容易分析了。其次我逻辑代码也没有问题。首先我的输入没有问题。原创 2023-03-25 18:27:55 · 1653 阅读 · 1 评论 -
spring事务管理中,使用Synchronized修饰事务方法,同步为什么会失效
首先我们的环境是只有一台服务器,一个工程的情况,这种情况下使用synchronized修饰事务方法,同步效果会失效吗?在Controller中,我模拟了5个并发请求保存用户的场景,Service中的保存方法使用了synchronized关键字修饰,运行结果如下:可以看到数据库里面保存了三条相同的数据,这是为什么呢?原创 2023-03-25 16:32:13 · 1253 阅读 · 1 评论 -
mybatis逆向工程-根据表快速生成代码
一.简介根据表生成mapper层三部分代码:实体类,mapper接口,映射文件二.使用mybatis逆向工程1.创建工程:crm-mybatis-generator2.添加插件: <build> <plugins><!-- mybatis逆向工程插件--> <plugin> <groupId>org.mybatis.gen原创 2022-05-12 19:07:43 · 564 阅读 · 1 评论 -
SpringMVC获得请求数据-获得Restful风格的参数
意思就是通过占位符的方式去获取Url中的值原创 2022-04-14 19:38:52 · 278 阅读 · 0 评论 -
ajax的三种方法以及ajax概念
目录Ajax技术主要包括:1.客户端脚本语言:JavaScript2.异步数据获取技术:XMLHttpRequest3.数据交换和操作技术:XML和XSTL4.动态显示和交互技术DOM及基于标准的表示技术XHTML和CSS等。ajax:异步请求特点:局部刷新 异步加载jQuery中的Ajax:jQuery中发起Ajax请求的三种方法:$.get():向服务器获取数据$.post():用于向服务器提交数据。$.ajax用于向服务器提交和获取数据。$.ge原创 2022-05-06 17:46:30 · 7838 阅读 · 1 评论 -
基于bs_pagination插件的分页查询功能
bs_pagination插件是前端插件:使用步骤可以参考:https://blog.csdn.net/weixin_54401017/article/details/125084478bs_pagination插件的官方使用文档:https://labs.pontikis.net/bs_pagination/docs/分析:分页查询是局部刷新页面所以需要用到异步请求前端搜集到参数后通过异步请求发送给controller层,控制层在调服务层,服务层在调用mapper,mapper查询到结果后依次返回给con原创 2022-06-07 10:50:41 · 409 阅读 · 0 评论 -
Spring之JDBCTemplate使用
spring-tx:指的是事务。原创 2022-04-30 15:20:21 · 741 阅读 · 2 评论 -
javaWeb过滤器与springmvc拦截器
一.过滤器1)java类需要继承Filter方法:需要实现3个方法implements Filter{----init:在filter对象初始化的时候执行----doFilter:在请求到达目标资源之前执行----destory:在filter对象销毁的时候执行}2)配置过滤器:web.xml(举例代码如下:)<filter><filter-name>login</filter-name><filter-class>com原创 2022-05-24 10:27:08 · 188 阅读 · 1 评论 -
文件上传与解析excel文件
前台:通过form表单的方式提交同步请求后台:mvc的配置文件:配置文件上传的解析器controller层:解析excel文件原创 2022-06-16 19:02:27 · 390 阅读 · 0 评论 -
编程式事务的相关API
PlatformTransactionManager:事务管理器2.TransactionDefinition:主要封装事务的属性:事务属性主要包含五个方面:传播行为,隔离级别,回滚规则,事务超时,是否可读。2.1事务隔离级别2.2传播行为3.事务的状态信息...原创 2022-04-30 15:45:22 · 161 阅读 · 1 评论 -
基于xml的声明式事务控制
起因:由于转账功能 @Override public void transfer(String outMan, String inMan, double money) { accountDao.out(outMan,money); accountDao.in(inMan,money); }这里的两个转入和转出不是同一个事务,导致这里可能出现out转出执行了而转入in却没有执行的问题。首先:声明式事务的实现是基于AOP1.明确切点:要进行增强原创 2022-05-01 11:21:44 · 230 阅读 · 1 评论 -
springmvc自定义拦截器
步骤:1.创建拦截器实现HandlerInterceptor接口package com.cd.intercepter;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpS原创 2022-05-02 10:11:00 · 457 阅读 · 1 评论 -
模态窗口功能实现的两种方式
方式一:以前使用的方式,缺点很明显window.open("url","_blank");这个打开的是另外一个页面了,不利于与原来那个页面进行数据交互。方式二:模态窗口:模拟的窗口,本质上是<div>,通过设置z-index大小来实现的。初始时,z-index初始参数是<0;所以不显示,需要显示时,z-index的值设置为>0.可以使用bootstrap来控制z-index的大小:(实现讲解)1.首先引入bootstrap所需要的jar包<link h原创 2022-05-24 16:32:57 · 2161 阅读 · 1 评论 -
form表单文件上传的三要素,get和post请求的区别
一,文件上传三要素:1.表单提交方式:post (get方式提交有大小限制,post没有)2.表单的enctype属性:必须设置为multipart/form-data. 根据HTTP协议的规定,浏览器每次向后台提交参数,都会对参数进行统一的编码,默认采用的编码格式是urlencoded,这种编码格式只能对文本数据进行编码,浏览器每次向后台提交参数,都会先把所有参数转化成字符串,然后对这些数据统一进行urlencode编码,3.表单必须有文件上传项:file二.为什么表单的enctype属性:必须设置为mu原创 2022-04-15 16:07:42 · 5270 阅读 · 0 评论 -
Mybatis缓存
为了提高拓展性,Mybatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存。Mybatis包含一个非常强大的查询缓存特性,它可以非常方便的定制和配置缓存。缓存可以极大的提升查询效率。默认情况下,只有一级缓存开启。(sqlsession级别的缓存,也称为本地缓存)一级缓存默认是开启的,只在一次sqlsession中有效,也就是拿到连接到关闭连接。二级缓存需要手动开启和配置,它是基于namespase级别的缓存。Mybatis系统中默认定义了两级缓存:一级缓存和二级缓存。...原创 2022-08-16 18:46:44 · 74 阅读 · 0 评论 -
Spring事务失效的N种场景
Spring团队建议在具体的类(或类的方法)上使用@Transactional注解,而不要使用在类所要实现的任何接口上。在接口上使用@Transactional注解,只能当你设置了基于接口的代理时它才会生效。因为注解是不能继承的,这就意味着如果正在使用基于类的代理时,那么事务的设置将不能被基于类的代理所识别,而且对象也将不会被事务代理所包装。原创 2023-03-17 21:35:31 · 630 阅读 · 0 评论