首页 文章 精选 留言 我的

精选列表

搜索[快速],共10000篇文章
优秀的个人博客,低调大师

JeeSite V5.4.1 和 V4.7.0 发布,一个 Java 快速开发平台

V5.4.1 升级内容 新增 对象存储 增加 expires 参数,生成私有对象地址的有效期 去掉 对象存储 publicUrl 中的桶名称(阿里云、七牛云、腾讯云、MinIO) 增加 配置参数 web.xssFilterExcludeUri 方便排除一些特殊地址不过滤 优化 文件预览 禁用pdfobject,直接使用pdfjs,防止pdf中的js运行 优化 数据源 createDruidDataSource 接口,可以自定义xa数据源 优化 支持自定义 j2Cache 的二级缓存,可以将 Redis 替换为同类产品 优化 文件管理 groupType 参数,文件柜编码开头为 self 的自动过滤自己的,开头是 office 自动过滤本部门的 优化 主题风格细节、多语言国际化译文 修正 因修改右上角消息溢出,导致国际化en英文环境下的,用户下拉换行的问题 修正 tree 删除问题 #I7GCVK Cloud 新增消息模块独立微服务 Cloud 新增文件模块独立微服务 Cloud 新增扩展模块独立微服务 Cloud 升级 seata 1.6.1 Vue分离端 功能国际化语言包完善 升级方法 修改pom.xml文件中的jeesite-parent版本号为5.4.1-SNAPSHOT 如果你修改了parent、common、core项目源码,请与git上的代码进行同步 如果你是跨版本升级,请注意每一个版本的升级方法,业务上有调整的地方进行修改 对象存储 MinIO 公共访问地址中不再增加桶名,请在 publicUrl 中添加桶名 执行root/package.bat(sh)打包脚本,强制更新依赖。 V4.7.0 升级内容 升级 springboot 2.7.12、mybatis 3.5.13、jsqlparser 4.6、druid 1.2.18、commons-io 2.13 升级 poi 5.2.3、groovy 3.0.17、thumbnailator 0.4.19、twelvemonkeys 3.9.3、zxing 3.5.1 升级 UReport 的POI5.2.3、Antlr4.7.2,并增加slf4j日志、修正日期类型格式化的问题 DataGrid 防止有冻结列的时候进行全部隐藏和显示后出现重复列问题 #I6Y5SQ 升级方法 修改pom.xml文件中的jeesite-parent版本号为4.7.0-SNAPSHOT 如果你修改了parent、common、core项目源码,请与git上的代码进行同步 如果你是跨版本升级,请注意每一个版本的升级方法,业务上有调整的地方进行修改 本版本升级了众多第三方依赖包,请进行系统功能完整测试。 执行root/package.bat(sh)打包脚本,强制更新依赖。 了解更多 JeeSite 官网地址:http://jeesite.com JeeSite 在线文档:http://docs.jeesite.com JeeSite 演示地址:http://demo.jeesite.com JeeSite Vue 演示地址:http://vue.jeesite.com JeeSite 源码仓库:https://gitee.com/thinkgem/jeesite4 JeeSite Vue 前端源码:https://gitee.com/thinkgem/jeesite-vue JeeSite 跨平台手机端:https://gitee.com/thinkgem/jeesite4-uniapp JeeSite Cloud 微服务:https://gitee.com/thinkgem/jeesite4-cloud JeeSite 客户端安装程序:https://gitee.com/thinkgem/jeesite-client

优秀的个人博客,低调大师

JeeSite 平台 Spring Boot 3 体验版发布,一个 Java 快速开发平台

