使用intelliJ创建 spring boot + gradle + mybatis站点
Spring boot作为快速入门是不错的选择,现在似乎没有看到大家写过spring boot + gradle + mybatis在intellij下的入门文章,碰巧做.Net的同学问到,我想我也可以写这样一篇。
入门Java的人最大的问题是步骤繁琐,不知道如何开始,之前我也建议过我的一个小弟用BlueJ去学Java,可是这个东西学得他很迷茫,根本无法获得成就感,不知道能搞出什么有意思的东西,那我们就来点正式的吧,看看怎么从零开始建一个你自己的Java网站。
软件安装
作为入门版,当然我们要从软件安装开始咯。
要安装的软件有
- JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html
- IntelliJ IDEA:https://www.jetbrains.com/idea/
- Gradle:https://gradle.org/install/
- Tomcat: 可选,这部分网上到处都是文章,就不重复。
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
选择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路径,填入到intelliJ IDEA中。
其余的设置跟我一样就行,然后点击OK。
这时候,你会进到下一个画面,这是左上方显示的内容:
这时候,你需要做的是耐心的等待,也许你还需要一个VPN才能完成下载依赖,这是你的第一个挑战,这是网络的原因,我很难帮到你。
不过你可以改改build.gradle文件来加速maven依赖的下载,改成这样:
这部分的下载速度能得到很大的提高,还是得感谢马首富啊。
总之,所有的内容加载完成后,你会看到这样的界面:
你看到的画面可能跟我的不一样,因为我多开了一些窗口,但项目的结构就是这样的。
数据库的创建
在你的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
然后给他取个名字,比如叫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相关的信息
这时候,打开浏览器,输出 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,做如下图中的配置:
注意deployment标签内的设置
完成以后,就可以从tomcat中调试了。
结语
这是入门篇,用了大量的截图,对初学者还是有一些挑战,但是熟悉以后,这一切都非常的顺理成章。
本篇的内容不但涵盖了建立项目的基础知识,还涉及到了freemarker和mybatis,虽然只是点到即止,但是从这里开始扩展,相信能写出有点成就感的程序来。
本文中涉及到的源码地址:https://github.com/syler/Fun/tree/master/demo-spring-boot-1few
本文地址:http://www.cnblogs.com/asis/p/spring-boot-freemarker-mybatis-for-beginner.html
https://1few.com/spring-boot-freemarker-mybatis-for-beginner/
使用intelliJ创建 spring boot + gradle + mybatis站点的更多相关文章
- spring boot + gradle + mybatis
使用intelliJ创建 spring boot + gradle + mybatis站点 Spring boot作为快速入门是不错的选择,现在似乎没有看到大家写过spring boot + gr ...
- 【Spring Boot&&Spring Cloud系列】使用Intellij构建Spring Boot和Mybatis项目
一.创建项目 1.File->New->Project->spring initializer 2.勾选Web SQL Template Engines 3.项目生成之后,点击add ...
- 创建Spring Boot项目的几种方式总结
一.我们可以使用Spring Initializr来创建SpringBoot项目. Spring Initializr从本质上来说就是一个Web应用程序,它能为你生成Spring Boot项目结构.虽 ...
- Spring Boot2 系列教程(二)创建 Spring Boot 项目的三种方式
我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 43W+,如下图: 2017 年由于种种原因,就没有 ...
- Spring Boot 整合 Mybatis 实现 Druid 多数据源详解
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “清醒时做事,糊涂时跑步,大怒时睡觉,独处时思考” 本文提纲一.多数据源的应用场景二.运行 sp ...
- Spring boot整合Mybatis
时隔两个月的再来写博客的感觉怎么样呢,只能用“棒”来形容了.闲话少说,直接入正题,之前的博客中有说过,将spring与mybatis整个后开发会更爽,基于现在springboot已经成为整个业界开发主 ...
- spring boot 实现mybatis拦截器
spring boot 实现mybatis拦截器 项目是个报表系统,服务端是简单的Java web架构,直接在请求参数里面加了个query id参数,就是mybatis mapper的query id ...
- spring boot 整合 mybatis 以及原理
同上一篇文章一样,spring boot 整合 mybatis过程中没有看见SqlSessionFactory,sqlsession(sqlsessionTemplate),就连在spring框架整合 ...
- Spring Boot整合MyBatis(使用Spring Tool Suite工具)
1. 创建Spring Boot项目 通过Spring Tool Suite的Spring Starter Project对话框,其实是把项目生成的工作委托http://start.spring.io ...
随机推荐
- First release of mlrMBO - the toolbox for (Bayesian) Black-Box Optimization
We are happy to finally announce the first release of mlrMBO on cran after a quite long development ...
- 多线程编程-- part 5.3 LockSupport
一.LockSupport的介绍 LockSupport是用来创建锁和其他同步类的基本线程阻塞原语. LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程 ...
- 使用 after 伪类清除浮动
以前清除浮动的时候总是在想要清除浮动的元素后面添加 <div style="clear:both;"></div> 或者写在br标签里面来解决,但这样会增加 ...
- python标准库]Hashlib
hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法. 在学习hashlib模块之前,先来看 ...
- {网络编程}和{多线程}应用:基于UDP协议【实现多发送方发送数据到同一个接收者】--练习
要求: 使用多线程实现多发送方发送数据到同一个接收者 代码: 发送端:可以在多台电脑上启动发送端,同时向接收端发送数据 注意:匹配地址和端口号 package com.qf.demo; import ...
- 使用KeePass愉快的来管理你的密码
不要老是使用同一个密码 这话说了好多次了,以前的CSDN被拖库,或者是好多xx照门,都告诉我们不宜使用用一个密码. 现在我各个网站的密码都不一样,而且复杂的我都记不住,例如,我的前Google账户密码 ...
- C# ftp 图片上传多快好省
前言 此篇讲到的是图片上传功能,每个网站必定会有这样类似的功能,上传文件.上传图片等等.那么接下来,看看我们EF+uploadfile+ftp如何玩转上传图片吧 效果预览 具体实现 一个简单数据库 只 ...
- CVE-2017-8464远程命令执行漏洞(震网漏洞)复现
前言 2017年6月13日,微软官方发布编号为CVE-2017-8464的漏洞公告,官方介绍Windows系统在解析快捷方式时存在远程执行任意代码的高危漏洞,黑客可以通过U盘.网络共享等途径触发漏洞, ...
- Unity3D常用 API 之实例化与销毁
1.实例化游戏物体 1.1.游戏中的案例介绍 在很多 MMORPG 类的游戏中都有类似于“金钱副本”的副本关卡.在这类副 本中通常都是限定一个时间,在这个时间内玩家可以尽情的破坏,然后收集金钱. 分析 ...
- Python给小说做词云
闲暇时间喜欢看小说,就想着给小说做词云,展示小说的主要内容.开发语言是Python,主要用到的库有wordcloud.jieba.scipy.代码很简单,首先用jieba.cut()函数做分词,生成以 ...