第2章安装和配置DreamFactory

在本章中,您将学习如何安装和配置DreamFactory。提供了许多安装解决方案,包括GitHub存储库,点击式安装程序,Docker容器和特定于云的安装程序。在做出决定之前,请务必仔细阅读这些选项,因为根据您的具体情况,某些选项可能比其他选项更合适。

#选择DreamFactory版本

无论您是想在本地笔记本电脑上,在AWS或Google Cloud或Docker等云环境中启动DreamFactory实例,我们都能为您提供现成的解决方案!

#在DreamFactory GitHub的库

克隆DreamFactory的OSS存储库一直是迄今为止最流行的访问软件的方式。要克隆存储库,您需要在本地计算机或服务器上安装Git客户端,此时可以使用以下命令克隆它:

$ git clone https://github.com/dreamfactorysoftware/dreamfactory/

DreamFactory建立在非常受欢迎的Laravel框架之上,后者又在PHP上构建。这意味着DreamFactory在所有托管环境中几乎无处不在; 您只需要确保您的托管环境运行PHP 7.1或更高版本,最新版本的Web服务器(如Apache或NGINX),访问四个数据库之一以存储配置数据(MySQL / MariaDB,PostgreSQL,SQLite,和MS SQL Server都支持),并且您有足够的权限来安装一些必需的PHP扩展。您可以通过我们的wiki了解有关所需软件和扩展的更多信息:

http://wiki.dreamfactory.com/DreamFactory/Installation#GitHub

#Docker

我们的Docker容器越来越受欢迎,包括运行DreamFactory所需的一切,包括Ubuntu 16.04,PHP 7.1和NGINX Web服务器。它还包括所有必需的PHP扩展,这意味着您应该能够尽快开始尝试使用最新的DreamFactory版本!要了解有关容器的更多信息,请访问我们的df-docker存储库:

https://github.com/dreamfactorysoftware/df-docker

#Bitnami

许多用户只是想要评估DreamFactory而无需花费任何时间或精力来购买测试服务器或摆弄配置问题。如果你属于这个类别,那么我们的Bitnami点击式安装程序适合你!这些虚拟机包括开始运行DreamFactory所需的一切,包括内置数据库服务器,Web服务器,PHP运行时以及一堆其他有用的软件。

安装程序适用于Linux,Windows和Mac OS X.通过以下链接下载所需的版本:

https://www.dreamfactory.com/downloads

#云图

云环境是目前选择的托管解决方案,并且有充分的理由。云服务提供商提供无与伦比的稳定性,性能和安全性,以及无数的附加功能,能够最大限度地提高IT团队的效率,同时最大限度地降低成本。DreamFactory提供针对所有主要云提供商的Bitnami图像,包括AWS,Azure,Google和Oracle Cloud。通过以下链接下载您想要的版本:

https://www.dreamfactory.com/downloads

#从Source安装和配置DreamFactory

如果您已经克隆了GitHub存储库,那么在启动DreamFactory实例之前,您需要执行一些额外的步骤。第一步涉及确保满足您的服务器要求。让我们先解决这些问题,然后概述软件安装。

#配置您的服务器

警告

本指南正在大力发展,某些部分已经完成。我们建议您阅读此处提供的当前安装文档。

服务器配置将根据您的操作系统而有所不同。为了确保说明尽可能具体和直截了当,我们将它们分解为子章节:

  • Debian / Ubuntu

如果您计划将PHP与以下某个数据库结合使用,请查看下面显示的相关子章节:

  • Microsoft SQL Server
  • SAP SQL Anywhere
  • 火鸟

#安装DreamFactory

第一步是使用Composer安装所需的PHP包:

$ composer install --no-dev

--no-dev选项告诉Composer不安装特定于开发的依赖项。我们的OSS社区和内部开发人员都使用这些开发依赖项来协助软件开发。您可以通过打开composer.json项目根目录中的文件来查看必需和开发依赖项的列表。

如果您收到错误Your requirements could not be resolved to an installable set of packages,并且您不需要MongoDB,那么您可以通过--ignore-platform-reqs在运行Composer时另外提供选项来快速解决问题。

安装软件包后,接下来需要配置系统数据库。此数据库将包含与您的实例关联的各种配置设置。DreamFactory为此目的支持四个数据库,包括Microsoft SQL Server,MySQL,PostgreSQL和SQLite。请记住,您需要首先创建此数据库以及DreamFactory将用于连接到它的帐户。

