同福

搭建Java运行环境IntelliJ IDEA版【20200901】

介绍

什么是Spring

我们说到Spring,一般指代的是Spring Framework,它是一个开源的应用程序框架,提供了一个简易的开发方式,通过这种开发方式,将避免那些可能致使代码变得繁杂混乱的大量的业务/工具对象,说的更通俗一点就是由框架来帮你管理这些对象,包括它的创建,销毁等

什么是Spring MVC

Spring MVC是Spring的一部分,Spring 出来以后,大家觉得很好用,于是按照这种模式设计了一个 MVC框架(一些用Spring 解耦的组件),主要用于开发WEB应用和网络接口,它是Spring的一个模块,通过Dispatcher Servlet, ModelAndView 和 View Resolver,让应用开发变得很容易。

什么是Spring Boot

初期的Spring通过代码加配置的形式为项目提供了良好的灵活性和扩展性,但随着Spring越来越庞大,其配置文件也越来越繁琐,太多复杂的xml文件也一直是Spring被人诟病的地方,特别是近些年其他简洁的WEB方案层出不穷,如基于Python或Node.Js,几行代码就能实现一个WEB服务器,对比起来,大家渐渐觉得Spring那一套太过繁琐,此时,Spring社区推出了Spring Boot,它的目的在于实现自动配置,降低项目搭建的复杂度,如需要搭建一个接口服务,通过Spring Boot,几行代码即可实现

安装

安装JDK

下载JDK12
https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html

安装IntelliJ

下载IntelliJ
https://www.jetbrains.com/idea/download/#section=windows

IntelliJ是由 jetbrains 开发的收费IDE软件,使用体验比 Eclipse 好很多

配置JDK

我们需要为 JDK 设置环境变量 JAVA_HOME,以为引用 JDK 的程序可以找到

设置 Windows 环境变量 JAVA_HOME 指向 JDK 安装目录

设置环境变量需要重启电脑

使用

安装Spring Boot

IntelliJ默认是支持 Spring Boot 项目的,不过名字叫做 Spring Initializr 就是了

建立Spring Boot项目

  • 点击 File -> New Project

  • 在弹出的窗口左侧菜单里点击 Spring Initializr,点击 Next

  • 在 Artifact 一栏输入项目名称 test

  • 下一步直接点击 Next

  • 在下一步的窗口左侧菜单里点击 Web,勾选右侧的 Spring Web,点击 Next

  • 下一步直接点击 Finish

  • 接下来窗口关闭,等待初始化完毕

测试Spring Boot项目

  • 展开 Project 项目结构,选择 src -> main -> java -> com -> example -> test 节点

  • 在 test 节点下面建立目录 model(模型),controller(控制器)

  • 在 model 目录建立程序 Test.java,内容如下

package com.example.demo.model;

public class Test {
    private final long id;
    private final String content;
    
    public Test(long id, String content) {
        this.id = id;
        this.content = content;
    }
    
    public long getId() {
        return id;
    }
    
    public String getContent() {
        return content;
    }
}
  • 在 controller 目录建立程序 TestController.java,内容如下

package com.example.demo.controller;

import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.example.demo.model.Test;

@RestController
public class TestController {
    private static final String template = "Hello, %s!";
    
    private final AtomicLong counter = new AtomicLong();
    
    @RequestMapping("/counter")
    public Test dealTest(@RequestParam(value="name", defaultValue="World") String name) {
        return new Test(counter.incrementAndGet(),
            String.format(template, name));
    }
}
  • 在 TestApplication.java 的类定义里修改@SpringBootApplication注释来取消自动加载配置

    因为Spring Boot 会自动配置数据库连接,不过我们这个测试项目还用不到连接数据库

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
  • 点击 Run -> Run 'TestApplication' 编译并启动项目

  • 打开浏览器,输入网址 http://localhost:8080/counter,应该可以看到 Hello World 结果内容!

Spring Boot转Web

  • 打开项目 pom.xml 文件,在 project 下面添加项目,设置打包方式

<packaging>war</packaging>
  • 在 project -> dependencies 下面添加项目,设置使用外部 tomcat 服务器

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
  • 启动程序 Application.java 增加两行引用

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
  • 启动程序 Application.java 更改类继承父类 SpringBootServletInitializer

public class Application extends SpringBootServletInitializer {
  • 启动程序 Application.java 添加重载方法 configure

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(Application.class);
}

Mavan

Apache Maven

下载

从官网下载 maven 包,地址 http://maven.apache.org/download.cgi

选择 Binary 包下载,地址 https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz

解压缩得到 apache-maven-3.6.1 目录

导入

  • 打开 File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven

  • 右侧 Maven home directory 修改为 apache-maven-3.6.1 的路径

  • 右侧 User settings file 修改为 apache-maven-3.6.1/conf/settings.xml 的路径

  • 点击 OK 关闭窗口

  • 点击弹出的小提示框里的 Import changes 链接

    这里会下载项目依赖库包,会比较漫长,慢慢等待吧

Mirror

设置镜像

如果发现 repo.maven.apache.org 慢的话可以设置一些镜像地址来提高速度

  • 打开 apache-maven-3.6.1/conf/settings.xml

  • 搜索 mirrors 节点,在里面添加自己的镜像地址

<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
  • 然后重新 build 就会使用这个镜像地址了

打包war

打包war

我们需要将项目打包成war,用来部署到tomcat上

  • 设置 Windows 环境变量 Path 增加指向 maven 的路径 apache-maven-3.6.1/bin

  • 重启电脑后,可以在 cmd 里输入命令 mvn -v 查看是否配置成功

Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:2
9+08:00)
Maven home: C:\Users\tongfu\eclipse\jee-2019-06\eclipse\apache-maven-3.6.1\bin\.
.
Java version: 12.0.2, vendor: Oracle Corporation, runtime: C:\Program Files\Java
\jdk-12.0.2
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
  • 通过 cd 命令进入到自己的项目根目录,执行 mvn clean package,看到如下信息则表示成功了

[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:00 min
[INFO] Finished at: 2019-08-28T17:54:54+08:00
[INFO] ------------------------------------------------------------------------
  • 然后就可以在项目的 target 目录下面找到打包完成的 war 文件了