Douyu是一种完全采取Java语言开发的、运作于JVM以上的新式基础开发平台。
在web层,Douyu完全遗弃了JSP/Servlet,
在数据库访问层,Douyu不依赖于任何ORM(对像关系照射)构架(如Hibernate)。
Douyu将Java语言编译器、Http服务器、MVC圆满调整在一起,
差点儿兑现了ORM全自动化,同时在Java语言层面引出了权限治理模型。
Douyu内置的Java语言编译器基于OpenJDK Javac编译器(b60版),
并进行了批改和扩张,和Http服务器组合以后能在控制器层发挥出强大的威力,
你只要批改Java源文件,其后刷新浏览器就能查看运作结果,
与此同时编译器也是兑现ORM自动化的基石。
Douyu内置的Http服务器是基于NIO技术的,
是对Tomcat六及com.sun.net.httpserver(一共1300多个Java源文件)进展阔斧大刀的改建后得来的,
改建后的Http服务器当前唯有60个上下的源文件,支持Http1.0/1.1协议。
Douyu内置的权限治理模型现阶段包孕了效能权限、字段权限两类,
效能权限正常对应控制器类中的Action步骤,Action步骤可以与表单中的旋钮联系关系,
字段权限能统制表单中的字段是不是可以查看、批改或掩藏。
Douyu内置的ORM已差一点兑现自动化,你只须建个数据库表(如pet),
其后在服务器配置文件中配备数据库驱动、并为每个数据库指定一个包名(如my.oracle.table),
然后就你可以在你的Java源文件顶用import my.oracle.table.Pet导入模型种Pet。
Douyu还支持横跨多个数据库的事宜,还支持封存点(Savepoint)。
Douyu项目首页现阶段放在:
http://code.google.com/p/douyu/
底下是一些简略的代码片段:
Hello World
Java代码
1.@Controller
二.public class HelloWorld {
3. public void index(PrintWriter out) {
4. out.println("Hello World!");
5. }
6.}
@Controller
public class HelloWorld {
public void index(PrintWriter out) {
out.println("Hello World!");
}
}
自动提取表单参数:
Html代码
1.
2. 名称:
3. 年纪:
4.
5.
名称:
年纪:
Java代码
1.@Controller
二.public class User {
3. public void show(String name, int age) {
4. ...
5. }
6.}
@Controller
public class User {
public void show(String name, int age) {
...
}
}
资料上传
Html代码
1.
2. 资料一:
三.说明 :
4.
5.
资料一:
说明 :
Java代码
一.import com.douyu.http.UploadedFile;
2.
3.@Controller
四.public class FileUpload {
5. public void index(UploadedFile file一, String description) {
6. File f = new File("D:/Douyu/temp/uploadedFiles", file一.getSimpleName());
7. file一.saveTo(f);
8. }
9.}
import com.douyu.http.UploadedFile;
@Controller
public class FileUpload {
public void index(UploadedFile file一, String description) {
File f = new File("D:/Douyu/temp/uploadedFiles", file一.getSimpleName());
file一.saveTo(f);
}
}
根本的CRUD操作
Java代码
一.create table pet(
2. id int not null auto_increment,
3. name varchar(50) not null,
4. age int,
5. primary key(id)
6.);
create table pet(
id int not null auto_increment,
name varchar(50) not null,
age int,
primary key(id)
);
Java代码
一.import com.douyu.main.Context;
二.import sql.table.mysql.Pet;
3.
4.@Controller
五.public class Crud {
6. public void index(Context c) {
7. Pet pet = new Pet();
8. pet.name("pet一");
9. pet.age(三);
10. c.insert(pet);
11.
12. pet.name("MyPet");
13. c.update(pet);
14.
15. c.delete(pet);
16.
17. Rows rows = new Rows(Pet.class);
18. rows.offset = 一;
19. rows.limit = 100;
20. c.select(rows);
21. for(Pet p : rows.rowList) {
22. ...
23. }
24. }
25.}
import com.douyu.main.Context;
import sql.table.mysql.Pet;
@Controller
public class Crud {
public void index(Context c) {
Pet pet = new Pet();
pet.name("pet一");
pet.age(三);
c.insert(pet);
pet.name("MyPet");
c.update(pet);
c.delete(pet);
Rows rows = new Rows(Pet.class);
rows.offset = 一;
rows.limit = 100;
c.select(rows);
for(Pet p : rows.rowList) {
...
}
}
}
横跨多个数据库的事宜
Java代码
一.import com.douyu.main.Context;
二.import my.table.oracle.Table一;
三.import my.table.mysql.Table二;
4.
5.@Controller
六.public class Transaction {
7. public void index(Context c) {
8. Table一 t一 = new Table一();
9. t一.f一("1234");
10. Table二 t二 = new Table二();
11. t二.f二("1234");
12.
13. c.beginTransaction();
14.
15. c.insert(t一);
16. c.insert(t二);
17.
18. c.setSavepoint();
19.
20. t二.f二("abcd");
21. c.update(t二);
22.
23. c.endTransaction();
24. }
25.}
import com.douyu.main.Context;
import my.table.oracle.Table一;
import my.table.mysql.Table二;
@Controller
public class Transaction {
public void index(Context c) {
Table一 t一 = new Table一();
t一.f一("1234");
Table二 t二 = new Table二();
t二.f二("1234");
c.beginTransaction();
c.insert(t一);
c.insert(t二);
c.setSavepoint();
t二.f二("abcd");
c.update(t二);
c.endTransaction();
}
}
Douyu将施用两种开源协议:GPL2.0、 Apache License Version 2.0
全部与编译器相关的源代码应用GPL2.0协议(由于OpenJDK Javac编译器是施用这个协议的)
其余源代码施用Apache License Version 2.0协议开源。
不过现阶段Douyu的版本只是0.1.0,还不稳定,之所以只是提供了二进制版,
现阶段我也并不推荐你研究Douyu的源代码,由于这可能会铺张你的时间,
由于Douyu的内部兑现变故很频繁,在一年以内,大大很小版本变化次数已超过100次了,
源代码中的诠释也十分少,基本就来不急写,等过几个版本稳固先后再公布源代码。
当前Douyu的开发工作惟独我一个人,全凭个人兴趣在家全职开发,
如若你对Douyu的兑现有兴趣,念参加进去,我也是欢迎的,
但是你务必对Http协议、JDBC轨范、Java语言编译器有相当程度的理解,
要不然的话你可能在看Douyu的源代码时很吃力。
要想懂得更多内容请看:
Without SSH/JSP/Servlet,不走平常谈,Java可以更酷
http://zhh2009.iteye.com/blog/517796
这篇稿子是昨夜在JavaEye刚刚公布的,详细说了然Douyu的更种用法,
里边也详细说了然Douyu的很多设计理念以及我个人的很多研究经验。
赶快去见见吧
【原文来自CSDN】
分享到:
相关推荐
通常,这种接口会提供一个WebSocket服务,因为WebSocket能够实现实时双向通信,适合用于实时数据传输,如弹幕。 在Java中,我们可以使用`java.net.WebSocket`类或第三方库如`javax.websocket`来实现WebSocket连接。...
标题中的"DouYu.zip_douyu___douyu\_jumayumi douyu_yubo.douyu.com"表明这是与斗鱼直播(DouYu)相关的项目,可能涉及到一个名为"DouYu"的软件或应用,其中包含了“jumayumi”和“yubo.douyu.com”的元素,后者是...
标题"AJAX Douyu_0_1_0.rar"表明这是一个与AJAX技术相关的源码或工具项目,可能与斗鱼(Douyu)直播平台的某个版本或功能有关。AJAX,全称Asynchronous JavaScript and XML,是一种在无需刷新整个网页的情况下,能够...
【标题】"Douyu demo" 是一个与斗鱼平台相关的示例项目,可能是为了演示或教学如何使用斗鱼的API、SDK或者实现某些特定功能而创建的。由于没有具体的描述,我们将通过“源码”和“工具”这两个标签来推测其内容。 ...
【标题】"仿斗鱼直播源码DouYu.zip"揭示了这是一个模仿知名直播平台斗鱼的微信小程序开发项目。在微信小程序的生态环境中,开发者可以创建轻量级的应用,无需用户下载安装,直接在微信内运行,为用户提供便捷的在线...
Douyu Crawler Demo 斗鱼关注人数爬虫 Demo,具体可以参考这篇博客 。 注意:爬虫程序有很高的时效性,很快就会过时无法使用。Demo 最后测试时间为 2020-07-02 日。 安装 $ go get -v github....
【标题】"斗鱼案例后台模拟数据"是一个与 Flutter 相关的项目,它涉及到使用 Flutter 开发一个类似于斗鱼直播平台的后台模拟数据系统。这个项目可能旨在帮助开发者理解和学习如何在 Flutter 中构建类似的实时数据...
通常,这样的文件夹结构会包含README文件,介绍项目的用途、安装和运行步骤;lib目录下存放着源码;test目录用于存放单元测试;pubspec.yaml是Flutter项目的配置文件,列出项目依赖的库和其他元数据。此外,可能还有...
基于 MVP + Glide + Retrofit + RxJava2.0 + butterknife 的C9MJ TV (斗鱼douyu/熊猫panda/战旗zhanqi/虎牙huya/龙珠longhzu/全民quanmin/网易cc/火猫huomao + 英雄联盟LOL/守望先锋OW/DOTA2/炉石传说hs/CSGO)App。...
from scrapy.pipelines.images import ImagesPipeline import scrapy class DouyuPipeline(object): def process_item(self, item, spider): return item class DouyuImagePipeline(ImagesPipeline): ...
斗鱼旦木火花版本3.0 ||最终版本介绍与第一个版本的相比,在此存储库中,对Douyu_TV的danmu的分析基于SPARK而不是MYSQL(Pymysql)。环境: Python 3.6 wordcloud模块解霸斯派德火花(Pyspark) Windows10(64位)...
"写入txt"则表明程序会将获取的数据保存为文本文件,例如douyu_kWEG.txt和douyu_Exwh.txt,便于后续分析。 标签"爬虫"提示我们,这个过程可能使用了Python、Java或其他支持网络爬虫的编程语言。爬虫通常包括发送...
douyu_spider scrapy for douyu
技术栈 CSS部分:使用styled-components,css in js方案; Javascript框架:React; http请求:axios,可选es6新特性Promise替代; 路由: React-router。 使用React Redux实现全部(目前处于分支,实现中) 功能实现...
在开发过程中,开发者可能会使用Ajax技术(XMLHttpRequest或fetch API)从斗鱼服务器获取JSON数据,然后使用JSON.parse()方法解析数据,提取出主播的相关信息。同时,利用DOM操作库如jQuery或者原生的DOM API,将...
ps4-irc-douyu ps4直播douyu.tv弹幕转发服务器 把irc.twitch.tv下面4个ip做本地映射 Name: irc.twitch.tv Address: 192.16.64.11 Name: irc.twitch.tv Address: 192.16.64.145 Name: irc.twitch.tv Address: 192.16....
1. **登录与授权**:SDK会提供登录接口,开发者可以通过这些接口实现用户授权,获取用户的个人信息,以便在应用中展示个性化内容。 2. **直播流媒体**:直播的核心在于流媒体技术,SDK可能会包含播放器组件,用于...
【标题】"douyu-gifts:每天发送礼物"是一个与直播平台斗鱼相关的Python项目,其核心功能是自动发送礼物给指定的主播。在直播行业中,观众可以通过购买并赠送虚拟礼物来支持他们喜欢的主播,而这个项目则帮助用户实现...