那么大家晚上好,我是今天晚上的主讲老师,我是兔哥。
一直有粉丝私信我,能不能专门做一期项目实战的教程。这让我不禁想起了之前的文章发布系统系列教程,说实话,写项目类的教程真的很累。不过,看到粉丝们这么热情,我琢磨着的确可以写个项目教程,把我工作中用到的实战经验和技巧分享出来。
斟酌再三,我觉得还是弄个日记本系统吧,商城的话时间跨度太长了,用到的技术会很多,不利于小白学习。
技术栈不会太老,我会用现在最流行的SpringBoot后台框架,权限管理用最近比较流行的sa-token框架,dao层用mybatis-plus,都是比较前沿的技术了。
至于前台,应该会用到layUI。
所以,这个项目还是比较适合专门学习后端的朋友,用layUI不需要特别专业的前端知识,美滋滋。
好了,话不多说,这一节,先让我们把项目搭建起来吧。
因为是springboot项目,我们可以直接用idea来创建,非常的方便。
SpringBoot版本我们使用最新的2.6.4,创建好项目,得到以下视图
打开pom.xml,替换为下面的代码:
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.6.4
com.rabbit
diary
0.0.1-SNAPSHOT
diary
Demo project for Spring Boot
1.8
org.springframework.boot
spring-boot-starter-web
javax.servlet
javax.servlet-api
javax.servlet
jstl
mysql
mysql-connector-java
5.1.21
org.springframework.boot
spring-boot-starter-test
test
com.baomidou
mybatis-plus-boot-starter
3.3.1.tmp
cn.hutool
hutool-all
5.3.4
com.alibaba
druid
1.1.18
log4j
log4j
1.2.17
cn.dev33
sa-token-spring-boot-starter
1.28.0
org.springframework.boot
spring-boot-maven-plugin
1.4.2.RELEASE
${basedir}/src/main/webapp
META-INF/resources
**/**
src/main/resources
false
**/**
然后,修改配置文件为yml格式:
里面的内容为
server:
port: 80
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/diary?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: 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
看到这个字样,就代表框架搭建好了。
因为是直播写作,难免会有疏漏,如果发现本节有错误的地方,欢迎指正。