引言 是时候为 Spring Boot 3 做准备了,2018年2月 Spring Boot 进入 2.0 时代,距今已经 5 年了。2022 年 11 月 Spring Boot 3.0 正式发布,它将基于 Spring Framework 6.0,并且需要 Java 17 版本,同时它也将是 Jakarta EE 9 的第一个 Spring Boot 版本。如今 Spring Boot 3.1 已经发布,也带来了非常好的新特性,同时也支持了 Java 20。 为跟近技术时代,周边生态依赖库大部分也对 Spring Boot 3 做了相应支持,所以JeeSite 是时候发布Spring Boot 3 版本了。 同时 JeeSite 对 Spring Boot 2 的版本将持续更新,请大家放心使用。 技术栈 JDK 17+ Servlet 5.0+ Jakarta 6.0.0 Spring Boot 3.1.1 Apache Shiro 2.0.0 Spring Cloud 2022.0.3 Spring Cloud Alibaba 2022.0.0 Spring Framework 6.0.10 OpenAPI 3 and Springdoc 2.0 Atomiko Transactions 6.0 Spring Boot Admin 3.1 Flowable 7.0.0 等等众多依赖更新 Vue分离端 Ant Design Vue 4.0.0 功能国际化语言包完善 等等众多依赖更新 下载地址 JeeSite:https://gitee.com/thinkgem/jeesite4/tree/v5.springboot3/ JeeSite Cloud:https://gitee.com/thinkgem/jeesite4-cloud/tree/v5.springboot3.cloud/ JeeSite Vue:https://gitee.com/thinkgem/jeesite-vue/tree/next/ 我可以升级上来吗? 可以,自JeeSite 4版本开始,JeeSite团队就非常重视从旧版本升级的问题,除了向下兼容,我们也抛弃一些必要的变更。如果你对JeeSite改动不大,业务代码上升级是比较容易的,后面我们将在官方文档补充升级方法。

优秀的个人博客,低调大师

投放视频广告时,如何快速与第三方播放器兼容?

