那么大家晚上好,我是今天晚上的主讲老师,我是兔哥。

一直有粉丝私信我,能不能专门做一期项目实战的教程。这让我不禁想起了之前的文章发布系统系列教程,说实话,写项目类的教程真的很累。不过,看到粉丝们这么热情,我琢磨着的确可以写个项目教程,把我工作中用到的实战经验和技巧分享出来。

斟酌再三,我觉得还是弄个日记本系统吧,商城的话时间跨度太长了,用到的技术会很多,不利于小白学习。

技术栈不会太老,我会用现在最流行的SpringBoot后台框架,权限管理用最近比较流行的sa-token框架,dao层用mybatis-plus,都是比较前沿的技术了。

至于前台,应该会用到layUI。

所以,这个项目还是比较适合专门学习后端的朋友,用layUI不需要特别专业的前端知识,美滋滋。

好了,话不多说,这一节,先让我们把项目搭建起来吧。

因为是springboot项目,我们可以直接用idea来创建,非常的方便。

SpringBoot版本我们使用最新的2.6.4,创建好项目,得到以下视图

打开pom.xml,替换为下面的代码:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.4</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.rabbit</groupId><artifactId>diary</artifactId><version>0.0.1-SNAPSHOT</version><name>diary</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><!-- web支持 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- servlet依赖. --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId></dependency><!-- mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.21</version></dependency><!-- springboot test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- mybatis plus 支持 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.1.tmp</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.4</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.18</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- Sa-Token 权限认证--><dependency><groupId>cn.dev33</groupId><artifactId>sa-token-spring-boot-starter</artifactId><version>1.28.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version></plugin></plugins><resources><resource><directory>${basedir}/src/main/webapp</directory><targetPath>META-INF/resources</targetPath><includes><include>**/**</include></includes></resource><resource><directory>src/main/resources</directory><filtering>false</filtering><includes><include>**/**</include></includes></resource></resources></build></project>

然后,修改配置文件为yml格式:

里面的内容为

server:port: 80spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/diary?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTCusername: rootpassword: roottype: com.alibaba.druid.pool.DruidDataSourceinitialSize: 5minIdle: 5maxActive: 20maxWait: 60000timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: true#   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙filters: stat,wall,log4jmaxPoolPreparedStatementPerConnectionSize: 20useGlobalDataSourceStat: trueconnectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

因为我设置了server.port,所以待会直接用localhost访问,不需要加端口号了。(80端口可以省略)

我们的数据库名称为diary,现在用navicat等工具创建

创建好了以后,在com.rabbit.diary下面再新建一个包--web,用来放各种控制器。

新建TestController

代码很简单,就写个hello方法,返回一句话即可。

package com.rabbit.diary.web;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class TestController {@RequestMapping("hello")public String hello(){return "hello Diary";}
}

 @RestController是一个复合注解。

在项目中写控制层时,我们通常会用@Controller注解来对于控制层类进行描述,

当类中的方法需要返回数据而不是页面时,我们会在方法上用@ResponseBody注解描述,

当类中所有方法都要返回数据时,我们就可以将@ResponseBody注解提取出来,直接描述在类上,

这样我们控制层类上就既有@Controller注解也有@ResponseBody注解,这是我们就可以将两个注解写为一个注解@RestController

@RestController=@Controller+@ResponseBody

找到启动类,运行

访问:http://localhost/hello

看到这个字样,就代表框架搭建好了。

因为是直播写作,难免会有疏漏,如果发现本节有错误的地方,欢迎指正。

下一节:SpringBoot日记本系统全程直播02:登录页面搞起来撒~~

