Spring Boot(一)

一 、 Spring Boot 是什么?

  1. 首先Spring Boot不是一个框架,它是一种用来轻松创建具有最小或零配置的独立应用程序的方式。这是方法用来开发基于Spring的应用,但只需非常少的配置。它提供了默认的代码和注释配置,快速启动新的Spring项目而不需要太多时间。它利用现有的Spring项目以及第三方项目来开发生产就绪(投入生产)的应用程序。它提供了一组Starter Pom或gradle构建文件,可以使用它们添加所需的依赖项,并且还便于自动配置。
  2. Spring Boot根据其类路径上的库自动配置所需的类。假设应用程序想要与数据库交互,如果在类路径上有Spring数据库,那么它会自动建立与数据源类的连接。

二、 Spring Boot 主要目标

  1. 为所有Spring开发提供一个基本的 、 更快的 、 更广泛的入门体验 。
  2. 开箱即用 , 但随着需求开始偏离默认值 , 快速启动 。
  3. 提供大型项目(如嵌入式服务器 , 安全性 , 度量 , 运行状况检查 , 外部化配置)常见的一系列非功能特性 。
  4. 绝对没有代码生成 , 不需要xml配置 , 完全避免xml配置
  5. 为了避免定义更多的注释配置 (它将一些现有的Spring Fraework 注释组合合成一个简单的单一注释 。)
  6. 避免编写大量的import语句
  7. 提供一些默认值 ,以便在短时间内快速启动项目 。

三 、 新项目为什么需要Spring Boot

  1. 假设要在Spring Framework中开发一个Hello World应用程序,因为只有一个项目专用于开发Hello World功能:它就是控制器。其余的是任何使用Spring开发的Web应用程序的通用模板文件。但是如果所有Spring Web应用程序都需要它,为什么都要在每个项目中都必须提供它? 以下是新项目需要Spring Boot的理由了。

    1. 简化基于Java的应用程序开发,单元测试和集成测试过程。
    2. 通过提供一些默认值来减少开发,单元测试和集成测试时间。
    3. 提高生产力。
    4. 当使用默认值时,Spring Boot有自己的看法。如果不指定详细信息,它将使用其自己的默认配置。如果想要持久化,但是没有在POM文件中指定任何东西,那么Spring Boot会将Hibernate带有HSQLDB数据库的配置作为JPA提供者。
    5. 为大型项目(例如嵌入式服务器,安全性,度量,健康检查,外部化配置)提供许多非常常见的非功能特性/解决方案。

四 、 Spring Boot 核心和限制

  1. Spring Boot不是编写应用程序的框架,它可以帮助我们以最少的配置或零配置开发和构建,打包和部署应用程序。
  2. 它不是应用程序服务器。但是它是提供应用程序服务器功能的嵌入式servlet容器,而不是Spring Boot本身。
  3. 类似地,Spring Boot不实现任何企业Java规范,例如JPA或JMS。 例如,Spring Boot不实现JPA,但它通过为JPA实现(例如Hibernate)自动配置适当的bean来支持JPA。
  4. 最后,Spring Boot不使用任何形式的代码生成来完成它的功能。它是利用Spring 4的条件配置功能,以及Maven和Gradle提供的传递依赖关系解析,以在Spring应用程序上下文中自动配置bean。
  5. 简而言之,Spring Boot它的核心就是Spring。
  6. 未来的Spring项目不会有任何XML配置作为它的一部分,一切都将由项目Spring Boot处理。

