使用intelliJ创建 spring boot + gradle + mybatis站点

Spring boot作为快速入门是不错的选择,现在似乎没有看到大家写过spring boot + gradle + mybatis在intellij下的入门文章,碰巧被做.Net的同学问到,我想我也可以写这样一篇。
入门Java的人最大的问题是步骤繁琐,不知道如何开始,之前我也建议过我的一个小弟用BlueJ去学Java,可是这个东西学得他很迷茫,根本无法获得成就感,不知道能搞出什么有意思的东西,那我们就来点正式的吧,看看怎么从零开始建一个你自己的Java网站。

软件安装

作为入门版,当然我们要从软件安装开始咯。
要安装的软件有

JDK安装很简单,下载最新版,按提示安装即可。
IntelliJ IDEA的安装我想也是不必说了,如果这个软件安装也不会,那么学编程的路,可路漫漫其修远兮了。
Gradle也是需要安装的,在windows下,可以用scoop来安装。
要安装Scoop,打开windows的PowerShell,输入

set-executionpolicy remotesigned -s cu

然后使用这条命令安装Scoop:

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

详细可以参考:http://scoop.sh/

Mac下面,可以使用Homebrew安装,只需要一条命令:

brew update && brew install gradle

创建项目

打开intelliJ, 注意,这软件需要注册,但现在是有在线激活的服务器的,反正,你自己可以想办法的 。
点击Create New Project

Create New Project

选择Spring Initializr

选择Spring Initializr

给你的项目填写一点信息,Group和Artifact你随便填(填的格式不对的话,IntelliJ会提示你的),Type选Gradle Project,Packaging选War,然后点下一步。

项目信息

分别在Web下面选择Web,Template下选择Freemarker,SQL下面选择MyBatis,选择后的依赖会出现在最右边,如图所示,我就选择了这三个:

选择依赖

然后点击下一步,就会出现确认的画面,直接点击Finish按钮。

完成项目

在接下来这个画面里,需要gradle的路径,可以用这样的方式把它找出来。
新建一个文件,叫build.gradle,写入如下的内容

task getHomeDir << {
    println gradle.gradleHomeDir
}

然后运行

gradle getHomeDir

最后,使用这条命令就能获得路径:

gradle getHomeDir

如下图:

gradle homedir

得到了gradle路径,填入到intelliJ IDEA中。

填入IDEA中

其余的设置跟我一样就行,然后点击OK。
这时候,你会进到下一个画面,这是左上边显示的内容:

依赖尚未下载

这时候,你需要做的是耐心的等待,也许你还需要一个VPN才能完成下载依赖,这是你的第一个挑战,这是网络的原因,我很难帮到你。
不过你可以改改build.gradle文件来加速maven依赖的下载,改成这样:

使用aliyun加速下载

这部分的下载速度能得到很大的提高,还是得感谢马首富啊。

总之,所有的内容加载完成后,你会看到这样的界面:

主体框架搭建完毕

你看到的画面可能跟我的不一样,因为我多开了一些窗口,但项目的结构就是这样的。

数据库的创建

在你的mysql里,新加一个数据库,就叫 life_master吧,然后加入这样一张表:

create table life_master.users
(
    id int(10) auto_increment
        primary key,
    name varchar(45) not null,
    password varchar(20) not null
);

再加入两条数据:

INSERT INTO users VALUES (1,'Tom','no_pass');
INSERT INTO users VALUES (2,'Jerry','no_pass');

双击打开application.properties,加入下面内容:

spring.datasource.url=jdbc:mysql://192.168.88.3:3306/life_master
spring.datasource.username=root
spring.datasource.password=p@ssw0rd
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

以上内容根据你的实际情况修改,我的mysql放在虚拟机的192.168.88.3上面,用户名和密码都以你的实际情况填写。

开始编码

好了,你是否开始在疑惑,你经历了重重困难,现在弄了个什么东西出来?
别急,我们先加点代码进去。
在com.onefew.springboot上右键,选择New->Java Class

新建Java类

然后给他取个名字,比如叫HomeController,核心内容:

@Controller
@RequestMapping("/")
public class HomeController {

    @Autowired
    UserDao userDao;

    @GetMapping("/")
    public String index(Model model){
        model.addAttribute("name","world");
        return "home";
    }

    @GetMapping("/{id}")
    public String findById(Model model, @PathVariable(value = "id") int id){
        User u = userDao.findById(id);
        model.addAttribute("name",u.getName());
        return "home";
    }
}

新增User的Entity,名字就叫User,内容:

public class User {
    private int id;
    private String name;
    private String password;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

新建UserDao的接口,内容:

@Mapper
public interface UserDao {
    @Select("SELECT * FROM users where id = #{id}")
    @Results({
            @Result(property = "id", column = "id"),
            @Result(property = "name", column = "name"),
            @Result(property = "password", column = "password")
    })
    User findById(@Param("id") int id);
}

在templates目录下面,右键新建文件home.ftl,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
        PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh" lang="zh">
<head>
    <title>我的第一个Spring Boot 程序</title>
</head>
<body>
Hello ${name}
</body>
</html>

修改一下build.gradle,强dependencies下面,增加

compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.6'

测试运行

测试之前,先暂时注释掉build.gradle内的这个内容:

providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')

在右上角点小箭头,点edit configurations

配置运行和调试方式

新增Spring boot,如图所示


增加Spring boot调试

如果一切顺利的话,你点击右上部的绿色小箭头,就能运行起来了
窗口内会输出spring相关的信息

Spring Boot窗口输出的信息

这时候,打开浏览器,输出 http://127.0.0.1:8080
忙活了半天,现在是见证奇迹的时候到了:

http://127.0.0.1:8080看到 hello world,这是我们HomeController中index内的内容。
http://127.0.0.1:8080/1 和http://127.0.0.1:8080/2 是读取到我们mysql中保存的人物的名字。

浏览器运行结果

到这里,编码内容也基本告一段落。

tomcat部署

之前提到过tomcat,但这个是可选的,如果你安装了tomcat,那如何在tomcat里调试呢?
点击菜单里的Run->EditConfigurations,在弹出的菜单的左上角点击加号,然后选择tomcat server->local,做如下图中的配置:

增加Tomcat

注意deployment标签内的设置

Tomcat Deploy标签

完成以后,就可以从tomcat中调试了。

结语

这是入门篇,用了大量的截图,对初学者还是有一些挑战,但是熟悉以后,这一切都非常的顺理成章。
本篇的内容不但涵盖了建立项目的基础知识,还涉及到了freemarker和mybatis,虽然只是点到即止,但是从这里开始扩展,相信能写出有点成就感的程序来。

本文同步发简书、博客园和我的博客:
https://1few.com/spring-boot-freemarker-mybatis-for-beginner/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,817评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,329评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,354评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,498评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,600评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,829评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,979评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,722评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,189评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,519评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,654评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,940评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,762评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,993评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,382评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,543评论 2 349

推荐阅读更多精彩内容