新媒体时代,广告样式越来越丰富。相较于传统的图文信息,视频类广告更具有直观性,能够让消费者在了解产品知识和功能的同时加深对产品的印象。 因此在各类网站或App上投放视频类广告是个很好的宣传方式,但广告商们如果想在网站上展示视频广告,必须确保视频广告投放协议与发布渠道的播放器兼容;如果不能兼容,广告商或者视频广告投放平台必须创建不同的响应,来与特定视频播放器兼容。为此,互联网广告署(IAB)开发了视频广告投放模板 (VAST)这种 XML 模式,允许通过视频广告服务器提供流内视频广告,并在多个网站和设备上的视频播放器中播放,不仅解决兼容性问题,还提高了视频广告投放的效率和可扩展性。 为帮助广告商们更好投放广告,华为鲸鸿动能平台提供了HUAWEI VAST SDK的集成,目前仅支持符合VAST协议的线性广告(投放形式为前、中、后贴片广告)。 开发准备 集成SDK 使用VAST协议时需要集成HUAWEI VAST SDK。同时如果您需要使用默认的播放器,请集成HUAWEI Player SDK。 配置Maven仓地址。 Android Studio的代码库配置在Gradle 插件7.0以下版本、7.0版本和7.1及以上版本有所不同。请根据您当前的Gradle 插件版本,选择对应的配置过程。 以7.0版本为例: a) 打开Android Studio项目级“build.gradle”文件。 b) 添加Maven代码库。 在“buildscript > repositories”中配置Maven仓地址。 buildscript { repositories { google() jcenter() // 配置鲸鸿动能SDK的Maven仓地址 maven {url 'https://developer.huawei.com/repo/'} } } c) 打开项目级“settings.gradle”文件,配置Maven仓地址。 dependencyResolutionManagement { ... repositories { google() jcenter() // 配置鲸鸿动能SDK的Maven仓地址 maven {url 'https://developer.huawei.com/repo/'} } } 配置网络权限 在targetSdkVersion 28及以上的手机上允许HTTP(S)网络请求,在“AndroidManifest.xml”做以下配置。 <application ... android:usesCleartextTraffic="true" > ... </application> 配置混淆脚本 您编译APK前需要配置混淆配置文件,避免混淆HUAWEI VAST SDK导致功能异常。 打开Android工程应用级根目录下的“proguard-rules.pro”混淆配置文件,加入排除HUAWEI VAST SDK的混淆配置。 -keep class com.huawei.openalliance.ad.** { *; } -keep class com.huawei.hms.ads.** { *; } 初始化SDK 初始化HUAWEI VAST SDK 集成HUAWEI VAST SDK后,在应用的DemoApplication类中,初始化HUAWEI VAST SDK。 // 当用户同意广告服务获取数据时,调用下面的方法 SdkFactory.userAcceptAdLicense(true); 开发步骤 实现VAST广告 使用默认播放器播放线性广告 播放线性广告可以使用默认的播放器,也可使用您实现的自定义播放器。 在XML文件中,初始化播放器的布局。示例代码如下: <FrameLayout android:id="@+id/fl_linear_ad" android:layout_width="match_parent" android:layout_height="250dp" android:background="@android:color/black" android:visibility="gone" android:layout_alignParentEnd="true" android:layout_alignParentStart="true" android:layout_alignParentTop="true" /> ``` 2. 生成默认的广告播放控制器,注册线性广告视图。示例代码如下: private void registerLinearAdView() { mLinearAdView = findViewById(R.id.fl_linear_ad); mProgressBar = findViewById(R.id.progress); VastAdPlayer.getInstance().registerLinearAdView(mLinearAdView, getController()); } private BaseVideoController getController() { return mAdConfig.isCustomVideoPlayer() ? new DefaultVideoController(this) : new CustomVideoController(this); } 3. 请求播放线性广告。示例代码如下: VastAdPlayer.getInstance().startLinearAd(linearAdSlot, new AdsRequestListener() { @Override public void onSuccess(View view, int responseCode) { } @Override public void onFailed(View view, int responseCode) { } @Override public void playAdReady() { mLinearAdView.setVisibility(View.VISIBLE); } @Override public void playAdFinish() { mLinearAdView.setVisibility(View.INVISIBLE); } @Override public void onBufferStart() { mProgressBar.setVisibility(View.VISIBLE); } @Override public void onBufferEnd() { mProgressBar.setVisibility(View.INVISIBLE); } }); #### 使用自定义播放器播放线性广告 1. 在XML文件中,初始化播放器的布局。示例代码如下: <FrameLayout android:id="@+id/fl_linear_ad" android:layout_width="match_parent" android:layout_height="250dp" android:background="@android:color/black" android:visibility="gone" android:layout_alignParentEnd="true" android:layout_alignParentStart="true" android:layout_alignParentTop="true" /> ``` 实现自定义的广告播放器控制器。示例代码如下: public class CustomVideoController extends BaseVideoController implements VastPlayerListener { public CustomVideoController(Context context) { this(context, null); } public CustomVideoController(Context context, AttributeSet attrs) { this(context, attrs, 0); } public CustomVideoController(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initView(); } @Override public int getLayoutId() { return R.layout.activity_video_player; } private void initView(){ ... } } 生成自定义的广告播放器控制器,注册线性广告视图。示例代码如下: private void registerLinearAdView() { mLinearAdView = findViewById(R.id.fl_linear_ad); mProgressBar = findViewById(R.id.progress); VastAdPlayer.getInstance().registerLinearAdView(mLinearAdView, getController()); } private BaseVideoController getController() { return mAdConfig.isCustomVideoPlayer() ? new DefaultVideoController(this) : new CustomVideoController(this); } 请求播放线性广告。示例代码如下: VastAdPlayer.getInstance().startLinearAd(linearAdSlot, new AdsRequestListener() { @Override public void onSuccess(View view, int responseCode) { } @Override public void onFailed(View view, int responseCode) { } @Override public void playAdReady() { mLinearAdView.setVisibility(View.VISIBLE); } @Override public void playAdFinish() { mLinearAdView.setVisibility(View.INVISIBLE); } @Override public void onBufferStart() { mProgressBar.setVisibility(View.VISIBLE); } @Override public void onBufferEnd() { mProgressBar.setVisibility(View.INVISIBLE); } }); 播放广告荚 广告荚的播放与线性广告的播放,只在使用自定义播放器请求播放广告步骤4中有区别,请求播放广告荚的示例代码如下: VastAdPlayer.getInstance().startAdPods(linearAdSlot, new AdsRequestListener() { @Override public void onSuccess(View view, int responseCode) { } @Override public void onFailed(View view, int responseCode) { } @Override public void playAdReady() { mLinearAdView.setVisibility(View.VISIBLE); } @Override public void playAdFinish() { mLinearAdView.setVisibility(View.INVISIBLE); } @Override public void onBufferStart() { mProgressBar.setVisibility(View.VISIBLE); } @Override public void onBufferEnd() { mProgressBar.setVisibility(View.INVISIBLE); } }); 测试VAST广告 您需要使用专门的测试广告位ID来获取测试广告,以避免在测试过程中产生无效的广告点击量。测试广告位ID,仅可用于调测广告功能,不可用于广告变现,在应用正式发布前需替换为正式的广告位ID。您应在应用发布前先进入流量变现官网,点击“开始变现”,登录鲸鸿动能媒体服务平台,申请正式的广告位ID并替换测试广告位ID,具体操作详情请参见展示位创建。以下表格中提供了VAST广告的专用测试广告位ID: 下载VAST广告的示例代码并运行,可以看到如下效果图: 了解更多详情>> 访问华为开发者联盟官网 获取开发指导文档 华为移动服务开源仓库地址:GitHub、Gitee 关注我们,第一时间了解 HMS Core 最新技术资讯~

优秀的个人博客,低调大师

ShopWind V3.4.4 更新,一键采集淘宝天猫京东商品快速迁移

ShopWind 是一款开源多商户电商系统,支持商家入驻开店,可以做社区团购系统,拼团系统,搭建积分商城系统等。展示端有PC电脑端、手机H5端、可发布微信小程序、上架APP安卓端和iOS端、搭建自己的微信公众号号等。各种营销功能完备,可以作为基础源码进行二次开发,减少重复造轮子的烦恼。系统现在已经更新到V3.4.4,从淘宝、京东下来的商家支持一键采集淘宝京东等平台的产品,可以通过ShopWind系统搭建自己的电商系统平台。 官网网址:https://www.shopwind.net 开发文档:https://developer.shopwind.net API 接口文档:http://docs.shopwind.net 开发者社区:https://forum.shopwind.net PC 体验 前台体验:http://test.shopwind.net买家测试账号:buyer 密码:123456 支付密码:123456 后台体验:http://test.shopwind.net/admin平台管理员账号:admin 密码:123456 商家体验:http://test.shopwind.net/seller/login.html商家测试账号:seller 密码:123456 移动端体验(商业版) H5 端体验:https://h5.shopwind.net买家测试账号:18978189192 密码:111111 支付密码:111111 移动端体验 商品采集功能介绍 ShopWind 电商系统在 v3.4.x 版本加入了数据采集功能,支持淘宝、天猫、京东、1688、拼多多商品一键采集到平台的功能,你只需要输入商品详情页链接,就可以批量实现导入,导入的数据包括:商品标题,价格,库存,主图,规格(包括规格图),描述等字段。 一、使用采集功能前,您需要先配置数据采集组件秘钥,秘钥申请:https://www.99api.com/Login?log=5&referee=19843 二、进入商家后台 -》商品管理 -》采集商品 三、输入淘宝京东等商品详情页地址(支持批量),选择数据来源平台后提交 四、导入后如图 3 所示 页面展示 首页 / 用户中心 / 分类页 产品详情 / 购物车 / 下单页 平台后台管理 丰富的功能插件 可视化模板编辑 / DIY 页面布局 更新内容 【新增】数据采集淘宝天猫京东商品模块 【新增】商品长图和主图视频功能 【新增】详情页显示最近买家评价信息 【新增】即时提现到支付宝余额功能 【新增】查看买家评价页 【新增】商品新品标识 【优化】商品规格字段 【优化】移动端支付方式传值 【优化】商品价格货币化显示方式 【优化】在线支付订单不在额外新增财务收支记录 【修复】移动端商品详情页商品属性弹窗显示异常 【修复】商品评价统计数据有误的问题 【修复】优惠券在多个订单可重复使用的问题 【修复】详情页商品规格图显示有误等问题 【修复】退款模块一处错误

优秀的个人博客,低调大师

TLv8 IDE v2.4.3 已经发布,基于 Eclipse 的快速开发工具

TLv8 IDE v2.4.3 已经发布,此版本更新内容包括: 1、Studio透视图默认展示项目资源管理器和包资源管理器; 2、放弃自定义资源视图,直接使用项目资源管理器; 3、补充源码说明; 4、表编辑器增加编辑默认值功能; 5、优化功能树编辑器:添加layui图标属性编辑; 6、解决win10及以下版本无法运行cef的问题(报表编辑器)。 --------------------一些已知bug-------------------

优秀的个人博客,低调大师

太厉害了,通过文档内容快速查找文件,1行Python代码实现

大家好,这里是程序员晚枫。 之前给大家分享了:一行Python代码,如何成为办公小助手?这5个操作,超实用! 1、项目说明 Python是一个非常好用的工具,除了可以用来开发,还可以用于日常生活。 今天给大家分享:通过文件里面的内容,查找文件的存放位置。 你有没有遇到过这种情况:想查找一个文件,但是不记得文件的名字了,只记得文件里的内容? 这种情况下,文件搜索软件也是无能为力的,因为它们只能根据文件名称进行搜索。 今天我们一起用1行Python代码来实现一下。 2、代码实现 ① 安装python-office 安装很简单,在有python环境的电脑上,只需要执行下面这一行命令。 如果你之前使用过python-office这个库,也需要执行一下,可以下载到最新版本~ 安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-office -U ② 查找文件的代码 直接上代码! 代码 # 导入这个库:python-office,简写为office import office # 1行代码,实现 office.file.search_by_content(r'你的文件夹,例如:c:\' , content='你需要查找的文件里面的内容') 运行这行代码后,控制栏会出现该路径下,所有包含指定内容的文件存放的位置。 3、关于python-office Python-office 是一个 Python 自动化办公第三方库,能解决大部分自动化办公的问题。而且每个功能只需一行代码,不需要小白用户学习 Python 知识,做到了真正的开箱即用。 🏎项目下载 开源中国 🍺特点 一键搭建所有 Python + 自动化办公的编程环境。 使用一行代码解决大部分自动化办公的问题,不需要小白学习 Python 知识 贴合职场办公需求 极简编程,学习成本极低,工作效率提升显著 4、推荐阅读 用 Python 爬虫,寻找这个夏天最凉快的地方。

优秀的个人博客,低调大师

TLv8 IDE v2.2.1 已经发布,基于 Eclipse 的快速开发工具

TLv8 IDE v2.2.1 已经发布,此版本更新内容包括: 1、解决报表设计器(ureport)兼容问题: Windows系统下使用Edge浏览器内核在win10以下系统不支持,改为chromium存在无法初始化的问题; Linux和macOS下使用swt自带的浏览器。 2、优化页面设计器右键菜单方法; 3、基础插件的jdk兼容到1.6; 4、解决流程设计器model类型转换问题; 5、添加js编辑器功能部件【可选】; 6、解决页面设计器在低版本的Linux系统下无法显示的问题; 7、修改移动版页面设计器资源引用及屏幕适应问题; 8、插件和功能部件重新梳理,按照用途重新组装; 9、修改项目结构,集成了平台必要的插件(tern和chromium-swt); 10、添加【数据库】功能部件描述,数据库插件可以单独安装; 11、补充了各个插件的说明; 12、补充了插件的汉化文件。 ---测试完善v2.2.0修改的内容---

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册