继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Java Web基础入门,Springboot入门(2)

RyanMiao
关注TA
已关注
手记 10
粉丝 56
获赞 133

前言

语言都是相通的,只要搞清楚概念后就可以编写代码了。而概念是需要学习成本的。

本文首发于博客园-Ryan Miao. 由于限制2000字,只能分多篇。

Java Web

Java Web的开源框架中,目前最常用的是SpringBoot. SpringBoot可以提供API,可以渲染页面,是作为API Server的最佳选择。

写了无数遍hello world, 这次还是要从hello world开始。

demo source

https://github.com/Ryan-Miao/springboot-demo-gradle

Java Web的包管理工具有maven,gradle。这里将使用gradle作为依赖管理工具。

Gradle是什么

gradle是继maven之后,Java项目构建工具的集大成者。它管理依赖,为什么要管理依赖?我们的项目中将会使用很多其他的lib,这些lib有我们自己的,也有开源的,甚至大部分都是开源的。当引入这些lib的时候,引入哪个版本?去哪里下载?多个版本产生了冲突怎么办?以及最后我们项目开发完成后,怎么打包?甚至,想使用CI/CD自动化构建工具,如何集成?这就是gradle可以做的事情。

gradle要怎么学?

一般来说不用学,不用理会内置的逻辑,只需要用就好。就好比IDE,你不会深究IDE是c编写的还是Java编写的,但会使用IDE来编写代码。同样,gradle的用法很简单,可以满足我们开发中觉得部分需求。当然,当需要自定义功能的时候,可以使用groovy来编写gradle脚本。

IntelIj IDEA

IDEA是目前构建Java Web项目最火IDE。用法和Eclipse还是有不少的区别,刚转过来的时候可能有点不习惯。但根据2-8原则,我们只需要掌握其中一部分用法就可以开发了,剩下的高级用法可以在开发中慢慢摸索。即,其实用法也很简单。

新建一个gradle项目

点击File->New->project->gradle->勾选Java

如果发现没有JDK,那么new一个就好。

下一步,设置项目标签,group通常是公司名称倒写,比如com.googlecom.alibaba等. ArtifactId就是我们的项目名称,比如这次demo为springboot-demo

然后一路next,完成后确定。IDEA会下载gradle,下载简单的依赖,完毕后,项目根目录下多出几个文件,目前不用care。

.
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
    ├── main
    │   ├── java
    │   └── resources
    └── test
        ├── java
        └── resources

接下来修改build.gradle,这个文件是依赖管理的核心文件

buildscript {
    repositories {
        maven {
            url "http://maven.aliyun.com/nexus/content/groups/public/"
        }
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.8.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'

jar {
    baseName = 'springboot-demo'
    version =  '0.1.0'
}

repositories {
    maven {
        url "http://maven.aliyun.com/nexus/content/groups/public/"
    }
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile('org.springframework.boot:spring-boot-starter-test')
}
  • maven是一个仓库,一些开源的第三方库lib都从这里下载,这里引用了aliyun镜像,因为maven在国内访问比较慢,如果在国外可以移除这个节点
  • buildscript里就这么写,不用关心为什么,只需要知道这里这样写就可以引入springboot的版本
  • dependencies是唯一会改变和增加内容的地方,当需要第三方库的时候添加,添加规则就是groupId:artifactId:version, 正好和我们创建项目的时候声明的标签一样

修改build.gradle之后就要重新build,在IDEA中,点击右侧的工具栏,gradle,点击刷新按钮。就会自动下依赖,如果没有下载,点击gradle下Task里的build按钮。

另一个方式就是命令行:

细心可以发现项目根目录下有gradlewgradlew.bat这个文件,这是分别为linux和windows准备的启动工具,在Linux系统中

./gradlew build
or
sh gradlew build

在windows中

gradlew build

编译完成后,在左侧的项目目录下的External Libraties下可以看到我们引入的第三方库。为什么这么多?因为依赖是树状的,或者说网状的。lib也有他自己的依赖,gradle会负责把我们引入的lib的依赖也给下载下来。在没有maven和gradle这种构建工具之前,项目开发都是自己下载jar,自己丢进去classpath里,很容遗漏,也很容易造成冲突。gralde会负责下载依赖,还会解决冲突,比如不同版本等问题。

开始编写服务端配置

Springboot的一个优点是约定大于配置,意思是我们都约定好怎么配置,我帮你配置好了,你直接用就好。因此,springmvc时代的大部分配置都可以自动化完成。我们的启动类也只有一行.

可以看到,src/main/java这个目录变成蓝色,在IDEA里是指sourceSet,也就是源文件,我们的Java代码就是放在这文件下的,这也是约定好的。

在该目录下新建com.test.demo.Application.java

package com.test.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Created by Ryan on 2017/11/13/0013.
 */
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

到这里,我们的服务端就配置完毕了。运行main方法即可启动。

下一篇, 第一个API。

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP