首页
关于
留言
统计
友链
壁纸
影视
留言找电影
Search
1
java jdk17版本使用cglib报错问题解决
321 阅读
2
在Java中修复json数据,json格式不正确,如何在Java中修复不正确的json
118 阅读
3
Java实现双链表插入排序~渡星河全网首发
107 阅读
4
Java打印某年某月的日历~不调用函数
76 阅读
5
npm nvm 淘宝镜像最新可用
72 阅读
代码笔记
Java
css
Javascript
数据库
安卓开发
Java 功能实例
Java 封装
我的日常
影音分享
文案
恋爱问答
资源分享
电脑游戏
实用APP
登录
/
注册
Search
标签搜索
java
java作业
恋爱
动漫
3A大作
独行月球
电影分享
总之就是非常可爱
JavaScript
office
破解
mysql
vue
java打包
跨域
tomcat解决乱码
bug解决
tomcat
vscode
渡星河
累计撰写
94
篇文章
累计收到
30
条评论
首页
栏目
代码笔记
Java
css
Javascript
数据库
安卓开发
Java 功能实例
Java 封装
我的日常
影音分享
文案
恋爱问答
资源分享
电脑游戏
实用APP
页面
关于
留言
统计
友链
壁纸
影视
留言找电影
搜索到
81
篇与
的结果
2023-03-10
Spring中使用@Transactional注解,Bean对象注入发生类型转变异常解决方法
方法一在使用Spring中使用@Transactional注解的时候,Spring会使用AOP代理来织入事务处理逻辑。因为代理对象是动态生成的,所以在注入Bean时,实际上注入的是代理对象,而不是原始对象。代理对象的类名通常是以$Proxy开头的,后面跟着一个数字,表示这是代理对象的序号。这个序号是根据代理对象的生成顺序生成的,所以不同的代理对象会有不同的序号。因此,当你在使用@Transactional注解时,如果你注入的是一个类,那么实际上注入的是代理类。如果你想获取原始对象,可以使用Spring提供的AopUtils.getTargetClass()方法获取代理对象的原始类,例如:Object target = AopUtils.getTargetClass(bean); 其中,bean是代理对象,target是原始对象。方法二你可以使用try-with-resources语句块来自动关闭Spring的应用上下文对象,以确保资源能够得到正确的释放。同时,也可以使用更加类型安全的getBean()方法来获取原始类型的Bean实例,避免了类型转换带来的不便。下面是修改后的代码示例:try (ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("balance.xml")) { AccountService accountService = context.getBean(AccountService.class); accountService.transfer("2", "1", 400.0); } 在这个代码中,我们使用try-with-resources语句块创建Spring的应用上下文对象,并且使用getBean()方法来获取原始类型的AccountService实例。这样就避免了类型转换带来的不便。最后,在完成操作之后,try-with-resources语句块会自动关闭应用上下文对象。
2023年03月10日
18 阅读
0 评论
1 点赞
2023-03-09
java jdk17版本使用cglib报错问题解决
我们先看报错Exception in thread "main" java.lang.ExceptionInInitializerError at com.spring6.cglib.Client.main(Client.java:7) Caused by: net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InaccessibleObjectException-->Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @66cd51c3 at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:464) Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @66cd51c3 at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) 解决方法也就是说我们jdk17要想使用这个cglib就必须解决这个问题,这个问题也就是兼容问题和jdk17的安全问题,像1.8版本的就没啥事配置如下--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.net.util=ALL-UNNAMED
2023年03月09日
321 阅读
0 评论
1 点赞
2023-03-07
Spring框架生命周期十步demo
spring.xml文件配置<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- <bean id="test" class="com.spring6.web.UserAction"/>--> <!-- <bean id="beanlife" class="com.spring6.service.BeanLife" init-method="init" destroy-method="destroy"> <property name="name" value="你好"/> </bean>--> <bean class="com.spring6.service.BeanBeforePost"/> <bean id="beanTenLife" class="com.spring6.service.BeanTenLife" init-method="init" destroy-method="destroySingleton"> <property name="name" value="你好"/> </bean> </beans>BeanTenLife类代码package com.spring6.service; import org.springframework.beans.BeansException; import org.springframework.beans.factory.*; public class BeanTenLife implements BeanNameAware, BeanFactoryAware, BeanClassLoaderAware, InitializingBean,DisposableBean { private String name; public BeanTenLife() { System.out.println("构造函数启动"); } public void setName(String name) { System.out.println("set注入启动"); this.name = name; } public void getName() { System.out.println("使用Bean"); } public void init() { System.out.println("bean初始化"); } public void destroySingleton() { System.out.println("bean销毁"); } @Override public void setBeanClassLoader(ClassLoader classLoader) { System.out.println("bean的加载器"+classLoader.getClass()); } @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { System.out.println("BeanFactory工程"+beanFactory.getClass()); } @Override public void setBeanName(String s) { System.out.println("setBeanName方法"+s); } @Override public void afterPropertiesSet() throws Exception { System.out.println("afterPropertiesSet方法"); } @Override public void destroy() throws Exception { System.out.println("销毁前面执行此"); } } 测试类package com.spring6.test; import com.spring6.service.BeanLife; import com.spring6.service.BeanTenLife; import com.spring6.web.UserAction; import org.junit.jupiter.api.Test; import org.springframework.context.support.ClassPathXmlApplicationContext; public class FirstSpringTest { @Test public void Test(){ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); UserAction test = (UserAction)context.getBean("test"); test.deleteRecord(); } /** * 七步生命周期 */ @Test public void BeanLife(){ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); BeanLife beanlife = context.getBean("beanlife", BeanLife.class); beanlife.getName(); context.close(); } /** * 十步生命周期 */ @Test public void BeanTenLife(){ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); BeanTenLife beanlife = context.getBean("beanTenLife", BeanTenLife.class); beanlife.getName(); context.close(); } } 测试截图
2023年03月07日
13 阅读
0 评论
2 点赞
2023-03-04
解决tomcat1099端口占用问题
第一步使用命令查看是否1099端口被占用netstat -ano | findstr 1099 这个是windows下查询的方法如果查询到了,直接看应用程序进程id去任务管理器关闭此进程如果没查询到1099端口被占用也就是说查询结果为空今天刚好遇到过类似的问题,提示端口被占用,但是实际上通过 netstat 并没有看到有使用, 所以有些疑惑,经过一番搜索,才发现是因为 Hyper-V 引起的 保留端口,这部分端口将会被系统保留,无法被其他应用程序所使用。查看保留端口。netsh interface ipv4 show excludedportrange protocol=tcp 解决办法有2个。1、换个端口;2、解除保留。 解除保留需要禁用 Hyper-V ,并重启,然后使用管理员运行 CMD 执行如下命令 netsh int ipv4 add excludedportrange protocol=tcp startport=1099 numberofports=4还可以去关闭Windows的Hyper-v来解决这个问题
2023年03月04日
5 阅读
0 评论
1 点赞
2023-03-03
仿bilibili视频弹幕播放器-支持弹幕发送
仿bilibili视频弹幕播放器效果展示{dplayer src="https://img.mdcvs.cn/up/view.php/019a441e83e4ae746088d056255c724e.mp4" pic="" theme="" autoplay="1" loop="0" screenshot="1" /}播放器简介一款防bilibili的播放器,支持弹幕和后台管理,主要是这个播放器是仿B站的,很简洁,特别合适用来web开发。功能特色插件功能:弹幕后台、前置广告、暂停广告、会员去广告,记忆回放,自动下一集插件支持:.m3u8、.mp4、.flv 等常见视频格式,注意:不支持 (MP4) H265 格式的视频插件兼容:电脑、手机端可以用来作为一款友好的视频播放器,用于web视频播放运行环境nginx或apachePHP7.XMysql ≥ 5.5播放器界面展示后台登录后台相关设置管理播放器界面web页面中使用效果安装步骤解压到网站根目录登录 你的域名/dmku 进行配置数据库修改播放器后台账号密码 dmku/config.inc.php登录后台 你的域名/admin 账号和密码为第3步修改的账号密码(默认账号:admin;默认密码:123456)播放器功能可后台设置使用方法参数说明(player/index.php)"av":'<?php echo($_GET['av']);?>',//B站av号,用于调用弹幕 "url":"<?php echo($_GET['url']);?>",//视频链接 "id":"<?php echo($_GET['url']);?>",//视频id "sid":"<?php echo($_GET['sid']);?>",//集数id "pic":"<?php echo($_GET['pic']);?>",//视频封面 "title":"<?php echo($_GET['name']);?>",//视频标题 "next":"<?php echo($_GET['next']);?>",//下一集链接 "user": '<?php echo($_GET['user']);?>',//用户名 "group": "<?php echo($_GET['group']);?>",//用户组基础请求https://域名/player/?url=视频链接 如: http://code.qkongtao.cn/video/player/?url=http://upyun.qkongtao.cn/AList/%E8%8D%89%E5%B8%BD%E4%B8%80%E4%BC%99%E6%82%AC%E8%B5%8F%E4%BB%A4%E4%BC%A0%E9%81%8D%E5%85%A8%E4%B8%96%E7%95%8C.mp4高级带参请求除了 url 参数,其他都可以省略http://域名/player/?url=视频链接&next=下个视频链接&sid=1&pic=视频封面图片链接&user=游客&group=1&name=测试在web页面中使用<iframe src="https://function.muau.cc/player/?url=https://img.mdcvs.cn/up/view.php/019a441e83e4ae746088d056255c724e.mp4&next=https://img.mdcvs.cn/up/view.php/f32f9aff50c80d04ccac6892b5f5812c.mp4" allowfullscreen="allowfullscreen" mozallowfullscreen="mozallowfullscreen" msallowfullscreen="msallowfullscreen" oallowfullscreen="oallowfullscreen" webkitallowfullscreen="webkitallowfullscreen" width="750px" height="550px" frameborder="0"> </iframe>示例如下:<!DOCTYPE html> <html lang="en"> <style> iframe { display: block; margin: 50px auto; } </style> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>测试哔哩播放器</title> </head> <body> <h2 style="text-align: center;">iframe测试哔哩播放器</h2> <iframe src="https://function.muau.cc/player/?url=https://img.mdcvs.cn/up/view.php/019a441e83e4ae746088d056255c724e.mp4&next=https://img.mdcvs.cn/up/view.php/f32f9aff50c80d04ccac6892b5f5812c.mp4" allowfullscreen="allowfullscreen" mozallowfullscreen="mozallowfullscreen" msallowfullscreen="msallowfullscreen" oallowfullscreen="oallowfullscreen" webkitallowfullscreen="webkitallowfullscreen" width="750px" height="550px" frameborder="0"> </iframe> </body> </html>哔哩哔哩视频{bilibili bvid="BV1pK411N7xH" page="1"/}
2023年03月03日
31 阅读
0 评论
1 点赞
1
...
7
8
9
...
17