您将通过运行terminal命令并回答有关数据库配置的一些提示来配置系统数据库。

为此,请从项目的根目录中运行以下命令:

$ php artisan df:env
**************************************************
* Configuring DreamFactory...
**************************************************
Created .env file with default configuration.
Created phpunit.xml with default configuration.Which database would you like to use for system tables? [sqlite]:[0] sqlite[1] mysql[2] pgsql[3] sqlsrv> 1Enter your mysql Host:> 192.168.10.10Enter your Database Port [3306]:> Enter your database name:> dreamfactoryEnter your database username:> dreamfactory_userEnter your database password:> Re-enter your database password:> CACHE DRIVER  is not supported. Using default driver file.
Configuration complete!
************************* WARNING! **************************
*
* Please take a moment to review the .env file. You can make any
* changes as necessary there.
*
* Please run "php artisan df:setup" to complete the setup process.
*
*************************************************************

配置系统数据库后,就可以创建系统表和种子数据,然后创建第一个系统管理员帐户。这是通过运行df:setup命令来完成的。由于此命令涉及多个提示,因此我将命令输出分解为几个部分。运行后df:setup,该命令将立即创建数据库表和种子数据:

$ php artisan df:setup
*********************************************
* Welcome to DreamFactory Setup.
*********************************************
Running Migrations...
Migration table created successfully.
Migration driver used: sqlite
Migrating: 2015_01_27_190908_create_system_tables
Migrated:  2015_01_27_190908_create_system_tables
Migrating: 2015_01_27_190909_create_db_extras_tables
Migrated:  2015_01_27_190909_create_db_extras_tables
...
Migrating: 2018_01_23_155210_script_implements_access_list
Migrated:  2018_01_23_155210_script_implements_access_list
Migrating: 2018_01_29_030233_create_bitbucket_config_table
Migrated:  2018_01_29_030233_create_bitbucket_config_table
Migration completed successfully.
*********************************************
*********************************************
Running Seeder...
Seeding: AppSeeder
App resources created: admin, api_docs, file_manager
Seeding: EmailTemplateSeeder
Email Template resources created: User Invite Default, User Registration Default, Password Reset Default
Service resources created: system, api_docs, files, logs, db, email
System service updated.
Service resources created: user
All tables were seeded successfully.

接下来,系统将提示您创建第一个系统管理帐户:

Creating the first admin user...Enter your first name:> JasonEnter your last name:> GilmoreEnter your email address?:> jason.gilmore@dreamfactory.comChoose a password:> Re-enter password:> Successfully created first admin user.

最后,系统会提示您确保正确配置了应用程序storagebootstrap/cache目录。这涉及使用chownchmod命令确保正确设置目录所有权和权限:

* Please make sure following directories and all directories under
* them are readable and writable by your web server
*  -> storage/
*  -> bootstrap/cache/
* Example:
*  > sudo chown -R {www user}:{your user group} storage/ bootstrap/cache/
*  > sudo chmod -R 2775 storage/ bootstrap/cache/

{www user}字符串是Web服务器守护程序所有者的所有者的占位符。该{your user group}字符串是Web服务器组守护程序所有者的占位符。

在此提示后,您将立即获知成功设置:

**********************************************************
******************** Setup Successful! *******************
**********************************************************
* Setup is complete! Your instance is ready. Please launch
* your instance using a browser. You can run "php artisan serve"
* to try out your instance without setting up a web server.
**********************************************************

如果您已安装并配置DreamFactory以在Web服务器上运行,则可以打开浏览器并导航到IP地址或域名。否则,如果尚未安装Web服务器,则可以运行php artisan serve

$ php artisan serve
Laravel development server started: <http://127.0.0.1:8000>

这将启动一个在127.0.0.1端口上运行的简单PHP服务器8000。打开浏览器并导航到http://127.0.0.1:8000,您应该看到以下屏幕:

#介绍.env文件

根据运行应用程序的环境提供不同的配置值通常很有帮助。例如,您可能希望在本地使用不同的缓存驱动程序,而不是在生产服务器上使用。

为了使这个变得简单,Laravel使用了Vance Lucas 的DotEnv PHP库。在新的Laravel安装中,应用程序的根目录将包含一个.env.example文件。如果您通过Composer安装Laravel,则此文件将自动重命名为.env。否则,您应该手动重命名该文件。有关更多信息,请参阅Laravel的官方文档。

Lavvel Docs on .env

#启用调试和日志记录