SpringBoot日记本系统全程直播01:先把框架搞起来撒~~相关推荐

  1. SpringBoot日记本系统全程直播03:把登录后台接起来撒~~

    上一节:SpringBoot日记本系统全程直播02:登录页面搞起来撒~~ 大家好,我是今天晚上的主讲老师,我是兔哥. 上一讲,我们学习了登录和注册页面,以及Controller访问页面的方法,还有如何 ...

  2. SpringBoot日记本系统全程直播09:项目一期完结

    大家好,我是兔哥呀.我又来啦,这个SpringBoot日记本系统已经接近尾声了,目前已经完成的模块有日记本的增删改查,类型的增删改查,头像上传,还有个人中心. 最后一节呢,我们来做一个收尾工作哈. 目 ...

  3. JavaWeb项目实战 - SpringBoot日记本系统(第一期)

    哈喽,我是兔哥呀,终于啊,这个SpringBoot日记本系统完成啦.(虽然留了一堆BUG) 撒花,写教程是真的很累的一件事情. 第一期教程一共9个小节: 大家可以直接关注这个专栏: SpringBoo ...

  4. (附源码)springboot养老院系统 毕业设计 645488

    springboot养老院系统 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步 ...

  5. 「转型新范式」第四范式2021发布会全程直播倒计时

    6月23日,以"转型新范式"为主题的2021第四范式发布会暨企业智能化转型峰会如期而至.第四范式将携手金融.零售.制造.能源各行业的转型代表,分享智能化转型的成功实践,并通过发布更 ...

  6. IOS开发高级之点餐系统的实现-01

    IOS开发高级之点餐系统的实现-01 // // ViewController.m // 01-点餐系统 // // Created by 鲁军 on 2021/2/11. //#import &qu ...

  7. 4 转推流格式_网络互联互通直播系统 分会场直播一体机 各地连线直播推流

    网络互联互通直播系统 分会场直播一体机 各地连线直播推流 LiveMix Cloud无线互联系统完全满足广大客户通过互联网互动制作的需求,可以大大节省制作成本,提高系统延展性,可以远程连接手机或者摄像 ...

  8. python在线学习直播-Python在线学习最有效马哥开启全网独家全程直播课

    原标题:Python在线学习最有效马哥开启全网独家全程直播课 一直以来,IT行业的高薪吸引了大量的人员进入--2017年,国家统计局发布的薪酬水平统计中,IT首次超过金融,成为平均薪资最高的行业. I ...

  9. java 01 02_Java知识系统回顾整理01基础02面向对象01类和对象

    一.面向对象实例--设计英雄这个类 LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女 所有这些英雄,都有一些共同的状态 比如,他们都有名字,hp,护甲,移动速度等等 这样我们就可以设计一 ...

最新文章

  1. leetcode--电话号码和字母组合--python
  2. 标准库中的智能指针shared_ptr
  3. Android NDK开发——人脸检测与静默活体检测
  4. [C++11]shared_ptr共享智能指针的初始化与使用
  5. 【PAT甲级 - 1013】Battle Over Cities (25分)(并查集)
  6. java虚拟机参数详解
  7. MySQL分页查询方法及优化
  8. 查看php文件的效果,HTML5的交互式动画效果文件夹预览查看特效
  9. 对天气数据进行简单的数据分析
  10. 根据交换方式可以把交换机划分为3种:存储转发交换、直通式交换、碎片过滤式交换
  11. C++调用caffe分类模型-Opencv3.4.3
  12. 强悍的电子邮件地址(email address)正则表达式
  13. linux高级技巧:rsync同步(二)
  14. resnet的演化(res2net,resnext,se-resnet,sk-resnet,resnest)
  15. 组策略本地计算机策略导出,关于win10系统本地组策略备份和设置的详细步骤
  16. Pcblayout——立创EDA
  17. 手机抓包软件:charles安装及教程
  18. SpringBoot系列教程(六十七):SpringBoot自定义Fastjson为JSON消息转换器
  19. 上班时间如何偷偷刷抖音不被发现?教你一招搞定
  20. AD画PCB常规问题分析

热门文章

  1. 如何进行数据标注(1)
  2. c语言数组几个数求次大值
  3. IoT黑板报:高通骁龙处理器改名
  4. python nonetype转换float_python数据类型的强制转换
  5. element ui 导航不显示
  6. 关于微信公众号短链接数量和时效说明
  7. 【Redis】锁机制
  8. 百度云管家“本地文件写入失败”
  9. 手把手教你ARC——ARC入门和使用
  10. Python学习[3]:urllib库-爬虫的第二步