Java服务端类
菊花喷射式Y
主角.
展开
-
mysql关于锁问题的延伸
乐观锁认为对同一数据的并发操作不会总发生,属于小概率事件,不用每次都对数据上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,也就是 不采用数据库自身的锁机制,而是通过 程序来实现。2. 乐观锁的时间戳机制 : 时间戳和版本号机制一样,也是在更新提交的时候,将当前数据的时间戳和更新之前取得的时间戳进行比较,如果两者一致则更新成功,否则就是版本冲突。你能看到乐观锁就是程序员自己控制数据并发操作的权限,基本是通过给数据行增加一个戳(版本号或者时间戳),从而证明当前拿到的数据是否最新。原创 2023-02-06 00:00:24 · 133 阅读 · 1 评论 -
@RestController事物@Transactional(rollbackFor = Exception.class)注解无效
例如:“下单购买”例子:购买一般涉及用户、商品库存两个概念,一般情况下,我们需要处理两个表,用户“下单购买”先修改用户表把相应的余额减除(操作1),然后商品库表把对应商品库存减1或减n(操作2);如果不加事物,由于特殊情况,可能操作1成功,操作2失败,就造成用户余额扣除,却未扣除商品库存....加上事物注解,就有回滚效果,发生了特殊情况,造成异常,会直接将操作1和操作2回滚至方法开始之前的状态.一般的请求如查询列表、查询订单这类查询请求,不涉及修改数据库的操作,一般是不会有问题的;原创 2023-02-02 10:50:44 · 418 阅读 · 0 评论 -
@ServerEndpoint 不能注入 @Autowired问题解析
ServerEndpoint修饰生成多对象,对应多个长链接;而spring是单例模式,Autowired属于spring修饰词,Autowired生成为单例,自然无用,websocket修饰Autowired的属性对象,也是null空的。解决方式:1直接创建生成对象;原创 2023-02-01 22:44:42 · 833 阅读 · 0 评论 -
java后台系统与app交互优化记录(不定时更新)
redis里缓存对应的各种实体类的变动,尤其比较重要的信息的变动,如:用户的余额,变动应先变动数据库里用户的余额,变动完之后,也要及时刷新redis缓存的用户余额信息(及token对应的用户信息)Jedis,当然jedis需要配置如:权限验证,键值码过期时间等。app经常访问的信息可以放redis缓存。后台与redis交互可以使用。原创 2023-02-01 11:13:44 · 153 阅读 · 0 评论 -
jpa的saveAll和deleteAll方法效率及优化
jpa自带的接口实现方法:saveAll和deleteAll比较慢;究其原因是因为用了for循环,for循环嵌套save或delete方法,效率自然很慢,用一万条数据实测了下:saveAll用了大约4秒,deleteAll用了大约8秒。可以通过修改jpa底层save语句拼接,代码太长,不放了;原创 2023-01-31 14:58:42 · 3221 阅读 · 0 评论 -
cascade = CascadeType.REMOVE,及联删除无效果
/ 也无效果,只会删除主类,子类不会删除;因为query执行是直接在mysql层面执行crud操作,不涉及及联相关;// 即使设置了cascade = CascadeType.REMOVE及联删除权限,//设置了cascade = CascadeType.REMOVE。//通过jpa自带的delete、deleteAll接口方法,// 可以及联删除子类;因为jpa自带了及联相关处理。//通过query语句删除记录,// 删除主实体类,service服务类删除方法如下。原创 2023-01-31 14:48:36 · 666 阅读 · 0 评论 -
@Transactional在@controller和@Component和@WebServlet不回滚处理
原因:启动程序,现根据spring监听创建spring上下文,在spring扫描包的时候,会将TransactionServiceImpl对象放进spring上下文中。问题就在这里,因为事务在spring上下文中配置,但是获取到的对象时在springmvc上下文中,所以spring无法创建代理对象,因此@Transactional注解最终不会生效。Transactional放在这几个类的方法,但是这些类生成的代理类,没有生成事物注解相关的代理类。原创 2023-01-19 14:27:39 · 520 阅读 · 0 评论 -
jsp页面如何调试
通过js的console.log搭配运行的浏览器的调试模式,通过浏览器的控制台输出调试查看。原创 2023-01-17 15:59:54 · 866 阅读 · 0 评论 -
mysql添加外健ERROR 1824: Failed to open the referenced table
两个表引擎不一样,修改一致就可以。最好都是innoDB引擎,其他引擎功能少.原创 2023-01-12 15:40:41 · 2359 阅读 · 1 评论 -
java虚拟路径映射
@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) { String os = System.getProperty("os.name"); //如果是Windows系统 if (os.toLowerCase().startsWith("win")) { registry.addResourceHandler("/app_file/**")原创 2022-07-01 17:31:55 · 1178 阅读 · 0 评论 -
怎么解决 Found a swap file by the name “/etc/.profile.swp”owned by: root dated
解决办法:直接按回车进入vi编辑器,然后输入:q!退出编辑器;在终端输入rm -f /etc/.profile.swp然后回车,再进入vi编辑器提示就消失了;欢迎加群讨论:565191947原创 2020-11-15 18:29:59 · 7742 阅读 · 0 评论 -
request.getRequestDispatcher(url) /error 404
二、使用语法 request.getRequestDispatcher(“/资源URI”).forward(request,response) response.sendRedirect(“/web应用/资源URI”); 在进行web开发时,跳转是最常见的,包括2种跳转:第一种是request.getRequestDispatcher().forward(request,response):1、属于转发,也是服务器跳转,相当于方法调用,在执行当前文件的过程中转向执..原创 2020-09-16 00:01:21 · 4101 阅读 · 0 评论 -
java时间戳正确,时间显示错误问题
从数据库取出时间戳为十位int类型,精确到秒的时间戳web页面拿到显示为“yyyy-MM-dd hh:mm:ss”为变成“1970-01-01 20:20:20”,与数据库存入的当时时间,相差了几十年仔细观察是转换为"long"型时出错:如图SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); dateFormat.setTimeZone(TimeZone.getTimeZone("原创 2020-09-15 22:40:51 · 2763 阅读 · 0 评论 -
jpa代码生成器 java数据库
import com.intellij.database.model.DasTableimport com.intellij.database.model.ObjectKindimport com.intellij.database.util.Caseimport com.intellij.database.util.DasUtilimport java.text.SimpleDateFormat/* * Available context bindings: * SELECTION.原创 2020-09-07 01:00:28 · 505 阅读 · 0 评论 -
reboot后centos服务器无法ssh连接
问题描述安装好了centOS服务器,一直用Secure CRT工具通过ssh服务来远程连接linux,很方便的进行各种操作。今天偶然尝试了一下在非root的一般用户下执行重启服务器的命令,发现一般用户是没有权限执行重启的,果断使用sudo命令再次执行,终于重启成功,却发现Secure CRT再也连不上服务器了,郁闷不已,去网上查找各种资料总算有了一点粗浅的认识,记录下来,也让其他的linux beginner们能够少走些弯路吧。普通用户下执行重启命令:shutdown -r now 或者原创 2020-07-13 01:24:56 · 10232 阅读 · 2 评论 -
intellij idea打包jar无法访问jsp,改为打war包解决。
工程包含:app接口返回json信息(api)、基于jsp页面的后台管理系统(web页面)那么如何打一个包,就可以既有app需要的接口访问功能,又有浏览器可以访问的网站功能呢?下边是做法:1.打开idea,新建项目,选择“spring Initializr”方式,这样确保有后台程序main函数入口2.接下来选择springJPA...原创 2020-07-03 02:08:17 · 762 阅读 · 0 评论 -
windows服务器调出环境变量窗口
win+R输入 :sysdm.cpl原创 2020-06-29 23:18:20 · 1651 阅读 · 0 评论 -
windows系统后台运行jar或war包
win+r,然后输入cmd,进入终端,输入:javaw -jar xxx.jar或javaw -jar xxx.war然后关闭终端,打开进程管理器,看!是不是后台运行了更多疑问,欢迎加群:565191947原创 2020-06-07 14:34:09 · 1016 阅读 · 2 评论 -
2059 authentication plugin'caching_sha2_password' cannot be loaded (mysql)
从错误信息可知caching_sha2_password不能加载。以上报错是由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。大安装Mysql数据库的主机上登录Mysql对应的用户,上面连接时用的用户为root,所以我们登录root用户。执行命令(命令语句的“;”不可少)...原创 2020-03-09 00:15:44 · 774 阅读 · 0 评论 -
java打包部署到服务器cannot creat bean name:xxxx解决
数据库地址为本地的,未更换为服务器导致model加载失败,把数据库换为服务器数据库的地址,好了。原创 2020-02-19 00:06:37 · 376 阅读 · 0 评论 -
Servlet.service() for servlet [dispatcherServlet] in context with path [] 报错解决
背景:SpringBoot项目启动成功,访问API时报错。页面显示 whitelabel error page,控制台报错:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request原因:Service层实现类未添加注解@Autowired。@A...原创 2020-02-09 17:39:42 · 2256 阅读 · 0 评论 -
com.mysql.jdbc.driver报错
1.在application.property里添加:spring.datasource.url=jdbc:mysql://127.0.0.1:3306/db_feimaspring.datasource.username=rootspring.datasource.password=59421314spring.datasource.driver-class-name = com.m...原创 2020-02-08 17:36:35 · 1312 阅读 · 1 评论 -
Error starting ApplicationContext. To display the conditions report re-run your application with '
方法1:在application。property文件配置数据库。方法2:删除pom文件里对数据库的支持,包括jdbc、jpa等。欢迎加群讨论:565191947原创 2020-02-08 03:35:23 · 579 阅读 · 0 评论 -
window环境下mysql远程连接失败
两种方式解决。一。修改root的权限USE mysql;SELECT 'host' FROM USER WHERE USER='root';UPDATE USER SET HOST = '%' WHERE USER ='root';FLUSH PRIVILEGES;第一句是以权限用户root登录第二句:选择mysql库第...原创 2020-02-07 07:02:55 · 949 阅读 · 0 评论 -
windows服务器搭建mysql(you must reset your password using)
1.windows服务器自带的IE浏览器右上角-设置形状按钮-Internet选项-安全-自定义设置,找下把java运行、活动启用,保存,确定。这么做是为了从Internet下载mysql2打开mysql官网,下载对应的压缩包,我的是64系统下的mysql的64位包,下载好点击mysql压缩包任意一个文件,不是文件夹,会弹出“先解压到哪里呢?”,选一个文件解压,并记住解压路径3.win...原创 2020-02-07 06:00:58 · 338 阅读 · 0 评论 -
AFNetwork数据post,后台接受不到。
一直以为是form-data跟x-www-form-urlencoded的方式的原因,实际上原因是因为post方式,一种是将数据转换为data放入请求体,一种是在请求头,我们java后台请求体的解析不到。解决方法,AFNetWork里边的post有两种方法:分别对应上边的两种情况,替换下就好了:[session POST:@"" parameters:@"" progress:nil succes...转载 2018-03-21 10:58:48 · 1496 阅读 · 0 评论 -
MD5大小写,32,16
更多问题,欢迎加群讨论:qq群 :565191947MD5简介简单说明:MD5:全称是Message Digest Algorithm 5,译为“消息摘要算法第5版”效果:对输入信息生成唯一的128位散列值(32个字符)MD5生成的是固定的128bit,即128个0和1的二进制位,而在实际应用开发中,通常是以16进制输出的,所以正好就是32位的16进制,说白了也就是32个16进制的数字。MD5的特...转载 2016-11-20 20:26:14 · 6908 阅读 · 0 评论 -
iOS用户点击推送消息进入应用后,如何跳转到对应的ViewController
当iOS用户通过点击推送消息进入应用时,在AppDelegate的- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions方法中,我们可以通过[launchOptions objectForKey:UIApplicationLaunchOpt...转载 2016-12-01 23:44:34 · 4019 阅读 · 0 评论 -
iOS中使用opencv进行图像识别操作(一)步骤很多,这一篇只是讲了第一步.
前言OpenCV ,是一个开源的跨平台计算机视觉和机器学习库,通俗点的说,就是他给计算机提供了一双眼睛,一双可以从图片中获取信息的眼镜,从而完成人脸识别、去红眼、追踪移动物体等等的图像相关的功能。更多具体的说明可参见 OpenCV 官网。导入工程导入 OpenCV 到 Xcode 的工程中还是比较简单的,从官网下载对应的 framework,直接丢到 Xcode 的工程中,然后在你想用 OpenC...转载 2016-12-05 02:06:05 · 6542 阅读 · 0 评论 -
Java正确URL解码方式:URLDecoder.decode
更多问题,欢迎加群讨论:qq群 :565191947[java] view plain copy Exception in thread "main" java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "u9" a...转载 2017-02-06 00:18:58 · 8931 阅读 · 1 评论 -
[实战]利用RTMP实现直播系统
版权声明:本文为博主原创文章,未经博主允许不得转载。一,目标:利用开源或者免费工具实现一个直播系统;同时支持在浏览器、播放器和嵌入到PC应用或者移动APP中观看直播。二,技术选型:视音频源端:: Adobe Flash Media Live Encoder 3.2,可以在windows和mac安装;如果你已有一些支持RTMP的采集设备,那是最好了;或许你想在自己的应用中实现,这样你就必须自己开发处...转载 2017-03-06 00:04:41 · 3015 阅读 · 1 评论 -
windows下搭建ffmpeg+nginx+rtmp-module搭建实时视频环境
下载ffmpeg的Windows静态版; 下载nginx-rtmp-windows版:https://github.com/illuspas/nginx-rtmp-win32解压启动nginx 启动ffmpeg,打开ff-prompt.bat这里通过将摄像头的rtsp流转成rtmp流和hls流来实时播放通过rtsp生成rtmp流:ffmpeg -i "rtsp://admin:12345@192....转载 2017-03-05 22:15:08 · 8583 阅读 · 0 评论 -
短信防刷(开发时遇到的大问题,一天几万的钱都被刷了,至今未找到十全十美的方法,只是加入了极验图形验证,但是2.0极验基本已被破解,不知道3.0的效果怎么样)
1.基本的缓存机制。在多少时间内重复操作均下发同一验证码。(第一次请求短信接口,然后缓存结果,下次再次请求直接返回缓存内容。)2同一手机号每天最多下发三次。3无耻一点的,像我鹅厂,让用户给你发。一、防止同一手机刷短信1、同一手机60秒才能再发送(就是这样也能刷1440条,参考2)2、同一手机一天连续发送20次,此号码拉黑处理二、防止不同手机刷1、同一IP一天连续发送20次,此ip拉黑处理更多问题,...转载 2017-07-10 11:00:18 · 1732 阅读 · 0 评论 -
java安装redis
在Java程序中使用Redis之前,需要确保在机器上安装了Redis的Java驱动程序和Java环境。可以先在将Java电脑上并配置好环境。安装现在,让我们看看如何设置Redis Java驱动程序。下载jedis.jar - http://repo1.maven.org/maven2/redis/clients/jedis/2.1.0/jedis-2.1.0-sources.jar ,确保下载的j...转载 2018-03-06 23:05:19 · 492 阅读 · 0 评论