默认情况下,DreamFactory不启用调试。调试虽然是帮助监控应用程序的一个很好的工具,但它可以是生产环境中的一个大型性能接收器。在.env下面的示例文件中,您可以看到这些选项的位置。

<span style="color:#2c3e50"><span style="color:#cccccc"><code><span style="color:#999999">##==============================================================================</span>
<span style="color:#999999">## Environment Settings</span>
<span style="color:#999999">##==============================================================================</span><span style="color:#999999">## Use the installer.sh file in this directory to easily edit these settings.</span>
<span style="color:#999999">## By default each setting is set to its internal default and commented out.</span><span style="color:#999999">##------------------------------------------------------------------------------</span>
<span style="color:#999999">## Application Settings</span>
<span style="color:#999999">##------------------------------------------------------------------------------</span><span style="color:#999999">## Application name used in email templates and other displays</span>
<span style="color:#999999">#APP_NAME=DreamFactory</span>
<span style="color:#999999">## Encryption cipher options are AES-128-CBC or AES-256-CBC (default)</span>
<span style="color:#999999">#APP_CIPHER=AES-256-CBC</span>
<span style="color:#999999">## Return debugging trace in exceptions: true or false (default)</span>
<span style="color:#999999">#APP_DEBUG=false</span>
<span style="color:#999999">## Environment this installation is running in: local, production (default)</span>
<span style="color:#f8c555">APP_ENV</span><span style="color:#67cdcc">=</span>local
<span style="color:#999999">## Use 'php artisan key:generate' to generate a new key. Key size must be 16, 24 or 32.</span>
<span style="color:#f8c555">APP_KEY</span><span style="color:#67cdcc">=</span>base64<span style="color:#cccccc">:</span><span style="color:#f8c555">YOUR_APP_KEY</span>
<span style="color:#999999">#APP_LOCALE=en</span>
<span style="color:#999999">## LOG setting. Where and/or how the log file is setup. Options are single (default), daily, syslog, errorlog</span>
<span style="color:#f8c555">APP_LOG</span><span style="color:#67cdcc">=</span>daily
<span style="color:#999999">## LOG Level. This is hierarchical and goes in the following order.</span>
<span style="color:#999999">## DEBUG -> INFO -> NOTICE -> WARNING -> ERROR -> CRITICAL -> ALERT -> EMERGENCY</span>
<span style="color:#999999">## If you set log level to WARNING then all WARNING, ERROR, CRITICAL, ALERT, and EMERGENCY</span>
<span style="color:#999999">## will be logged. Setting log level to DEBUG will log everything.</span>
<span style="color:#f8c555">APP_LOG_LEVEL</span><span style="color:#67cdcc">=</span>debug
<span style="color:#999999">## When APP_LOG is set to 'daily', this setting dictates how many log files to keep.</span>
<span style="color:#f8c555">APP_LOG_MAX_FILES</span><span style="color:#67cdcc">=</span><span style="color:#f08d49">5</span>
<span style="color:#999999">## PHP Date and Time function timezone setting</span>
<span style="color:#999999">#APP_TIMEZONE=UTC</span>
<span style="color:#999999">## External URL representing this install</span>
<span style="color:#999999">#APP_URL=http:</span><span style="color:#999999">//127.0.0.1:8000</span>
<span style="color:#999999">## The starting point (page, application, etc.) when a browser points to the server root URL,</span>
<span style="color:#999999">#DF_LANDING_PAGE=/dreamfactory/dist/index.html</span>
<span style="color:#f8c555">DF_LICENSE_KEY</span><span style="color:#67cdcc">=</span><span style="color:#f8c555">YOUR_LICENSE_KEY</span>
</code></span></span>

在努力使您的环境正常运行时,DreamFactory建议开启调试,并提高日志记录环境的灵敏度。要打开应用程序调试,请取消注释并更改以下值:

<span style="color:#2c3e50"><span style="color:#cccccc"><code><span style="color:#f8c555">APP_DEBUG</span><span style="color:#67cdcc">=</span><span style="color:#f08d49">true</span>
</code></span></span>

要修改日志记录值,您需要取消注释并修改以下代码片段:

<span style="color:#2c3e50"><span style="color:#cccccc"><code><span style="color:#f8c555">APP_LOG</span><span style="color:#67cdcc">=</span>daily
<span style="color:#f8c555">APP_LOG_LEVEL</span><span style="color:#67cdcc">=</span>debug
<span style="color:#f8c555">APP_LOG_MAX_FILES</span><span style="color:#67cdcc">=</span><span style="color:#f08d49">5</span>
</code></span></span>

