# 前言
之前零零散散的学习了一些springboot的知识,以及搭建一些springboot的项目,甚至还有一些项目应用到实际项目中了,但是突然有一天想要建一个自己的项目网站。发现自己不知道从何开始。发现自己虽然用了很久,但是让自己 从头开始搭建一个却处处碰壁。所以静下心来好好的整理一下springboot的知识点。以及给自己搭建一个springboot 项目的脚手架。以后方便自己套用。

# 创建spring boot项目
springboot的之所以火热便是因为开箱即用的特效,低配置甚至无配置使用,方便我们快速上手,我们这里先就什么都不配置吧。
在idea 上直接可以创建springboot 类型项目。
![file](https://img2018.cnblogs.com/blog/1808952/201909/1808952-20190918191308427-829910038.jpg)
项目名就随便起吧,整个系列就都以这个项目为例啦,整个项目会分享到github 上,大家需要的可以跟着下载学习。
建好的项目目录如下:
![file](https://img2018.cnblogs.com/blog/1808952/201909/1808952-20190918191308675-458647095.jpg)
其中选中的文件夹是我自己加的,因为我想整个项目的目录大概就是这个样子了。文件名起了zlflovemm 没有什么项目含义,起名太难了,就起了一个自己纪念的名字,大家勿怪。
我们pom.xml 内容,因为后期不管是加其他组件,还是引用 jar 包什么的都是改这里。所以把最初版本拿出来。

```

4.0.0

org.springframework.boot
spring-boot-starter-parent
2.1.8.RELEASE

com.quellan
zlflovemm
1.0.0
zlflovemm
zlflovemm project for Spring Boot

1.8

org.springframework.boot
spring-boot-starter-web

org.springframework.boot
spring-boot-starter-test
test

org.springframework.boot
spring-boot-maven-plugin

```

可以看到pom.xml 文件里面东西很少了, 中是 springboot 版本信息。 是 jdk 版本信息。中的依赖只有一个starter-web 和starter-test 前面是这个项目支持web 项目,后面一个是支持单元测试,这两个都是创建项目的时候自带的。 中就是项目构建打包的方式啦。这里暂时先用这种方式。

# hello world
我们还是来写一个hello world 吧,虽然有点幼稚,但毕竟遵循一下古训。
我们在controller 包下创建一个demo 包。在demo 包下创建一个 demo.java .

```
@RestController
public class Demo {

@RequestMapping("/")
public String demo(){
return "hello world";
}
}
```

![file](https://img2018.cnblogs.com/blog/1808952/201909/1808952-20190918191308896-1199080245.jpg)

在controller 层用到的注解最多的就是@RestController 和@RequestMapping 了。@RestController和@Controller 注解是使用在controller层的。和@RequestMapping注解是用于设置映射路径的。这里注解就不深入讲解了,后面会进行深入的讲解。
我们代码写完之后,我们来启动项目看一下,这里我们就直接运行 ZlflovemmApplication中的 main 方法就好了。然后在浏览器输入

```
localhost:8080
```
![file](https://img2018.cnblogs.com/blog/1808952/201909/1808952-20190918191309115-1727708620.jpg)
到此原型已经搭建好了,可以发现我们什么都没有配置,都是使用的默认的配置,直接写的测试代码,然后就可以直接使用。

但是这样对于一个项目来说远远不够的,我们来为项目增加一些配置。

# 配置mysql
其实一开始就配置mysql 太唐突了,但是一些小配置,不想再起一节,所以就一起了。

## 准备工作
首先当然是创建数据库和表啦,这里idea 也可以连接mysql 数据库,我们就一切都在idea上操作吧。
![file](https://img2018.cnblogs.com/blog/1808952/201909/1808952-20190918191309369-417778658.jpg)
配置我们数据库连接,我这里已经在我的虚拟机上搭建好了mysql,说到搭建MySQL 也遇到一些坑。没有整理成单独的博客,大家可以参考[Ubuntu18.04下安装MySQL](https://www.cnblogs.com/opsprobe/p/9126864.html)
![file](https://img2018.cnblogs.com/blog/1808952/201909/1808952-20190918191309587-244472090.jpg)
连接好之后,我们执行一下sql ,创建数据库,创建表,插入数据。

```
CREATE DATABASE /*!32312 IF NOT EXISTS*/`zlflovemm` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `zlflovemm`;
CREATE TABLE `sys_user` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(255) NOT NULL,
`password` VARCHAR(255) NOT NULL,
`email` VARCHAR(255) NOT NULL,
`role_code` VARCHAR(255) NOT NULL,
`role_name` VARCHAR(255) NOT NULL,
`gmt_create` DATETIME NOT NULL,
`gmt_update` DATETIME NOT NULL,
`nickname` VARCHAR(255) DEFAULT NULL,
`user_create` INT(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;

/*Data for the table `sys_user` */

INSERT INTO `sys_user`(`id`,`username`,`password`,`email`,`role_code`,`role_name`,`gmt_create`,`gmt_update`,`nickname`,`user_create`) VALUES (1,'admin','123456','345849402@qq.com','admin','管理员','2019-03-21 14:30:57','2019-03-21 14:30:57','admin',1);

```
我们测试一下我们数据库建成功没有。

```
select * from sys_user
```
![file](https://img2018.cnblogs.com/blog/1808952/201909/1808952-20190918191309795-49551777.jpg)
这样说明我们数据库是没有问题的。

## pom.xml 中添加依赖
我们现在pom.xml 中添加依赖
```

mysql
mysql-connector-java
runtime

org.springframework.boot
spring-boot-starter-jdbc

org.projectlombok
lombok

```
前面两个是mysql 依赖,lombok 是方便我们getter方法和setter方法以及引入日志的。后面代码中会体现。

# 配置application.properties
在application.properties中配置如下

```
server.port=9090
server.servlet.context-path=/zlflovemm
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
spring.messages.encoding=UTF-8

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.252.53:3306/zlfdb?characterEncoding=utf-8&useSSL=false&zeroDateTimeBehavior=CONVERT_TO_NULL
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5
```

前面配置访问端口为9090,访问路径为/zllovemm/,设置编码格式为utf-8.下面就是配置mysql 。

# 编写测试
为了方便,我们就直接在controller编写测试。
在controller包中建一个包 userinfo ,在userinfo中创建一个UserController并编写

```
@RestController
public class UserController {

@Autowired
private JdbcTemplate jdbcTemplate;

@RequestMapping("/getUser")
public List> getUser(){
String sql="select * from sys_user";
return jdbcTemplate.queryForList(sql);
}
}
```
![file](https://img2018.cnblogs.com/blog/1808952/201909/1808952-20190918191310011-1105210054.jpg)
然后我们来启动项目,在浏览器中输入

```
http://localhost:9090/zlflovemm/getUser
```
![file](https://img2018.cnblogs.com/blog/1808952/201909/1808952-20190918191310230-879439659.jpg)
可以看到数据库是配置成功的。当然正式的项目肯定不能这样写,正式的项目会采用mybatis 或者JPA ,这个后期项目肯定也是会用的,所以这里就暂时这样写。

# 番外
项目的雏形就先这样吧,后续加入其它组件,会继续在这个项目上跟新。
github地址:https://github.com/QuellanAn/zlflovemm

这篇就到这里吧,也算是开篇了,后续加油♡

一、springboot起航的更多相关文章

  1. springBoot 整合 mybatis 项目实战

    二.springBoot 整合 mybatis 项目实战   前言 上一篇文章开始了我们的springboot序篇,我们配置了mysql数据库,但是我们sql语句直接写在controller中并且使用 ...

  2. 解决 Springboot Unable to build Hibernate SessionFactory @Column命名不起作用

    问题: Springboot启动报错: Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ...

  3. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

  4. Springboot搭建web项目

    最近因为项目需要接触了springboot,然后被其快速零配置的特点惊呆了.关于springboot相关的介绍我就不赘述了,大家自行百度google. 一.pom配置 首先,建立一个maven项目,修 ...

  5. Java——搭建自己的RESTful API服务器(SpringBoot、Groovy)

    这又是一篇JavaWeb相关的博客,内容涉及: SpringBoot:微框架,提供快速构建服务的功能 SpringMVC:Struts的替代者 MyBatis:数据库操作库 Groovy:能与Java ...

  6. 解决 SpringBoot 没有主清单属性

    问题:SpringBoot打包成jar后运行提示没有主清单属性 解决:补全maven中的bulid信息 <plugin> <groupId>org.springframewor ...

  7. SpringBoot中yaml配置对象

    转载请在页首注明作者与出处 一:前言 YAML可以代替传统的xx.properties文件,但是它支持声明map,数组,list,字符串,boolean值,数值,NULL,日期,基本满足开发过程中的所 ...

  8. springboot 学习资源推荐

    springboot 是什么?对于构建生产就绪的Spring应用程序有一个看法. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.(这是springboot的官方介绍) 我们为什么要学 ...

  9. Springboot框架

    本片文章主要分享一下,Springboot框架为什么那么受欢迎以及如何搭建一个Springboot框架. 我们先了解一下Springboot是个什么东西,它是干什么用的.我是刚开始接触,查了很多资料, ...

随机推荐

  1. pdf.js跨域加载文件

    pdf.js一个基于Html的工具类,熟悉pdf.js的朋友们很清楚,pdf.js帮助我们做了很多事.尤其金融类网站会产生很多的报表.需要在线预览.pdf.js绝对是我们的首选 本地预览 在pdf.j ...

  2. Go调度器介绍和容易忽视的问题

    本文记录了本人对Golang调度器的理解和跟踪调度器的方法,特别是一个容易忽略的goroutine执行顺序问题,看了很多篇Golang调度器的文章都没提到这个点,分享出来一起学习,欢迎交流指正. 什么 ...

  3. 解决Springboot整合ActiveMQ发送和接收topic消息的问题

    环境搭建 1.创建maven项目(jar) 2.pom.xml添加依赖 <parent> <groupId>org.springframework.boot</group ...

  4. (三十九)c#Winform自定义控件-面包屑导航

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...

  5. .Net使用HttpClient以multipart/form-data形式post上传文件及其相关参数

    前言: 本次要讲的是使用.Net HttpClient拼接multipark/form-data形式post上传文件和相关参数,并接收到上传文件成功后返回过来的结果(图片地址,和是否成功).可能有很多 ...

  6. 安装VMware Workstation时遇到Microsoft Runtime DLL安装程序未能完成安装

    解决:这时不要点确定.开始菜单运行输入‘%temp%’,在弹出的窗体中找到一个文件名中含‘{XXXXXXXXXXXXX}~setup'的文件夹,打开里面会看到有 xxx.msi的,运行就开始vmwar ...

  7. MySql定时器,亲测可用

    1. 查看数据库的event功能是否开启,在MySql中event默认是关闭的,需要查看并且要确保event处于开启状态 sql:show VARIABLES LIKE '%sche%'; 如果eve ...

  8. Leetcode之回溯法专题-37. 解数独(Sudoku Solver)

    Leetcode之回溯法专题-37. 解数独(Sudoku Solver) 编写一个程序,通过已填充的空格来解决数独问题. 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次.数字 1 ...

  9. MSIL实用指南-数据类型转换

    一.类的强制转换1.转换成某个类用Castclass指令.实例代码:ilGenerator.Emit( OpCodes.Castclass , typeof(ClassA) ); 2.转换成某个值类型 ...

  10. Mybatis基于注解实现多表查询

    对应的四种数据库表关系中存在四种关系:一对多,多对应,一对一,多对多.在前文中已经实现了xml配置方式实现表关系的查询,本文记录一下Mybatis怎么通过注解实现多表的查询,算是一个知识的补充. 同样 ...