本人是Android客户端出身,后端一概不知,但是现在做的很多事情,必须去学习下,后端是怎么样的,好在了解java语言,后台上后还不错
学习下大名鼎鼎的Springboot框架,为了给我的前端提供Api
涉及到有 springboot,mysql的安装使用,navicat查看,建表,eclipse大坑的使用,springboot 打包,postman 模拟请求,tomcat web应用服务器的使用部署以及启动
- Springboot 与 eclipse
本来想用idea,但是无奈,idea不免费,折腾很久破解也失败了
eclipse 需要安装springboot插件 Help - > eclipseMarketoplace 找到 SpringTools 4 安装 本人 Eclipse 是 Eclipse IDE for Enterprise Java and Web Developers (includes Incubating components) 一定要选这个版本的eclipse安装,而不要使用一般的java 版本的eclipse,不然你新建工程会没有Spring
2 新建工程
新建工程 file -> new -> Project ->Spring boot->Spring starter Project (你安装这个就会有这个选项)
上面就是新建工程注意两个箭头的地方,一个是版本建议用没有后缀不带 snapshoot的,再有就是选择 Srping web,然后finish结束建立工程
- 如何写接口如何与mysql数据库建立连接
看下pom.xml 的dependence ,springboot可以使用gradle构建,也可使用maven构建
maven构建 包谷管理配置是在pom。xml 就类似 Android里 工程里的 build. gradle 生命 implence 包一样
maven使用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.7.17</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.arcturis</groupId> <artifactId>demo-maven-3</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo-maven-3</name> <description>Demo project for Spring Boot</description> <packaging>war</packaging> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--简化bean代码--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!--json--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.80</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>DemoMaven3</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
他这个dependece 里面 groupid是包管理公司名 artifactId 就是包名,你还能声明version包版本,还有个重要的scope,有几个个重要参数 compile,test,provided
compile 指的后面把这个包一起打包到工程最终包里面,test是指的,这个包只供测试,provded是部署后部署容器提供所需的包,这个类最终不会打包进工程最终包,这个以下是详细解释
javax.servlet-api 这个单独拿出来说,里面mysql jdbc json一些的,不说了,这个包是为了servlet打包部署到tomcat采用的,tomcat自身容器有提供,所以scope是provided
spring-boot-starter-data-jpa 是动态操作数据层的包,允许动态操作数据库
<packaging>war</packaging> 这个参数代表你的工程最终打包成war包,war包后续可以部署至tomcat ,tomcat会解析读取
build标签下 <finalName>DemoMaven3</finalName> 这个就是最红war包的包名
- 一些spring工程文件解释
如何写一个api接口呢, 请使用@RestController
@RequestMapping("/users") 这个/users 就是你api请求的开始的路径
如何操作数据库呢
主要就是引入的这三个包,jdbc,jpa,还有mysql connector
你在数据库里建好表,然后建好对应的bean类比如
@Entity表明是一个实体类 @Table 是你数据库里的表名 @Id是主键 @Generatedvalue 主键生成策略 @Column 表字段名
ok建好实体
建一个Dao类操作数据库 Jpa可以自动生成数据库操作方法,你只需要集成JpaRepository就行
请求怎么写
@RequestMapping("/xxx") 表明这是一个Http请求
@ResponseBody 会将你的返回绑定至web Responebody中
ok 这个 userREspository 就是咱们的Dao层数据库 , 在开头定义生命 打上@Autowired注解即可
@Autowired private UserRespository userREspository;
就能愉快的使用Dao 操作Mysql了
Post请求怎么写
PostMapping 表明这是个Post请求
- 如何打包部署至Tomcat
写一下mysql 连接属性 在resouce 文件夹下 application.proprity 里
spring.datasource.url=jdbc:mysql://localhost:3306/users?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update spring.mvc.hiddenmethod.filter.enabled=true
Tips:原先characterEncoding值是UTF-8mb4 导致数据库连接报错,这里需要改成UTF-8 就行了,不然会字符集不匹配
我们打包的东西,最终在哪里的呢,如何打包呢,右键工程 run as- > Maven install
ok 就会在 target 文件夹下 有你的输出出来的 xxx.war 文件
然后在 tomcat conf 目录 server.conf 配置文件
Host标签下 增加
- 调试测试
开始请求把
别忘了开启你对应的云服务器端口
里面很多注解 的解释不是官方的解释,是我自己的理解会有偏差,本文主要是复现整个流程,具体注解可以去官方查看具体用法