#启用电子邮件注册

在创建新用户和管理员时,为每个用户和管理员设置密码并不理想。要解决此问题,您可以启用电子邮件注册,以便能够选择“发送电子邮件邀请”。这将向新用户发送包含指向您实例的链接的电子邮件邀请,并允许他们自己设置密码。

您需要.env将以下行添加到您的文件中,然后您可以立即注册新用户!

<span style="color:#2c3e50"><span style="color:#cccccc"><code><span style="color:#f8c555">MAIL_DRIVER</span><span style="color:#67cdcc">=</span>smtp
<span style="color:#f8c555">MAIL_HOST</span><span style="color:#67cdcc">=</span>smtp<span style="color:#cccccc">.</span>gmail<span style="color:#cccccc">.</span>com
<span style="color:#f8c555">MAIL_PORT</span><span style="color:#67cdcc">=</span><span style="color:#f08d49">587</span>
<span style="color:#f8c555">MAIL_USERNAME</span><span style="color:#67cdcc">=</span><span style="color:#f8c555">YOUR_EMAIL</span>@gmail<span style="color:#cccccc">.</span>com
<span style="color:#f8c555">MAIL_PASSWORD</span><span style="color:#67cdcc">=</span><span style="color:#f8c555">YOUR_PASSWORD</span>
</code></span></span>

#增加会话生命周期

出于安全考虑,DreamFactory会议仅限60分钟。但是,您可以通过打开.env文件并查找以下变量将生命周期更改为任何所需的持续时间:

#DF_JWT_TTL = 60

更改DF_JWT_TTL为您需要的任何持续时间,以分钟为单位。例如,以下设置将使您的会话持续一周:

DF_JWT_TTL = 10080

#更新DreamFactory Docker环境

我们的DreamFactory环境仍在进行中,但由于Docker的简化配置和部署功能,许多用户正在积极地使用它。有时您会想要更新到更新版本的DreamFactory,因此我们已经汇总了以下说明作为指南。

警告

您可能正在阅读本节,目的是升级DreamFactory生产环境。与任何软件一样,升级生产环境可能会出现问题,因此在尝试升级之前,建议您拥有易于访问的文件和系统数据库备份和恢复计划。你被警告了!

首先打开终端并输入DreamFactory实例的根目录。然后执行以下命令:

$ docker-compose exec web cat .env | grep APP_KEY
APP_KEY=base64:U/En8zI8WKrZ/F7CA9KncWjGTIhbvpGD5wN3eLoDZuQ=
...

将返回几行输出,但是您应该只将开头的行复制APP_KEY到文本文件中。请记住,您至少需要复制该APP_KEY值。如果您已覆盖其他默认值,例如与系统数据库关联的类型,位置和凭据,则还需要复制这些默认值。执行此步骤非常重要,否则您将遇到各种与升级相关的问题。

接下来,运行以下命令:

$ git tag --list
2.1
2.14.1
2.2
2.2.1
...

这将显示所有标记的版本。首先停止正在运行的DreamFactory容器而不删除它。请记住,运行此命令时,DreamFactory实例将脱机,直到升级过程完成:

$ docker-compose stop
Stopping df-docker_web_1   ... done
Stopping df-docker_mysql_1 ... done
Stopping df-docker_redis_1 ... done

出于本示例的目的,我们假设您运行2.12并且想要升级到2.14.1。为此,您首先要查看2.14.1标记:

$ git checkout tags/2.14.1

接下来,您需要将其添加APP_KEYdocker-compose.yml文件中。docker-compose.yml在您喜欢的代码编辑器中打开,向下滚动到该web服务,并将APP_KEY属性和关联值与其他环境变量一起添加:

...
DB_DATABASE: dreamfactory
APP_KEY: 'base64:U\/En8zI8WKrZ\/F7CA9KncWjGTIhbvpGD5wN3eLoDZuQ='
CACHE_DRIVER: redis
...

警告

APP_KEY值封装在单引号中是至关重要的,另外还要使用反斜杠转义出现在键中出现的任何正斜杠!例如,将APP_KEY上面找到的条目与之前显示的输出进行比较。

保存这些更改,然后使用以下命令重建容器:

$ docker-compose up -d --build

完成后,您可以运行以下命令以确认容器已启动并正在运行:

