语言Springboot的第一个次

第九章 闭包

=

闭包是一模一样段落从包含的效应,可以吃传送或者当代码中使用。Swift 中之闭包与 C
或 Objective-C 中的 Blocks 或者有旁语言中之 lambdas 很相像。

闭包可以捕获到该所在上下文中之另常量或变量的援。就是以常量和变量包裹已,因此称为
“闭包”。Swift 会为而处理捕获过程被所波及到的内存管理职责。

注意:

倘若你切莫熟识 “捕获” 的概念也不必担心,在后边的 “捕获值”(Capture
Values)这个节中见面开展详细的讲授。

在“函数”这同样章中介绍的全局函数和嵌套函数是事实上是闭包的同等种特殊情形。闭包有如下三栽形式:

     1. 大局函数是一个发号都不抓获任何值的闭包;

     2. 嵌套函数是一个发出号还以该卷入函数中得以捕获一些价值的闭包;

     3. 闭包表达式是用轻量级语法所以写的可以以该上下文中捕获值的闭包;

Swift
闭包表达式的语法风格简洁清晰,并且于周边现象都有优化使得语法更简洁。这些优化包括:

     1. 起上下文推断参数类型以及归值类型;

     2. 单表达式的闭包隐式返回;

     3. 参数称呼简写;

     4. Trailing 闭包语法

一、什么是Springboot

乘动态语言的兴(Ruby、Groovy、Scala、Node.js),Java的开发显得十分的笨重:繁多的布、低下的开销效率、复杂的部署流程及第三在技术集成难度大。在上述条件下,Springboot应运而生。它应用”习惯优于配备”(项目受到存在大量的配备,此外尚置一个习惯性的安排,让你不要手动进行配置)的意让你的色迅速运转起来。使用springboot很轻创建一个独自运转(运行jar,内嵌servlet容器)、准生级别之冲Spring框架的型,使用springboot你可以毫不或只有待分外少的Spring配置。

其三、Springboot入门程序

(1)设置spring boot的parent

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.2.RELEASE</version>
</parent>

证明:Spring boot的类型须要以parent设置为spring
boot的parent,该parent包含了大气默认的安排,大大简化了咱们的开发。

(2)导入spring boot的web支持

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
</dependency>

(3)添加Spring boot的插件

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

即pom.xml:

<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>
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
    </parent>
  <groupId>com.hcx.springboot</groupId>
  <artifactId>hcx-springboot</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <!-- 连接池 -->
        <dependency>
            <groupId>com.jolbox</groupId>
            <artifactId>bonecp-spring</artifactId>
            <version>0.8.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

</dependencies>
    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <!-- 资源文件拷贝插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!-- java编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

        </plugins>
        <pluginManagement>
            <plugins>
                <!-- 配置Tomcat插件 -->
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
  </build>
</project>

(4)编写第一单Spring Boot的以

package com.hcx.springboot.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@SpringBootApplication //声明这是一个springboot的应用
@Configuration //声明该类为一个配置类
public class HelloApplication { 
    //springboot的项目命名中,一般都有一个xxxApplication类,该类作为springboot项目的入口类

    @RequestMapping("hello")
    @ResponseBody
    public String hello(){
        return "hello world";
    }

    public static void main(String[] args) {
        /**
         * 第一个参数:要运行的应用(该应用一定要包含@SpringBootApplication注解)
         * 第二个参数:直接用args,也可以指定内置参数
         */
        SpringApplication.run(HelloApplication.class, args);
    }

}

代码说明:

1、@SpringBootApplication:Spring Boot项目的核心注解,主要目的是开启自动配置;
2、@Configuration:这是一个配置Spring的配置类;
3、@Controller:标明这是一个SpringMVC的Controller控制器;
4、main方法:在main方法中启动一个应用,即:这个应用的入口;

(5)启动以

每当Spring Boot项目面临,启动之法门发生个别栽,一种植是直接run Java
Application另外一种是经Spring Boot的Maven插件运行。

第一种:

首先栽启动方式.png

第二种:

亚种植启动方式.png

开行功能:

起步拟果.png

顾如下信就是印证启动成功了:

INFO 6188 --- [           main] c.i.springboot.demo.HelloApplication     : Started HelloApplication in 3.281 seconds (JVM running for 3.601)

(6)测试

打开浏览器,输入地点:127.0.0.1:8080/hello

启动.png

效果.png

亚、Springbot的利弊

优点:

1.快速构建项目;
2.对主流开发框架的无配置集成;
3.项目可独立运行,无须外部依赖servlet容器;
4.提供运行时的应用监控;
5.极大地提高了开发、部署效率;
6.与云计算的天然集成。

缺点:

1.书籍文档较少且不够深入;
2.如果你不认同Spring框架,这也许是它的缺点,但建议你一定要使用Spring框架。

Springboot的率先只次

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图