首先,本文适合已学习过JavaSE但急于用Java编写一个后端项目的同学,还没学过的同学出门菜鸟教程或者b站黑马程序员,尚硅谷也可。(三者任选其一即可)
其次,既然你已经学过了java语言,那么你大概率也接触了python语言,不难发现,相较于java的后端学习成本而言,python其实上手更容易,只需要一百行不到就可以实现绝大部分数据简单的增删改查,可以说路上抓一个人教他两个小时估计也能学会的程度。
那为什么我们还要选择Java,或者说为什么我们还要选择Spring框架呢?
以下简单列举Spring的优点:
-
规范性强。
mapper、service、controller等的开发规范,使得我们的开发思路更加清晰,在处理负责的操作,以及未来的对于更高水平的开发中,Java开发反而更加便捷。
-
spring生态环境十分诱惑,给我们提供了格式各类的服务,帮助我们解决无数的烦恼
-
java与数据库其实联系更加紧密,对于数据库优化上也提供了很多思路
…
但同样的,Java如今已经不再无敌,NodeJs、Go、kontlin…的异军突起,Java的地位也已不再稳固,不过用spring框架作为通往未来的桥梁其实也不乏是一种手段。
废话不多说,我们开始进入正题。
准备工具IDEA(推荐2020.3版本及其以上)、MYSQL环境、JDK 8环境、maven、流畅的网络(steam++跑一跑)、善于思考的大脑、细心的双眼以及会百度谷歌的双手(上述工具缺一不可)
OK我们现在正式开始
1. 新建项目点击File->New->Project->Spring Initializr
稍等一会可能要
Group:指项目公司或者组织
Artifact:我们本次项目的名字(我们用library为例)
JavaVersion选择8
其他的会自己翻译就行
下一个界面选择
lombok、spring web、mysql Driver(在Dependencies上搜一搜就行)
Next&finsh
2.搭建项目框架在scr.main.java.com.example.library目录下新建四个文件夹:
-
controller
控制层,用于接收前端传来的数据,经过处理后传入前端
-
entity
用于存放实体类,与数据库中的属性值基本保持一致。
-
mapper
持久层,数据库持久化操作,方法直接针对数据库
在很多地方也写作DAO层,原理相同。本文使用mybatis实现与mysql关联
-
service
业务逻辑层,对数据进行处理
在scr.main.resource下新建com->example->library->mapper目录
测试运行项目:运行LibraryApplication
正常情况下可以运行
在这里插入图片描述
3.编写配置文件以及引入依赖我们的配置文件主要使用application.properties的格式,还有另一种形式为applicaiton.yml,两种形式实际上都可以,yml对于格式的规范性要求更高(比如说冒号后一定要加上space空格等)。
3.1 修改端口一台服务器的端口不能存在冲突,因此我们第一步可以从修改端口着手
在application.properties中添加:
server.port=1213
重启项目,端口已改变
2022-06-10 10:28:57.784 INFO 11068 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 1213 (http)3.2 依赖
依赖是Maven中重要的部分,可以粗浅的理解成在python中导入一些实用的包。
依赖主要添加在maven的pom.xml中的:标签中
...
通常依赖的结构为:
4. 第一个controller控制层
在controller目录新建BookController文件:
编写一个HelloSpringboot方法,返回前端一个String字符串
package com.example.library.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/Book")
public class BookController {
@GetMapping("/Hello")
public String HelloSpringboot(){
return "HelloSpirngboot";
}
}
-
@RestController是@Controller和@ResponseBody两个注解的结合体(所谓结合体即两个注解同时添加与只添加结合后的注解效果相同)
作用:实例化当前对象为一个控制器对象,并将类上所有方法的返回值转为json,响应给服务器
- @Controller :告诉容器这是一个controller
- @ResponseBody: 将java对象转为json格式的数据
-
@RequestMapping
- 包含了@GetMapping、@PostMapping等,具体功能可以再行理解
- 主要是创建一个查询访问的url路径
再次运行LibraryApplication:
在浏览器中打开:
http://localhost:1213/Book/Hello
输出字符: HelloSpirngboot 成功,如图
localhost:本地服务器
1213:端口号
Book/Hello:@RequestMapping获取而得
本次我们主要是使用MySQL数据库,一是使用广泛,二是我比较熟悉
5.1新建一个 database :library再在表中新建一个table: book
CREATE TABLE `book` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(128) DEFAULT NULL, `type` varchar(128) DEFAULT NULL, `author` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf
- id:唯一标识
- name:书名
- type:书种类
- author:书籍作者
ps:在实际开发中,往往会有复杂的逻辑,因此后期还需要不断的对table添加参数
5.2 添加mybatis依赖mybatis: 基于Java的持久层框架 , 它支持定制化 SQL、存储过程以及高级映射。
在pom.xml
...
添加
5.3 配置application.propertiesorg.mybatis.spring.boot mybatis-spring-boot-starter 2.1.0
在application.properties中添加:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/library?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=010213
mybatis.type-aliases-package=com.gao.security.bean
mybatis.mapper-locations=classpath:mybatis/mapper
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
8.3 修改application.properties文件
server.port=1213 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/library?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=010213 mybatis.type-aliases-package=com.gao.security.bean mybatis.mapper-locations=classpath:mybatis/mapper/*.xml spring.mvc.pathmatch.matching-strategy=ant_path_matcher
最后运行即可。
接下来你就可以用JSON格式对你的代码进行测试了。
测试图片如下:
新增:id自增,无需填写
查询:
更新:
删除:
本文作者对于springboot也只是初窥门径,该项目与文档同时编写,因此可能会有很多照顾不及之处,希望体谅,随后我会将代码上传到gitee/github上,有兴趣的同学可以下载观看。有发现问题与错误欢迎联系本人。