$ docker-compose psName                     Command               State          Ports
--------------------------------------------------------------------------------
df-docker_mysql_1   docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp
df-docker_redis_1   docker-entrypoint.sh redis ...   Up      6379/tcp
df-docker_web_1     /docker-entrypoint.sh            Up      0.0.0.0:80->80/tcp

如果出现问题,并且其中一个容器指示已退出,则可以查看该容器的日志:

$ docker-compose logs web

假设容器已启动并运行,您接下来要确定DreamFactory系统数据库架构是否已更改。为此,请运行以下命令:

$ docker-compose exec web php artisan migrate:status

如果您Y在表格输出的Ran?列中看到,则架构未更改。如果您N在任何时候看到,那么您将需要运行以下命令来更新系统数据库模式:

$ docker-compose exec web php artisan migrate

最后,您需要通过执行以下命令来清除应用程序和配置缓存:

$ docker-compose exec web php artisan config:clear
Configuration cache cleared!$ docker-compose exec web php artisan cache:clear
Cache cleared successfully.

完成后,在浏览器中打开DreamFactory实例,并确认环境是否正常运行。

#在CentOS上安装和配置DreamFactory

首先我拉入CentOS Docker镜像。

docker pull centos

然后我以分离状态启动图像。

docker run -itd {Container_ID}

一旦图像运行,我们就可以执行它并开始安装DreamFactory。

docker exec -it {Container_ID} /bin/bash

#使用DreamFactory安装脚本

我们将使用可在此处找到的安装脚本,而不是花时间复制和粘贴一长串命令。

首先,我们必须使用脚本将脚本放入容器中wget

wget -O cent.sh {RAW_GITHUB_SCRIPT_URL}

既然我们的服务器上有脚本,那就让它可执行。

chmod +x cent.sh

我们现在可以运行脚本,但首先让我们看看其他配置标志。您可以将几个选项传递给脚本以更改其行为。如果您不使用这些选项,脚本将安装Nginx Web服务器,DreamFactory以及所需的系统和PHP扩展,但不会安装数据库服务器。要查看完整的安装选项列表,请在此处查看,否则我们将使用该--with-mysql标志来使用MySQL作为我们的系统数据库。

现在我们可以运行脚本了!

sudo ./cent.sh --with-mysql

您现在应该看到脚本运行如此。

完成后,您现在可以访问浏览器并访问您的实例!

#选择HTTP客户端

无论您的API消费者是iPhone还是Android应用程序,SPA(单页应用程序)还是其他服务器,该消费者通常被称为客户端。客户端向REST API发出HTTP请求,解析响应并做出相应的响应。虽然在大多数情况下,您的团队将使用Alamofire或Axios等库来管理这些请求,但您通常希望在调查和学习阶段以更流畅的方式与API进行交互。API Docs功能很好地满足了这一需求,但API Docs界面缺乏书签和保持查询的能力,使用变量以编程方式管理参数,以及其他有助于维护一组易于访问的配置的功能。

幸运的是,有许多HTTP客户端可以很好地填补这个空白。最受欢迎的两个是Insomnia和Postman,它们分别在OSX和多个操作系统上可用。在本节中,我们将向您介绍两个HTTP客户端,并作为一个额外的奖励谈论无处不在的cURL客户端,它很可能是您从未听说过的最受欢迎的软件。

#失眠

Insomnia是一个跨平台的REST客户端,建立在Electron之上。与cURL和Postman相比,失眠在现场是新的,但提供了一系列功能,肯定会使其具有竞争力。它们具有非常流畅的用户界面和大量功能,包括团队选项。

#邮递员

Postman是一个经过验证的真实GUI界面,拥有出色的文档来帮助您设置测试环境。他们为每个人制定计划,从免费的独立用户到大型企业团队。Postman还有一个很棒的功能叫做API Network,它有来自各种来源的API调用示例。绝对值得一看。

#卷曲

cURL缺乏精美的界面可能会让你相信它不如Insomnia和Postman。不是这样!cURL是一个无与伦比的软件。cURL是一个命令行工具和库,用于使用URL语法传输数据,支持HTTP,HTTPS,FTP,FTPS,GOPHER,TFTP,SCP,SFTP,SMB,TELNET,DICT,LDAP,LDAPS,FILE,IMAP,SMTP,POP3, RTSP和RTMP。libcurl提供了无数强大的功能

#结论

安装并配置了DreamFactory后,就可以构建您的第一个API了!在下一章中,我们将完成这一步,完成生成基于数据库的API所需的步骤。