五、 Spring Boot 的优点和缺点

  1. 优点:

    1. 使用Java或Groovy开发基于Spring的应用程序非常容易。
    2. 它减少了大量的开发时间并提高了生产力。
    3. 它避免了编写大量的样板代码,注释和XML配置。
    4. Spring Boot应用程序与其Spring生态系统(如Spring JDBC,Spring ORM,Spring Data,Spring Security等)集成非常容易。
    5. 它遵循“自用默认配置”方法,以减少开发工作量。
    6. 它提供嵌入式HTTP服务器,如Tomcat,Jetty等,以开发和测试Web应用程序非常容易。
    7. 它提供CLI(命令行界面)工具从命令提示符,非常容易和快速地开发和测试Spring Boot(Java或Groovy)应用程序。
    8. 它提供了许多插件来开发和测试Spring启动应用程序非常容易使用构建工具,如Maven和Gradle
    9. 它提供了许多插件,以便与嵌入式和内存数据库工作非常容易。
  2. 限制:
    1. 将现有或传统的Spring Framework项目转换为Spring Boot应用程序是一个非常困难和耗时的过程。它仅适用于全新Spring项目。

六、 Spring Boot 入门

  1. Spring Boot项目归根只是一个常规的Spring项目,只是利用了Spring Boot启动程序和自动配置。要创建Spring Boot应用程序的方法,Spring团队(The Pivotal Team)提供了以下三种方法。

    1. 使用Spring Boot CLI工具
    2. 使用Spring STS IDE
    3. 使用Spring Initializr (网站 http://start.spring.io/)
  2. 可以使用Spring Boot开发两种基于Spring的应用程序:
    1. 基于Java的应用程序
    2. 基于Groovy的应用程序
  3. 我们可以使用Spring Boot CLI或Spring STS IDE或Spring Initializr 网站来开发Spring Boot Groovy应用程序。 但是,我们可以使用Spring STS IDE或Spring Initializr网站来开发Spring Boot Java应用程序。
  4. 无论如何,Groovy也是JVM语言几乎类似于Java语言。可以将Groovy和Java组合成一个项目。因为就像Java文件一样,Groovy文件最终只能编译成 .class 文件。 .groovy 和 .java 文件都转换为 .class 文件(相同字节代码格式)。
  5. Spring Boot框架编程模型的灵感来自Groovy编程模型。 Spring Boot在内部使用一些基于Groovy的技术和工具来提供默认的导入和配置。
  6. Spring Boot框架还将现有的Spring Framework注释组合为一些简单或单个注释。 我们将在后面的帖子中逐个探索这些注释,并附带一些实时示例。
  7. Spring Boot框架将Spring-Java应用程序编程模型彻底改变为新的编程模型。到目前为止,Spring Boot只处于初始阶段,但未来肯定都使用Spring Boot。
  8. Spring Boot CLI

    1. 它是使用Spring Boot的最简单和最快速的方法。它是一个用于执行groovy脚本的命令行工具。可以按照以下步骤安装此工具:

      1. 从这里下载此项目的二进制发行版。 Spring Boot CLI需要Java JDK V1.6或更高版本才能运行。 Groovy v2.1作为此分发包的一部分进行打包,因此不需要安装(任何现有的Groovy安装都将被忽略)
      2. 如果解压zip文件,就会发现spring.bat将检查所有的设置。此脚本可以在目录/bin下找到。
    2. 下载Spring Boot CLI Zip文件到本地文件系统,并将spring-boot-cli-1.4.3.RELEASE.zip文件解压缩到本地文件系统中,在本实例中我们解压到 D:\software\yiibai\spring-1.4.3.RELEASE 目录下。
    3. 右键“我的电脑”->”高级系统设置”->”高级”->”环境变量”->选择”PATH”并新建并加上面的路径D:\software\yiibai\spring-1.4.3.RELEASE\bin;。如下图所示 -
    4. 执行以下命令验证安装结果 -

      C:\Users\Administrator>spring --version
      Spring CLI v1.4.3.RELEASE
      
    5. 现在Spring Boot CLI安装过程已成功完成。在讨论Spring Boot “HelloWorld”示例之前,首先要确定从命令提示符运行Groovy脚本是否正确。
  9. Spring Boot “Spring”命令

    1. Spring Boot CLI提供了一个“spring”命令,用来从命令提示符运行Spring Boot Groovy脚本。Spring Boot 的“spring –help”命令有很多选项,可以将此命令用于不同的目的。其中有一个重要的选项是“run”选项。

      spring run

  10. Spring Boot 的 Hello World 实例

    1. 可以用Spring Boot开发两种基于Spring的应用程序

      1. Groovy应用程序
      2. Java应用程序
    2. Grovvy程序:

      1. 在本地文件系统中创建一个“HelloWorld”文件夹,放置groovy脚本,这里放在 D:\software\yiibai\spring-1.4.3.RELEASE 目录下。
      2. 使用以下内容开发Groovy脚本文件。

        @RestController
        class HelloWorld {@RequestMapping("/")String hello() {"Hello JournalDev World."}
        }
        
      3. 将此文件命名为HelloWorld.groovy,这里的“.groovy”扩展名是必须的。
      4. 现在Spring Boot Hello World示例已准备好使用Spring MVC Rest控制器。运行和测试这个例子来了解Spring Boot框架。在本地文件系统中的“HelloWorld”文件夹中打开命令提示符。执行以下命令 -

        spring run HelloWorld.groovy
        

      5. 当执行“spring run HelloWorld.groovy”时,它会启动嵌入的Tomcat服务器的默认端口号:8080。现在Spring Boot Hello World示例应用程序已启动并正在运行。下面打开浏览器来测试一下。打开浏览器并访问以下链接。访问此URL:http://localhost:8080/

七 、 Spring Boot 安装

  1. 在安装之前确保 机器中已经安装了JDK1.6 及以上版本
  2. 如果你是一个Java 新手 , 或者你只想体验Spring Boot , 你可以首先尝试Spring Boot CLI
  3. 可以使用与标准Java库的方式来使用Spring Boot。只需在类路径中包含适当的spring-boot-*.jar文件即可。 Spring Boot不需要任何特殊工具集成,因此可以使用任何IDE或文本编辑器; 并且Spring Boot应用程序没有什么特别之处,因此您可以像任何其他Java程序一样运行和调试。
  4. 虽然可以直接复制 Spring Boot.jar 但是还是建议使用一个依赖管理工具 maven
  5. 使用maven 安装 Spring Boot

    1. Spring Boot 与maven 3.2 版本及以上兼容 。
    2. Spring引导依赖项groupId使用org.springframework.boot。 通常Maven POM文件将继承自spring-boot-starter-parent项目,并将依赖性声明为一个或多个“Starters”。 Spring Boot还提供了一个可选的Maven插件来创建可执行jar。
    3. 一个典型的pom.xml 文件的内容:

      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>myproject</artifactId><version>0.0.1-SNAPSHOT</version><!-- Inherit defaults from Spring Boot --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.3.RELEASE</version></parent><!-- Add typical dependencies for a web application --><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><!-- Package as an executable jar --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
      
    4. spring-boot-starter-parent是使用Spring Boot的一个很好的方法,但它可能并不适合所有的时候。 有时可能需要从不同的父POM继承,或者可能只是不喜欢默认设置。

  6. 安装Spring Boot CLI
    1. Spring Boot CLI是一个命令行工具,如果想要使用Spring快速原型化,可以使用它。它允许运行Groovy脚本,它有一个类似Java的语法,没有那么多的样板代码。
    2. 不一定需要CLI来使用Spring Boot,但它绝对是让Spring应用程序实现的最快捷方式。
    3. 具体安装方式 参考上文 。

八 、 Spring Boot 应用程序开发入门

  1. 在Java中开发一个简单的“Hello World!” Web应用程序,突出一些Spring Boot的主要特性。在这里将使用Maven来构建这个项目,因为大多数IDE支持它。
  2. 开始之前,打开一个终端,检查是否安装了Java和Maven的有效版本。

    C:\Users\Administrator>java -version
    java version "1.8.0_65"
    Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
    Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)C:\Users\Administrator>mvn -v
    Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
    Maven home: D:\worksp\yiibai.com\apache-maven-3.3.9
    Java version: 1.8.0_65, vendor: Oracle Corporation
    Java home: D:\Program Files\Java\jdk1.8.0_65\jre
    Default locale: zh_CN, platform encoding: GBK
    OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
    
  3. 此示例需要在其自己的文件夹中创建。后续说明假定您已创建了一个合适的文件夹,并且它是“当前目录”。
  4. 创建POM.XML文件 : 我们需要从创建一个Maven pom.xml文件开始。pom.xml是将用于构建项目的配置,在这个示例中,把它放在 D:\spring-boot\pom.xml 。打开您喜欢的文本编辑器并添加以下内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>myproject</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.3.RELEASE</version></parent><!-- Additional lines to be added here... --></project>
    
  5. 它给出了一个工作构建,可以通过运行mvn package(可以忽略“jar will be empty - no content was marked for inclusion!”现在警告)测试它。
  6. 添加类路径依赖项

    1. Spring Boot提供了一些“启动器”,使得容易添加 jar 到你的类路径。在我们的示例应用程序已经在POM的父部分中使用了spring-boot-starter-parent。spring-boot-starter-parent是一个特殊的启动器,提供了有用的 Maven 默认值。 它还提供了一个依赖关系管理部分,以便您可以省略“blessed”依赖关系的 version 标签。
    2. 其他“Starters”只是提供了在开发特定类型的应用程序时可能需要的依赖关系。由于我们正在开发一个web应用程序,将添加一个spring-boot-starter-web依赖关系。 可以通过 mvn dependency:tree 查看依赖树以解决jar包冲突问题
    3. 可以看到spring-boot-starter-parent本身不提供依赖关系。现在编辑 pom.xml 文件,并在parent部分的下面添加spring-boot-starter-web依赖关系:

      <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
      </dependencies>
      
    4. 再次运行 mvn denpendency:tree 命令 , 将看到现在有许多的其他依赖项 , 包括Tomcat web服务器和Spring Boot 本身 。
  7. 编写代码

    1. 我们需要创建一个单一的Java文件。Maven将默认从src/main/java编译源代码,所以需要创建该文件夹结构,然后添加一个名为src/main/java/Example.java的文件,完整的文件路径是 D:/spring-boot/src/main/java/Example.java,代码如下所示:

      import org.springframework.boot.*;
      import org.springframework.boot.autoconfigure.*;
      import org.springframework.stereotype.*;
      import org.springframework.web.bind.annotation.*;@RestController
      @EnableAutoConfiguration
      public class Example {@RequestMapping("/")String home() {return "Hello World!"; // Copyright: w w w . y i I b A i.c O m }public static void main(String[] args) throws Exception {SpringApplication.run(Example.class, args);}}
      
    2. 虽然这里没有太多的代码,但背后有很多事情正在发生。让我们看看代码的重要部分。
      1. @RestController 和 @RequestMapping注解

        1. Example类的第一个注解是@RestController。这称为构造型注释,它为阅读代码的人提供了提示,对于Spring,该类扮演了一个特定的角色。在这种情况下,这个类是一个web @Controller,因此Spring会在处理传入的Web请求时考虑它。
        2. @RequestMapping注解提供了“路由”信息。它告诉Spring任何带有路径“/”的HTTP请求应该映射到home方法。@RestController注解告诉Spring将生成的字符串直接返回给调用者。
        3. @RestController和@RequestMapping注解是Spring MVC注释(它们不是Spring Boot特有的)。
      2. @EnableAutoConfiguration注解
        1. 第二个类级别注解是@EnableAutoConfiguration。这个注解告诉Spring Boot“猜测”将如何配置Spring,它是基于添加的jar依赖。 由于spring-boot-starter-web添加了Tomcat和Spring MVC,因此自动配置将假设正在开发一个Web应用程序并相应地设置Spring。
      3. “main”方法
        1. 应用程序的最后一部分是主(main)方法。 这只是一个遵循Java约定的应用程序入口点的标准方法。main方法通过调用run来委托Spring Boot SpringApplication类。SpringApplication将引导应用程序,启动Spring,从而启动自动配置Tomcat Web服务器。需要传递Example.class作为run方法的参数来告诉SpringApplication,这是主要的Spring组件。args数组也被传递以暴露任何命令行参数。
  8. 运行代码

    1. 现在,我们的应用程序应该可以正常运行工作了。由于 POM 中使用了spring-boot-starter-parent,有一个有用的 run 目标,用它来启动应用程序。输入 mvn spring-boot:run 从根项目目录启动应用程序:

        .   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
      ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/
      ::Spring Boot:: (v1.4.3.RELEASE)
      ....... . . .
      ....... . . . (log output here)
      ....... . . .
      ........ Started Example in 2.222 seconds (JVM running for 6.514)
      
    2. 如果打开Web浏览器访问 http://localhost:8080 , 应该会看到以下输出:
  9. 创建可执行jar

    1. 现在,我们来完成一个例子,创建一个完全自包含的可执行jar文件,可以在生产中运行。可执行jar(有时称为“fat jar”)是包含编译的类以及需要运行的所有jar依赖性的代码存档。

      可执行jar和Java
      Java不提供任何标准方法来加载嵌套的jar文件(即包含在jar中的jar文件)。如果想要分发一个自包含的应用程序,这可能是有问题的。
      为了解决这个问题,许多开发人员使用“uber” jar。 一个uber jar简单地将所有类,从所有jar到一个单一的归档。这种方法的问题是,很难看到实际上在应用程序中使用哪些库。如果在多个jar中使用相同的文件名(但是具有不同的内容),它也可能是有问题的。
      Spring Boot采用不同的方法,并允许直接嵌套JAR。
      要创建可执行的jar,需要将spring-boot-maven-plugin添加到pom.xml文件中。 在dependencies部分下面插入以下行:
      <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
      </build>
      
    2. POM 中 spring-boot-starter-parent 包括配置以绑定 repackage 目标。如果不使用父POM,则需要自己声明此配置。有关详细信息,请参阅插件文档。
    3. 在 target 目录中,应该看到一个myproject-0.0.1-SNAPSHOT.jar文件。文件大小应为10 Mb左右。如果想看里面内容,可以使用jar tvf:

      【Linux环境下】jar tvf target/myproject-0.0.1-SNAPSHOT.jar

    4. 应该在target目录中看到一个名为myproject-0.0.1-SNAPSHOT.jar.original的文件。这是Maven在Spring Boot重新打包之前创建的原始jar文件。
    5. 要运行该应用程序,请使用java -jar命令:

      java -jar target/myproject-0.0.1-SNAPSHOT.jar.   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
      ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/
      ::Spring Boot:: (v1.4.3.RELEASE)
      ....... . . .
      ....... . . . (log output here)
      ....... . . .
      ........ Started Example in 2.536 seconds (JVM running for 2.864)
      

    6. 如果打开Web浏览器访问 http://localhost:8080 , 应该会看到以下输出:
    7. 第一个Spring Boot 引用程序开发完成 。

Spring Boot (一)Spring Boot 概述相关推荐

  1. Spring、Spring MVC、Spring Boot三者的关系还傻傻分不清楚?

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 在本文中,你将获取到有关于Spring,Spring MVC和Spring Boot的概述, ...

  2. Spring Boot 和 Spring 有什么区别

    1 概述 对于Spring和SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习SpringBoot的我当时也是一头雾水随着经验的积累.我慢慢理解了这两个框架到底有什么区别. 相信对于 ...

  3. Spring,Spring MVC及Spring Boot区别,你分清了吗

    摘要] 对于一个Java开发者来说,Spring可谓如雷贯耳,无论是Spring框架,还是Spring引领的IOC,AOP风格,都对后续Java开发产生的深远的影响,同时,Spring社区总能及时响应 ...

  4. Spring Boot、Spring MVC、Spring:它们有什么区别?

    在本文中,您将获得Spring,Spring MVC和Spring Boot的概述,了解它们可以解决什么问题以及在哪里最好地应用它们.您将学到的最重要的事情是,Spring,Spring MVC和Sp ...

  5. spring boot整合spring security笔记

    最近自己做了一个小项目,正在进行springboot和spring Security的整合,有一丢丢的感悟,在这里分享一下: 首先,spring boot整合spring security最好是使用T ...

  6. Spring Initializr 构建Spring Boot/Cloud工程

    2019独角兽企业重金招聘Python工程师标准>>> 在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建.而创建的方式 ...

  7. Spring MVC 到 Spring BOOT 的简化之路

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:juejin.im/post/5aa22d1f5188255 ...

  8. Spring Boot(Spring的自动整合框架)

    2019独角兽企业重金招聘Python工程师标准>>> Spring Boot 是一套基于Spring框架的微服务框架,由于Spring是一个轻量级的企业开发框架,主要功能就是用于整 ...

  9. 为什么Java大神,都在看Spring Boot和Spring Cloud的书?

    2019独角兽企业重金招聘Python工程师标准>>> 如果你是一名Java开发人员,并且最近正打算学习Spring Boot和Spring Cloud框架并寻找一些关于它们的最好的 ...

  10. Spring干货汇总(含Spring Boot与Spring Cloud)

    周末抽空对本号推送的Spring相关内容做个汇总整理(包括spring boot.spring cloud等),方便大家查阅. Spring Boot专题 基础入门内容 SpringBoot快速入门 ...

最新文章

  1. Entity Framework CodeFirst数据迁移
  2. 网络带宽与传输性能的基本计算方法
  3. 1、初识Server API for JavaScript
  4. java 单例 生命周期_单例模式--- 声明周期托管方式
  5. 自动驾驶论文解析(7)
  6. Python多线程与Socket编程综合案例:素数
  7. CSDN博客排名20000以后的用户怎么查询具体排名
  8. 韩国冬奥:未来科技奥运我要长这样,阿里巴巴:你尽管想
  9. java重装机兵机甲咆哮_重装机兵之机甲咆哮流程攻略
  10. var,object和dynamic
  11. 九度OJ 1060:完数VS盈数 (数字特性)
  12. JavaScript_HTML DEMO_2_事件
  13. npm创建react项目
  14. pip更新不成功/Python虚拟环境下如何更新pip(Pycharm)
  15. 计算机如何连接网络扫描仪,windows系统下怎么共享扫描仪?
  16. 手动修改dns服务器设置,【当贝市场】怎样手动设置DNS服务器?教程如下
  17. Android开发 ANR异常的解决(应用程序无响应)
  18. php 导出word怎么分页,php 导出Word怎么分页
  19. Boosting Crowd Counting via Multifaceted Attention
  20. ipad投影到mac上_如何停止Mac和iPad上的来电

热门文章

  1. 编程实战一通讯录程序
  2. Windsock套接字I/O模型学习 --- 第二章
  3. MySQL数据库管理常用命令
  4. Crystal Reports basic for Visual Studio 2008部署
  5. oracle11g 隐藏参数_oracle隐含参数的查看与修改
  6. 7-1 最大子列和问题 (20 分)
  7. html中使浮动的字为行排列,CSS布局:float浮动
  8. 电脑登陆不了网页的服务器地址,电脑登陆qq打不开网页怎么设置
  9. new调用函数,new具体做了什么?
  10. java soap封装_Java SOAPMessage.writeTo方法代码示例