- 浏览: 181348 次
最新评论
-
adamed:
zhangwenzhuo 写道为什么this.get()会返回 ...
jQuery源码历代记5 -
zhangwenzhuo:
为什么this.get()会返回本身的呢?
jQuery源码历代记5 -
narutolby:
支持下~,哈哈~
jQuery历代记1 -
cpszy:
mark下
jQuery历代记1 -
gleams:
支持你
jQuery历代记1
You can have as many properties as you need to configure your plug-in.
你可以用多个属性配置插件。
<o:p> </o:p>
The Quartz framework converts the property values to the type specified in the plug-in, assuming that it's a primitive type. For example, you can specify properties of type int and expect Quartz to convert the String from the quartz.properties file to an int. The framework, however, will not convert 1 to an integer class.
<o:p> </o:p>
Quartz会将属性值转换为插件中定义的类型,假定该类型是基本数据类型。例如你可以指定参数为int,Quartz会将quartz.properties中的字符串转换为int值。然而框架不会将1转换为Integer类。
<o:p> </o:p>
Creating the Job File for the JobLoaderPlugin<o:p></o:p>
创建JobLoaderPlugin使用的Job文件<o:p></o:p>
<o:p> </o:p>
The JobLoaderPlugin looks for all XML files in the specified directory and assumes that each file is a valid Quartz jobs file. By "valid," we mean that the XML file adheres to the latest job-scheduling XSD file, which at the time of this writing is job_scheduling_data_1_5.xsd.
<o:p> </o:p>
JobLoaderPlugin在指定的文件夹中查找所有的XML文件并假定这些文件都是合法的Quartz job定义文件。所谓“合法”值XML遵循最新的作业调度XSD文件。在本书编写时最新的版本是job_scheduling_data_1_5.xsd。
<o:p> </o:p>
To make the JobLoaderPlugin more useful, we put each job, along with its job detail and trigger information, in a single XML file. This enables us to add and remove complete jobs just by putting the file into the directory or taking it out. This is very helpful in a development environment when you want to test only certain jobs. A single job XML file is shown in Listing 8.4.
<o:p> </o:p>
为了让JobLoaderPlugin更加有用,我们将每个job与它的job detail、触发器信息单独作为一个XML文件。这使得我们添加移除整个job时候只需要将文件添加或移出文件夹。在开发环境中如果我们需要测试某个单独的job的时候这是非常有帮助的。一个单独的job XML文件如列表8.4。
<o:p> </o:p>
Listing 8.4. A Job XML File Read by the JobLoaderPlugin<o:p></o:p>
列表8.4 供JobLoaderPlugin读取的一个Job XML文件
- <?xml version='1.0' encoding='utf-8'?>
- <quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.opensymphony.com/quartz/JobSchedulingData
- http://www.opensymphony.com/quartz/xml/job_scheduling_data_1_5.xsd"
- version="1.5">
- <job>
- <job-detail>
- <name>PrintInfoJob1</name>
- <group>DEFAULT</group>
- <job-class>
- org.cavaness.quartzbook.chapter3.ScanDirectoryJob
- </job-class>
- <volatility>false</volatility>
- <durability>false</durability>
- <recover>false</recover>
- <job-data-map allows-transient-data="true">
- <entry>
- <key>SCAN_DIR</key>
- <value>c:\quartz-book\input1</value>
- </entry>
- </job-data-map>
- </job-detail>
- <trigger>
- <simple>
- <name>trigger1</name>
- <group>DEFAULT</group>
- <job-name>PrintInfoJob1</job-name>
- <job-group>DEFAULT</job-group>
- <start-time>2005-07-30T16:04:00</start-time>
- <!-- repeat indefinitely every 10 seconds -->
- <repeat-count>-1</repeat-count>
- <repeat-interval>10000</repeat-interval>
- </simple>
- </trigger>
- </job>
- </quartz>
The job file is Listing 8.4 contains all the information necessary for the JobLoaderPlugin to schedule the job. This file also contains an entry for the JobDataMap, which is available to the job class at runtime. The example in Listing 8.4 uses a configured SimpleTrigger to schedule an infinitely repeating trigger that fires every 10 seconds. To further test the plug-in, we created a second job file, which differs from the first in some small way. Listing 8.5 shows the second job file.
<o:p> </o:p>
列表8.4显示的job文件包含所有的供JobLoaderPlugin调度job所需要的信息。这个文件还包含一个可以在类中实时供JobDataMap调用的实体。列表8.4战士的例子使用SimpleTrigger。它频率是没10秒一次,无限循环。为了更进一步测试插件,我们创建第2个job文件,与第一个相比有一些小不同。列表8.5显示了第2个job文件。
<o:p> </o:p>
Listing 8.5. A Second Job XML File Loaded by the JobLoaderPlugin<o:p></o:p>
列表8.5 JobLoaderPlugin加载的第2个job XML文件<o:p></o:p>
- <?xml version='1.0' encoding='utf-8'?>
- <quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.opensymphony.com/quartz/JobSchedulingData
- http://www.opensymphony.com/quartz/xml/job_scheduling_data_1_5.xsd"
- version="1.5">
- <job>
- <job-detail>
- <name>PrintInfoJob2</name>
- <group>DEFAULT</group>
- <job-class>
- org.cavaness.quartzbook.chapter3.ScanDirectoryJob</job-class>
- <volatility>false</volatility>
- <durability>false</durability>
- <recover>false</recover>
- <job-data-map allows-transient-data="true">
- <entry>
- <key>SCAN_DIR</key>
- <value>c:\quartz-book\input2</value>
- </entry>
- </job-data-map>
- </job-detail>
- <trigger>
- <simple>
- <name>trigger2</name>
- <group>DEFAULT</group>
- <job-name>PrintInfoJob2</job-name>
- <job-group>DEFAULT</job-group>
- <start-time>2005-07-30T16:04:00</start-time>
- <!-- repeat indefinitely every 10 seconds -->
- <repeat-count>-1</repeat-count>
- <repeat-interval>60000</repeat-interval>
- </simple>
- </trigger>
- </job>
- </quartz>
The second job file in Listing 8.5 differs only slightly from the one in Listing 8.4. We've changed the directory for the job, which is scanned and changed the trigger schedule. The point here is that you can have multiple jobs in the jobs directory, and the JobLoaderPlugin will load them all and schedule them individually with the Scheduler.
<o:p> </o:p>
列表8.5显示的第2个job文件与8.4显示的第一个相比只有一点不同。我们改变了搜索改变触发调度作业的文件夹。有一点注意的是你可以放多个job文件到文件夹中,JobLoaderPlugin将分别加载并用Scheduler调度他们。(老外就是这样说了好几遍还罗嗦^_^)
<o:p> </o:p>
Using Multiple Plug-Ins<o:p></o:p>
使用多个插件<o:p></o:p>
You can register as many plug-ins in the quartz.properties file as you like. However, the order of loading and initialization can't be guaranteed because Quartz loads all the properties into a map and then loops through the plug-ins in the order that they are retrieved from the map.
<o:p> </o:p>
你可以在quartz.properties文件中注册任意多个插件。然而加载初始化的顺序不能保证,因为Quartz加载所有的属性到Map中然后按map的中的顺序查找插件。
<o:p> </o:p>
To get around this limitation, you can create a Quartz plug-in that acts as a parent plug-in and loads multiple other plug-ins in a given order. Listing 8.6 shows what the ParentPlugin looks like.
<o:p> </o:p>
为绕开这一限制,你可以建立一个Quartz插件做为其他插件的父插件。该插件按指定顺序加载其他插件。列表8.6展示了父插件的样子。
<o:p> </o:p>
Listing 8.6. The ParentPlugin Can Load Child Plug-Ins in a Specified Order<o:p></o:p>
列表8.6 父插件可以按指定顺序加载子插件<o:p></o:p>
- package org.cavaness.quartzbook.chapter8;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.StringTokenizer;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerConfigException;
- import org.quartz.SchedulerException;
- import org.quartz.spi.SchedulerPlugin;
- public class ParentPlugin implements SchedulerPlugin {
- private static Log logger = LogFactory.getLog(ParentPlugin.class);
- // A list of child plug-ins
- //子插件列表
- private List childPlugins = new ArrayList();
- private String childPluginNames;
- private String pluginName;
- private Scheduler scheduler;
- /**
- * Default no-arg Constructor
- *
- */
- public ParentPlugin() {
- }
- /**
- * Pass the initialize call on to the child plug-ins.
- *
- * @throws SchedulerConfigException
- * if there is an error initializing.
- */
- public void initialize(String name, final Scheduler scheduler)
- throws SchedulerException {
- this.pluginName = name;
- this.scheduler = scheduler;
- logger.info("Searching for child plugins to load");
- // The child plug-ins are comma-separated
- StringTokenizer tokenizer =
- new StringTokenizer(childPluginNames, ",");
- while (tokenizer.hasMoreElements()) {
- String pluginClassname = tokenizer.nextToken();
- try {
- Class pluginClass =
- Class.forName(pluginClassname);
- Object obj = pluginClass.newInstance();
- // Make sure the specified class is a plug-in
- if (obj instanceof SchedulerPlugin) {
- // Initialize the Plugin
- SchedulerPlugin childPlugin =
- (SchedulerPlugin) obj;
- logger.info("Init child Plugin " +
- pluginClassname);
- childPlugin.initialize(pluginClassname,
- scheduler);
- // Store the child plug-in in the list
- childPlugins.add(childPlugin);
- } else {
- // Skip loading class
- logger.error("Class is not a plugin " +
- pluginClass);
- }
- } catch (Exception ex) {
- // On error, log and go to next child plug-in
- logger.error("Error loading plugin " +
- pluginClassname, ex);
- }
- }
- }
- public void start() {
- // Start each child plug-in
- int size = childPlugins.size();
- for (int i = 0; i < size; i++) {
- SchedulerPlugin childPlugin =
- ((SchedulerPlugin) childPlugins.get(i));
- logger.info("Starting Child Plugin " + childPlugin);
- childPlugin.start();
- }
- }
- public void shutdown() {
- // Stop each child plug-in
- int size = childPlugins.size();
- for (int i = 0; i < size; i++) {
- SchedulerPlugin childPlugin =
- ((SchedulerPlugin) childPlugins.get(i));
- logger.info("Stopping Plugin " + childPlugin);
- childPlugin.shutdown();
- }
- }
- public String getPluginName() {
- return pluginName;
- }
- public void setPluginName(String pluginName) {
- this.pluginName = pluginName;
- }
- public String getChildPluginNames() {
- return childPluginNames;
- }
- public void setChildPluginNames(String childPluginNames) {
- this.childPluginNames = childPluginNames;
- }
- }
- &nbs
发表评论
-
JQuery CookBook翻译连载7(第四章)
2010-06-29 18:45 987今天超级爆发,整理出来第四章中文版翻译。 -
JQuery CookBook翻译连载6(第三章)
2010-06-29 11:31 973放出jQuery CookBook翻译的第三章。 最近找工作 ... -
JQuery CookBook 翻译连载6(第2章发布)
2010-06-01 14:15 913jQuery Cookbook第1、2章合订版。 不知 ... -
JQuery CookBook 翻译连载5(第1章发布)
2010-05-16 16:55 895jQuery cookBook 第一章翻译打包发布。 ... -
JQuery CookBook翻译连载1
2010-05-14 11:46 7881.1 在HTML页面中添加j ... -
JQuery CookBook翻译连载2
2010-05-14 11:45 7701.2 在页面DOM加载结束后、整个页面加载结束前执行jQue ... -
JQuery CookBook翻译连载3
2010-05-14 11:34 6601.3 使用选择器及jQuery函 ... -
JQuery CookBook翻译连载4
2010-05-14 11:09 6421.4 在特定的上下文 中查找元素 问 ... -
Quartz Job Scheduling Framework第11章翻译初稿
2007-10-27 15:21 1031内容在附件中 -
Quartz Job Scheduling Framework第7章翻译初稿
2007-10-27 15:18 1090内容在附件中 -
Quartz Job Scheduling Framework第5章翻译初稿
2007-10-27 15:18 939在附件中 -
Quartz Job Scheduling Framework第2章翻译初稿
2007-10-27 15:17 1121在附件中 -
Quartz Job Scheduling Framework第8章翻译初稿
2007-09-27 19:42 2599Chapter 8. Using Quartz Plug- ... -
Quartz Job Scheduling Framework翻译初稿奉上
2007-09-26 21:55 1557由于时间与水平限制。这本经典书籍翻译的可能并不尽如人意,在此先 ... -
Quartz Job Scheduling Framework第10章翻译初稿 续
2007-09-26 21:53 1942In the example in Listing 10. ... -
Quartz Job Scheduling Framework第10章翻译初稿
2007-09-26 21:40 2555Chapter 10. Using Quartz with J ...
相关推荐
Quartz Job Scheduling Framework第2章翻译初稿 博文链接:https://adamed.iteye.com/blog/135880
博文链接:https://adamed.iteye.com/blog/135883
博文链接:https://adamed.iteye.com/blog/135881
博文链接:https://adamed.iteye.com/blog/135882
软考官网--2024常见操作说明:包括如何绘制网络图、UML图、表格等 模拟作答系统是计算机技术与软件专业技术资格(水平)考试的电子化考试系统界面、作答过程的仿真系统,为各级别、各资格涉及输入和页面显示的部分题型提供体验性练习。
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
1.版本:matlab2022A。 2.包含:程序,中文注释,仿真操作步骤(使用windows media player播放)。 3.领域:遗传优化 4.仿真效果:仿真效果可以参考博客同名文章《基于遗传优化GA的三目标优化仿真》 5.内容:基于遗传优化GA的三目标优化仿真。遗传算法(Genetic Algorithm, GA)是一种模拟自然选择和遗传机制的全局搜索优化方法,广泛应用于解决复杂优化问题,包括具有多个目标的优化问题,即多目标遗传算法(Multi-Objective Genetic Algorithm, MOGA)。在这里,将三个目标函数进行统一的编码,通过单目标遗传优化的方式,同步求解三个目标函数的最优值。 6.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。
本项目使用了Sleep-EDF公开数据集的SC数据进行实验,一共153条整晚的睡眠记录,使用Fpz-Cz通道,采样频率为100Hz 整套代码写的较为简洁,而且有添加相应的注释,因此进行分享,而且不仅仅说是睡眠分期,也可以作为学习如何使用神经网络去进行时序数据分类问题的一个入门项目,包括怎么用GRU、LSTM和Attention这些经典网络结构。 网络结构(具体可查看network.py文件): 网络整体结构类似于TinySleepNet,对RNN部分进行了修改,增加了双向RNN、GRU、Attention等网络结构,可根据参数进行调整选择。 定义了seq_len参数,可以更灵活地调整batch_size与seq_len。 数据集加载(具体可查看dataset.py文件) 直接继承自torch的Dataset,并定义了seq_len和shuffle_seed,方便调整输入,并复现实验。 训练(具体可查看train.py文件):
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
5.3.1_1二叉树的先中后序遍历.mp420240404-134540.png
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
这个是一个JSP在线图书销售商城网站项目,管理员角色包含以下功能:管理员登录,管理员账号管理,会员用户管理,订单管理,图书分类管理,图书管理,新闻管理,评价管理等功能。用户角色包含以下功能:用户首页,最新图书查看,会员登录注册,商城公告新闻查看,查看图书详情,查看评论以及发表评论,查看购物车,查看我的订单等功能。
开发语言:Java JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.6/5.7(或8.0) 数据库工具:Navicat 开发软件:idea 依赖管理包:Maven 代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~ 如果对系统的中的某些部分感到不合适可提供修改服务,比如题目、界面、功能等等... 声明: 1.项目已经调试过,完美运行 2.需要远程帮忙部署项目,需要额外付费 3.本项目有演示视频,如果需要观看,请联系我v:19306446185 4.调试过程中可帮忙安装IDEA,eclipse,MySQL,JDK,Tomcat等软件 重点: 需要其他Java源码联系我,更多源码任你选,你想要的源码我都有! https://img-blog.csdnimg.cn/direct/e73dc0ac8d27434b86d886db5a438c71.jpeg
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
毕设-基于STM32的物联网农业监测与控制系统源码.zip毕设-基于STM32的物联网农业监测与控制系统源码.zip毕设-基于STM32的物联网农业监测与控制系统源码.zip毕设-基于STM32的物联网农业监测与控制系统源码.zip毕设-基于STM32的物联网农业监测与控制系统源码.zip毕设-基于STM32的物联网农业监测与控制系统源码.zip毕设-基于STM32的物联网农业监测与控制系统源码.zip
基于单片机的系统