DreamFactory入门指南 - 第2章安装和配置DreamFactory相关推荐

  1. DreamFactory入门指南 - 第1章REST和DreamFactory简介

    DreamFactory入门指南 - 第1章REST和DreamFactory简介 无论您在当今的IT行业中扮演什么角色,API都是工作中不可或缺的一部分.营销人员定期将Salesforce,Pipe ...

  2. DreamFactory入门指南

    DreamFactory入门指南 欢迎来到DreamFactory平台!无论您是开源用户还是利用DreamFactory高级功能的付费客户,我们都会编写本指南,以帮助您以最有效的方式开始将平台整合到您 ...

  3. javaCV入门指南:序章

    javaCV入门指南系列: JavaCV入门指南:序章(看完本章后,不想看原理的小伙伴可直接跳转到<快速上手篇>) JavaCV入门指南:调用FFmpeg原生API和JavaCV是如何封装 ...

  4. Redis入门指南 第1章 简介 Redis的几项特性

    Redis入门指南 第1章 简介 Redis的几项特性 之前在做爬虫相关的demo时接触到了Redis,它基于键值对的存储系统吸引了我.它的操作十分方便,而且性能也高.趁着假期,系统地自学一下Redi ...

  5. Matlab编程入门指南:简介、安装、学习路线和几十个编程案例分析。

    一.Matlab编程入门指南:简介.安装.学习路线和几十个编程案例分析. 1.Matlab编程语言是一种广泛应用于科学计算.工程计算.数据分析.统计分析.信号处理等领域的高级数值计算和数据可视化软件. ...

  6. 第3章 安装和配置vCenter Server

    第3章安装和配置vCenter Server 在当今大多数信息系统中,客户端-服务器体系结构是至高无上的.这种立场是因为客户端-服务器体系结构可以集中资源管理,并为最终用户和客户端系统提供对这些资源的 ...

  7. python3 [爬虫入门实战]爬虫之scrapy安装与配置教程

    python3 [爬虫入门实战]爬虫之scrapy安装与配置教程 标签: python爬虫scrapy 2017-07-08 15:38 77人阅读 评论(0) 收藏 举报 分类: python3爬虫 ...

  8. PHP入门必备知识-wampserver的安装以及配置

    PHP入门必备知识-wampserver的安装以及配置 一.wampserever的安装 学习任何一门语言,工具是必不可少的,所谓"工欲善其事,必先利其器".对于php初学者来说, ...

  9. Python3入门——Python3+PyCharm环境的安装及配置

    Python3+PyCharm环境的安装及配置 1.Python3安装 检查Python安装是否成功 2.PyCharm的安装与配置 近期碰到有同学入门Python还不会安装并配置Python编程环境 ...

最新文章

  1. 批量修改文件权限 和所有者 chown nobody:nobody * -R chmod 775 * -R
  2. 皮一皮:中国男足啊..这球少一个人帮忙这球都进不了...
  3. php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例
  4. Office转PDF,Aspose太贵,怎么办?
  5. guns 最新开源框架企业版下载_国内比较火的5款Java微服务开源项目
  6. BOE(京东方)与吉利控股集团签订战略合作协议
  7. hibernate中的一对多和多对多的映射关系
  8. 受众定向_我如何了解社区与受众之间的差异
  9. CSS的七种基本选择器及其权值
  10. Java反射修改返回值_java反射调用时如果返回值是整型数组怎么处理?
  11. imp命令导入指定表_oracle 导入imp 命令
  12. 用Struts2写了一个小Demo,含简单的CRUB功能
  13. Md5(base64)加密与解密实战
  14. Java视频教程,最新全套Java教程!
  15. oracle诉讼_Oracle诉Google:Aaaaand诉讼又回来了! [更新]
  16. 这几个习惯,让我成为了高阶网络工程师。
  17. iphone 代码片段2
  18. 通过xshell命令方式下载文件
  19. 真北敏捷公众号里的群友
  20. 绿灰配色的微信营销PPT模板-优页文档

热门文章

  1. CNNIC公告称半个月已处理不良网站域名万例
  2. 系统日志之logger命令
  3. Python is同一性运算符和==相等运算符区别
  4. 【python命名规范】谷歌风格命名
  5. linux下Qt cannot find -lGL错误的解决方法
  6. 【C++ STL学习之二】容器vector大总结
  7. 【Linux入门学习之】grep命令详解
  8. js继承实现 狗类继承动物类
  9. 作业 利用单选框控制图片的显示
  10. 输出直角三角形 java