- android 自定义曲线图,Android自定义View——贝赛尔曲线
weixin_39767513
android自定义曲线图
个人博客:haichenyi.com。感谢关注本文针对有一定自定义View的童鞋,最好对贝赛尔曲线有辣么一丢丢了解,不了解也没关系。花5分钟看一下GcsSloop的安卓自定义View进阶-Path之贝塞尔曲线。本文的最终效果图:最终效果图.gif思路首先他是一个只有上半部分的正弦形状的水波纹,很规则。其次,他这个正弦图左右在移动。然后,就是它这个自定义View,上下也在移动,是慢慢增加的最后,优化
- 用XMLHttpRequest发送和接收JSON数据
潭池先生
jsonXMLHttpRequest前端
百度的AI回答了一个案例:varxhr=newXMLHttpRequest();varurl="your_endpoint_url";//替换为你的API端点vardata=JSON.stringify({key1:"value1",key2:"value2"});xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type","appl
- gdb、mdb、docx、xlsx、pdf、图片、txt多格式文件集成预览
开源GIS地图与信创
近期闭关研究了新成果,实现了gdb、mdb、docx、xlsx、pdf、图片、txt多格式文件集成预览。软件采用B/S架构,可代替ArcGISServer、GeoServer、MapServer等多种GIS引擎。软件只有20M大小,可运行于多种老旧Windows电脑以及国产化电脑桌面软件,免安装,双击即启动,叉掉即关闭支持gdb、mdb、docx、xlsx、pdf、txt、png、jpg、gif、
- JS的Form表单转JSON格式的操作代码
目录一、serialize()方法二、serializeArray()方法三、$.param()方法js将json字符串转换为json对象的方法解析一、JSON字符串转换为JSON对象二、可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。一、serialize()方法格式:vardata=$("#formID").serialize
- 构建jdk1.8+ffmpeg镜像
wcy10086
ffmpegdockerjdk
FROMharbor.**.cn/library/jdk1.8:v2.0MAINTAINERwcyRUNyuminstall-yepel-releaseRUNrpm--importhttp://li.nux.ro/download/nux/RPM-GPG-KEY-nux.roRUNrpm-Uvhhttp://li.nux.ro/download/nux/dextop/el7/x86_64/nux-
- FFmpeg-- c++实现:音频流aac和视频流h264封装
八月的雨季997
FFmpegffmpegc++音视频
文章目录流程api核心代码muxer.hmuxer.cppaac和h264封装为视频流,封装为c++的Muxter类流程分配视频文件上下文intInit(constchar*url);创建流,赋值给视频的音频流和视频流intAddStream(AVCodecContext*codec_ctx);写视频流的headintSendHeader();写视频流的packet,需要转换packet的pts和
- Dialogues---送礼物,又熬夜了
快乐有你_1ec8
挑选礼物Army'sbirthdayiscomingup.I'mgoingtobuyherapresent.Me,too.Whataboutsendingheragifttogether?Thatwouldbegreat.一起去商场挑选礼物吧。Ilikethisbook.Itispopular.It'stooserious.Shedoesn'tlikereading.Howaboutthispai
- qt+ffmpeg 实现音视频播放(一)
码农客栈
音视频Qtffmpegqtffmpeg音视频
一、ffmpeg下载官网:点击跳转二、模块介绍1.libavcodec:音视频编解码库,提供了多种编解码器,可以支持多种音视频格式的编解码操作。2.libavformat:音视频封装和解封装库,提供了多种封装格式的支持,可以读取和写入多种音视频文件格式。3.libavfilter:音视频过滤器库,提供了多种音视频过滤器,可以对音视频流进行各种处理,如添加水印、调整亮度、对比度等。4.libavde
- FFmpeg将视频包AVPacket通过视频流方式写入本地文件
林鸿群
ffmpeg音视频
1.写视频头voidwriteVideoHeader(constchar*videoFileName){intr=avformat_alloc_output_context2(&pFormatCtx,nullptr,nullptr,videoFileName);if(rstreams[0]->codecpar->width=1280;pFormatCtx->streams[0]->codecpar
- uniapp 开发出现这个 Error in onLoad hook: “SyntaxError: Unexpected end of JSON input“
古猿写代码
uniappuni-appjson前端
uniapp开发出现这个ErrorinonLoadhook:“SyntaxError:UnexpectedendofJSONinput“,这个问题如何解决。原因:由于JSON.parse无法识别某些url中的特殊字符比如&等特殊符号造成的。解决办法:页面A(JSON.stringify传参)uni.navigateTo({url:"/pages/A/index?data="+encodeURICo
- Spring Boot 多媒体(音频/视频)文件处理FFmpegFrameGrabber 方法(例子:获取视频总时长)
编程社区管理员
springboot音视频java
1.pom.xml坐标org.bytedecojavacv-platform1.5.62.FFmpegFrameGrabber类提供了多种方法来处理多媒体文件,以下是一些常用的方法start():开始抓取帧。在调用此方法之前,可以设置格式和选项,之后可以调用grab()方法来获取帧。stop():停止抓取帧。通常在完成帧的抓取后调用此方法来释放资源。getLengthInTime():获取视频的长
- uniapp小程序上传oss
Tanjc518
uni-app小程序
uniapp上传小程序代码importcryptofrom'crypto-js';import{Base64}from'js-base64/base64.js';//计算oss签名。functioncomputeSignature(accessKeySecret,canonicalString){returncrypto.enc.Base64.stringify(crypto.HmacSHA1(c
- 基于Node.js 和 FFmpeg构建自动化脚本用来转码视频
接着奏乐接着舞。
工作经验总结node.jsffmpeg自动化
这个脚本将监控一个特定的目录,自动转码新添加的视频文件,并将转码后的视频保存到指定目录。准备环境安装Node.js:访问Node.js官网,下载并安装适合你操作系统的Node.js版本。安装FFmpeg(不清楚的可以看我的上篇博客里有详细的安装步骤):对于Windows用户,可以从FFmpeg官方网站下载预编译的二进制文件,解压,并将bin目录添加到系统的环境变量中。macOS用户可以使用Home
- FFmpeg封装函数avformat_open_input()
肖爱Kun
RTSP网络视屏协议c++
FFmpeg在调用avformat_open_input()之后,可能码流信息不够完整,可以使用avformat_find_stream_info()获取更多的码流信息。比如获取视频帧率、视频宽高,重新计算最大分析时长,打开解码器解码获取codec数据。函数原型如下:intavformat_find_stream_info(AVFormatContext*ic,AVDictionary**opti
- Unity简单操作:Unity 里使用Gif图片
AD_喵了个咪
C#Unity游戏unity游戏引擎c#
参考http://wiki.unity3d.com/index.php/AnimatedGifDrawer。原理是:将gif图拆分成多个单个图片,用Texture2D存放,然后逐个替换Texture2D达到动态效果。/***FileName:gifTest*Author:#AUTHOR#*Description:*/usingSystem.Drawing;usingSystem.Drawing.I
- ubuntu nginx
linux实践操作记录
ubuntunginxlinux
FFmpeg+nginx-http-flv-module+flv.js实现视频流播放-一只小松徐吖(xaoxu.cn)cat/etc/nginx/sites-enabled/default###YoushouldlookatthefollowingURL'sinordertograspasolidunderstanding#ofNginxconfigurationfilesinordertoful
- 浏览器内存 localStorage的用法
xu_duo_i
前端javascript开发语言
储存window.localStorage.setItem('key',value)储存对象window.localStorage.setItem('param',JSON.stringify(Object))取值:window.localStorage.getItem('key')//读取JSON的格式JSON.parse(window.localStorage.getItem('key'))删
- FFmpeg --播放器框架及api使用
八月的雨季997
FFmpegffmpeg音视频
播放器框架1媒体文件:AVFormatContextavformat_alloc_contextavformat_open_input2解复用器:AVStreamav_read_frame—3音频(视频)包队列:AVPacket4音频(视频)解码:AVCodecContextavcodec_send_packetavcodec_receive_frame采样(音频)/图像帧队列:AVFrame音频
- 【财商学习】50/90《富爸爸穷爸爸》0427-2019#杭州@陈倩
般若星星灿的垚淼
图片发自App采取行动吧!TakeAction!采取行动吧!Allofyouweregiventwogreatgifts:yourmindandyourtime.上天赐予我们每个人两样伟大的礼物:思想和时间。Itisuptoyoutodowhatyoupleasewithboth.你可以运用这两件礼物去做你愿意做的事情。Witheachdollarbillthatentersyourhand,yo
- 悟空图像工具箱:一站式在线图像处理与GIF制作利器!
AiBoxss
图像处理人工智能计算机视觉
悟空图像工具箱简介:悟空图像工具箱是一款集成了多种图像处理和GIF制作功能的在线工具箱,用户无需下载安装任何软件,只需在网页上操作即可完成各种任务。这款工具箱旨在帮助用户更高效地进行图像处理和GIF制作,提高工作效率。【Ai-321.com】超多实用AI工具集,助你快速写作、绘画、视频创作,赶紧免费体验!悟空图像工具箱功能列表:图片转GIF:将多张图片合成为GIF动图。视频转GIF:将视频转换为G
- 真快!几分钟就把视频语音识别为文本了,不到10行代码
诗者才子酒中仙
音视频语音识别人工智能
虽然已经很简单了,但是对于程序员来说还是不够简洁,毕竟程序员都很“懒”,Whisper虽说安装和调用已经很简单了,但还是需要独立安装PyTorch、ffmpeg甚至Rust。将音视频文件中的音频转为文字内容,这个需求放到两年前还不大好实现,但是放到今天,几分钟就解决了。听说有的公司为了抓取训练数据,已经把抖音、快手这些短视频平台上的视频扒了个遍,然后将其中的音频提取成文本,用作大数据模型的训练语料
- Web 游戏 「梦幻西游」地图 Demo ,纯 Canvas 画
梁同桌
前言本程序仅仅学习,顺便回忆小学玩的游戏。项目初心为了验证一些对Canvas想法。项目大量运用ES6,无";"写法。cover.gif目录文件介绍职责分类缺点文件imgjxk(剑侠客图片)background(地图图片)jsbaserunloop.js(循环)viewjxk.js(剑侠客)map_one.js(地图)game.jsindex.jsindex.html职责分类js/base/runl
- 怎么快速编辑视频
拓源
视频音视频ffmpeg
背景:怎么简单快速编辑视频利用FFmpeg功能,简单快速编辑视频,如按9:16提前剪切视频、替换背景音乐。下载FFmpeg:https://ffmpeg.org/download.html将FFmpeg的路径添加到环境变量中:Windows:在系统的环境变量中添加FFmpeg的路径。Linux/MacOS:在shell配置文件(例如~/.bashrc或~/.bash_profile)中添加FFmp
- QT MinGW64编译vlc源码
小条小杂鱼
QT学习实战qt开发语言
编译环境搭建参考文章《QTMingw32/64编译ffmpeg源码生成32/64bit库以及测试》,搭建msys64环境;运行msys.exe,运行:pacman-Sgitsubversioncvsautomakeautoconflibtoolm4makegettextpkg-configmingw-w64-i686-luafindutilsmingw-w64-i686-headersyasmpa
- 蓝桥杯前端Web赛道-寻找小狼人
明天一定早睡_
蓝桥杯蓝桥杯前端职场和发展
蓝桥杯前端Web赛道-寻找小狼人题目链接:0寻找小狼人-蓝桥云课(lanqiao.cn)题目要求:其实通过题目要求以及题目中提供的gif可知,该题就是需要我们手动写出能够代替filter函数的函数我们先分析题目给出的代码:letnewcardList=cardList.myarray((item)=>item.category=="werewolf");在84行左右提供了这样一段代码回忆一下原先f
- ffmpeg:单张图片 + 音频 生成视频
KAMILLE
ffmpeg
ffmpeg-r1-fimage2-loop1-i图片地址-i音频地址-s1920x1080-pix_fmtyuvj420p-t时长(秒)-vcodeclibx264视频地址帧率为1,转换速度更快。如果想根据音频的时长:ffmpeg-y-loop1-r1-i图片地址-i2.音频地址-vcodeclibx264-acodecaac-shortest视频地址ffmpeg-y-loop1-r1-i图片地
- 路由 params 传参 - 刷新页面后参数丢失问题解决
Fighting_p
vue前端linuxjavascript
路由跳转,params传参-不在url地址拼接刷新页面内后数据会丢失this.$router.push({//path:'/tz-person-manage',name:'TzPersonManage',params:{personInfo:JSON.stringify({name:'张三',age:99})}})刷新页面参数丢失问题解决判断路由上有没有参数有参数直接用将参数存到本地没有参数从本地
- 封装本地存储方法
封装一个js文件//对象直接量创建一个对象constStorage={//保存数据set(key,data,time=3000){localStorage.setItem(key,JSON.stringify({data,//保存的数据createTime:newDate()*1,//保存的时间戳express:time//过期时间}))},//提取get(key){constitem=JSON.
- 在C++程序中给视频添加文字水印
ygwelcome
c++音视频开发语言ffmpeg
有时候,我们需要给视频添加文字或水印,用已有的工具当然最简单,但想在自己的应用中,如C++应用程序中来实现,如何实现呢?假设采用FFmpeg库,可通过C++二次开发调用实现。当然这个过程还是比较复杂的,需要有一定的多媒体编程能力并使用FFmpeg的多媒体处理功能。可按以下步骤:1、安装FFmpeg:首先,确保你的系统上已经安装了FFmpeg。你可以从FFmpeg官方网站下载二进制文件,或者使用包管
- C#中用ffmpeg截取视频使用要点
两仪风
ffmpeg音视频
一、代码stringinputFile="E:\\Test\\1\\5.mp4";stringoutputFile="E:\\Test\\1\\10.mp4";intstartTime=5;//开始时间(秒)intendtime=10;//结束时间(秒)Processp=newProcess();p.StartInfo.FileName=".\\ffmpeg\\ffmpeg.exe";//ffmp
- linux系统服务器下jsp传参数乱码
3213213333332132
javajsplinuxwindowsxml
在一次解决乱码问题中, 发现jsp在windows下用js原生的方法进行编码没有问题,但是到了linux下就有问题, escape,encodeURI,encodeURIComponent等都解决不了问题
但是我想了下既然原生的方法不行,我用el标签的方式对中文参数进行加密解密总该可以吧。于是用了java的java.net.URLDecoder,结果还是乱码,最后在绝望之际,用了下面的方法解决了
- Spring 注解区别以及应用
BlueSkator
spring
1. @Autowired
@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个UserDao类型的bean,或者不存在UserDao类型的bean,会抛出 BeanCreationException异常,这时可以通过在该属性上再加一个@Qualifier注解来声明唯一的id解决问题。
2. @Qualifier
当spring中存在至少一个匹
- printf和sprintf的应用
dcj3sjt126com
PHPsprintfprintf
<?php
printf('b: %b <br>c: %c <br>d: %d <bf>f: %f', 80,80, 80, 80);
echo '<br />';
printf('%0.2f <br>%+d <br>%0.2f <br>', 8, 8, 1235.456);
printf('th
- config.getInitParameter
171815164
parameter
web.xml
<servlet>
<servlet-name>servlet1</servlet-name>
<jsp-file>/index.jsp</jsp-file>
<init-param>
<param-name>str</param-name>
- Ant标签详解--基础操作
g21121
ant
Ant的一些核心概念:
build.xml:构建文件是以XML 文件来描述的,默认构建文件名为build.xml。 project:每个构建文
- [简单]代码片段_数据合并
53873039oycg
代码
合并规则:删除家长phone为空的记录,若一个家长对应多个孩子,保留一条家长记录,家长id修改为phone,对应关系也要修改。
代码如下:
- java 通信技术
云端月影
Java 远程通信技术
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来
- string与StringBuilder 性能差距到底有多大
aijuans
之前也看过一些对string与StringBuilder的性能分析,总感觉这个应该对整体性能不会产生多大的影响,所以就一直没有关注这块!
由于学程序初期最先接触的string拼接,所以就一直没改变过自己的习惯!
- 今天碰到 java.util.ConcurrentModificationException 异常
antonyup_2006
java多线程工作IBM
今天改bug,其中有个实现是要对map进行循环,然后有删除操作,代码如下:
Iterator<ListItem> iter = ItemMap.keySet.iterator();
while(iter.hasNext()){
ListItem it = iter.next();
//...一些逻辑操作
ItemMap.remove(it);
}
结果运行报Con
- PL/SQL的类型和JDBC操作数据库
百合不是茶
PL/SQL表标量类型游标PL/SQL记录
PL/SQL的标量类型:
字符,数字,时间,布尔,%type五中类型的
--标量:数据库中预定义类型的变量
--定义一个变长字符串
v_ename varchar2(10);
--定义一个小数,范围 -9999.99~9999.99
v_sal number(6,2);
--定义一个小数并给一个初始值为5.4 :=是pl/sql的赋值号
- Mockito:一个强大的用于 Java 开发的模拟测试框架实例
bijian1013
mockito单元测试
Mockito框架:
Mockito是一个基于MIT协议的开源java测试框架。 Mockito区别于其他模拟框架的地方主要是允许开发者在没有建立“预期”时验证被测系统的行为。对于mock对象的一个评价是测试系统的测
- 精通Oracle10编程SQL(10)处理例外
bijian1013
oracle数据库plsql
/*
*处理例外
*/
--例外简介
--处理例外-传递例外
declare
v_ename emp.ename%TYPE;
begin
SELECT ename INTO v_ename FROM emp
where empno=&no;
dbms_output.put_line('雇员名:'||v_ename);
exceptio
- 【Java】Java执行远程机器上Linux命令
bit1129
linux命令
Java使用ethz通过ssh2执行远程机器Linux上命令,
封装定义Linux机器的环境信息
package com.tom;
import java.io.File;
public class Env {
private String hostaddr; //Linux机器的IP地址
private Integer po
- java通信之Socket通信基础
白糖_
javasocket网络协议
正处于网络环境下的两个程序,它们之间通过一个交互的连接来实现数据通信。每一个连接的通信端叫做一个Socket。一个完整的Socket通信程序应该包含以下几个步骤:
①创建Socket;
②打开连接到Socket的输入输出流;
④按照一定的协议对Socket进行读写操作;
④关闭Socket。
Socket通信分两部分:服务器端和客户端。服务器端必须优先启动,然后等待soc
- angular.bind
boyitech
AngularJSangular.bindAngularJS APIbind
angular.bind 描述: 上下文,函数以及参数动态绑定,返回值为绑定之后的函数. 其中args是可选的动态参数,self在fn中使用this调用。 使用方法: angular.bind(se
- java-13个坏人和13个好人站成一圈,数到7就从圈里面踢出一个来,要求把所有坏人都给踢出来,所有好人都留在圈里。请找出初始时坏人站的位置。
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class KickOutBadGuys {
/**
* 题目:13个坏人和13个好人站成一圈,数到7就从圈里面踢出一个来,要求把所有坏人都给踢出来,所有好人都留在圈里。请找出初始时坏人站的位置。
* Maybe you can find out
- Redis.conf配置文件及相关项说明(自查备用)
Kai_Ge
redis
Redis.conf配置文件及相关项说明
# Redis configuration file example
# Note on units: when memory size is needed, it is possible to specifiy
# it in the usual form of 1k 5GB 4M and so forth:
#
- [强人工智能]实现大规模拓扑分析是实现强人工智能的前奏
comsci
人工智能
真不好意思,各位朋友...博客再次更新...
节点数量太少,网络的分析和处理能力肯定不足,在面对机器人控制的需求方面,显得力不从心....
但是,节点数太多,对拓扑数据处理的要求又很高,设计目标也很高,实现起来难度颇大...
- 记录一些常用的函数
dai_lm
java
public static String convertInputStreamToString(InputStream is) {
StringBuilder result = new StringBuilder();
if (is != null)
try {
InputStreamReader inputReader = new InputStreamRead
- Hadoop中小规模集群的并行计算缺陷
datamachine
mapreducehadoop并行计算
注:写这篇文章的初衷是因为Hadoop炒得有点太热,很多用户现有数据规模并不适用于Hadoop,但迫于扩容压力和去IOE(Hadoop的廉价扩展的确非常有吸引力)而尝试。尝试永远是件正确的事儿,但有时候不用太突进,可以调优或调需求,发挥现有系统的最大效用为上策。
-----------------------------------------------------------------
- 小学4年级英语单词背诵第二课
dcj3sjt126com
englishword
egg 蛋
twenty 二十
any 任何
well 健康的,好
twelve 十二
farm 农场
every 每一个
back 向后,回
fast 快速的
whose 谁的
much 许多
flower 花
watch 手表
very 非常,很
sport 运动
Chinese 中国的
- 自己实践了github的webhooks, linux上面的权限需要注意
dcj3sjt126com
githubwebhook
环境, 阿里云服务器
1. 本地创建项目, push到github服务器上面
2. 生成www用户的密钥
sudo -u www ssh-keygen -t rsa -C "
[email protected]"
3. 将密钥添加到github帐号的SSH_KEYS里面
3. 用www用户执行克隆, 源使
- Java冒泡排序
蕃薯耀
冒泡排序Java冒泡排序Java排序
冒泡排序
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月23日 10:40:14 星期二
http://fanshuyao.iteye.com/
- Excle读取数据转换为实体List【基于apache-poi】
hanqunfeng
apache
1.依赖apache-poi
2.支持xls和xlsx
3.支持按属性名称绑定数据值
4.支持从指定行、列开始读取
5.支持同时读取多个sheet
6.具体使用方式参见org.cpframework.utils.excelreader.CP_ExcelReaderUtilTest.java
比如:
Str
- 3个处于草稿阶段的Javascript API介绍
jackyrong
JavaScript
原文:
http://www.sitepoint.com/3-new-javascript-apis-may-want-follow/?utm_source=html5weekly&utm_medium=email
本文中,介绍3个仍然处于草稿阶段,但应该值得关注的Javascript API.
1) Web Alarm API
&
- 6个创建Web应用程序的高效PHP框架
lampcy
Web框架PHP
以下是创建Web应用程序的PHP框架,有coder bay网站整理推荐:
1. CakePHP
CakePHP是一个PHP快速开发框架,它提供了一个用于开发、维护和部署应用程序的可扩展体系。CakePHP使用了众所周知的设计模式,如MVC和ORM,降低了开发成本,并减少了开发人员写代码的工作量。
2. CodeIgniter
CodeIgniter是一个非常小且功能强大的PHP框架,适合需
- 评"救市后中国股市新乱象泛起"谣言
nannan408
首先来看百度百家一位易姓作者的新闻:
三个多星期来股市持续暴跌,跌得投资者及上市公司都处于极度的恐慌和焦虑中,都要寻找自保及规避风险的方式。面对股市之危机,政府突然进入市场救市,希望以此来重建市场信心,以此来扭转股市持续暴跌的预期。而政府进入市场后,由于市场运作方式发生了巨大变化,投资者及上市公司为了自保及为了应对这种变化,中国股市新的乱象也自然产生。
首先,中国股市这两天
- 页面全屏遮罩的实现 方式
Rainbow702
htmlcss遮罩mask
之前做了一个页面,在点击了某个按钮之后,要求页面出现一个全屏遮罩,一开始使用了position:absolute来实现的。当时因为画面大小是固定的,不可以resize的,所以,没有发现问题。
最近用了同样的做法做了一个遮罩,但是画面是可以进行resize的,所以就发现了一个问题,当画面被reisze到浏览器出现了滚动条的时候,就发现,用absolute 的做法是有问题的。后来改成fixed定位就
- 关于angularjs的点滴
tntxia
AngularJS
angular是一个新兴的JS框架,和以往的框架不同的事,Angularjs更注重于js的建模,管理,同时也提供大量的组件帮助用户组建商业化程序,是一种值得研究的JS框架。
Angularjs使我们可以使用MVC的模式来写JS。Angularjs现在由谷歌来维护。
这里我们来简单的探讨一下它的应用。
首先使用Angularjs我
- Nutz--->>反复新建ioc容器的后果
xiaoxiao1992428
DAOmvcIOCnutz
问题:
public class DaoZ {
public static Dao dao() { // 每当需要使用dao的时候就取一次
Ioc ioc = new NutIoc(new JsonLoader("dao.js"));
return ioc.get(