使用springboot新建一个后端项目
1.需要准备的工具:
IDEA
Mysql数据库
Navicat12
PostMan
2.操作步骤
(1)首先根据需求文档设计数据库
具体如何设计暂不讨论
(2)根据设计好的数据库创建数据库
MySQL数据库的安装可参考教程 ==》传送门
MySQL安装完成后,要使用到Navicat进行可视化建表,当然也可使用命令行建表,具体如何创建暂不讨论。
(3)使用IDEA配置springboot
在新建项目时在左边选择Spring Initializr
这一步需要修改一下包名,以及Java version,不能高于8;其余的基本保持不变即可
这一步中需要按需选择,根据项目特性选择需要的功能,也可以选择springboot的版本
后面改好包名后继续next,然后finish即可
(4)添加依赖
项目建好后会产生一个pom.xml文件,在这里面添加需要的依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-provider-api</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
</dependencies>
修改了配置文件要记得再左下角Import Changes
接下来需要新建文件目录
切记启动类要和controller,dao,entity,service在同一个目录下,否则会出现扫描不到其他几个文件夹的情况
另外,在新建的application.yml中添加配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&autoReconnect=true&allowMultiQueries=true
username: 你的数据库用户名
password: 你的数据库密码
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.program.facesigninsystem.entity
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
(5)编写第一个接口
这里我们以用户登录示例
1.首先在entity中创建一个类,用来表示用户信息
package com.program.facesigninsystem.entity;
import org.springframework.stereotype.Service;
@Service
public class UserInfo {
public String uid;
public String account;
public String name;
public int type;
public String academy;
public String university;
public String major;
public void setUid(String uid) {
this.uid = uid;
}
public void setAccount(String account) {
this.account = account;
}
public void setName(String name) {
this.name = name;
}
public void setType(int type) {
this.type = type;
}
public void setAcademy(String academy) {
this.academy = academy;
}
public void setUniversity(String university) {
this.university = university;
}
public void setMajor(String major) {
this.major = major;
}
public String getUid() {
return uid;
}
public String getAccount() {
return account;
}
public String getName() {
return name;
}
public int getType() {
return type;
}
public String getAcademy() {
return academy;
}
public String getUniversity() {
return university;
}
public String getMajor() {
return major;
}
}
里面的属性是根据数据库的字段编写的,方法一般情况下只用setter和getter即可
2.在dao中创建一个接口,以对前端参数进行数据处理
package com.program.facesigninsystem.dao;
import com.program.facesigninsystem.entity.UserInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface IUserInfoDao {
UserInfo loginUser(@Param("account") String account);
}
3.在service下创建一个接口,里面定义登录方法
package com.program.facesigninsystem.service;
import com.program.facesigninsystem.entity.UserInfo;
public interface IUserInfoService {
UserInfo loginUser(String account);
}
4.在service-impl中创建一个类,去实现service接口中的方法
package com.program.facesigninsystem.service.impl;
import com.program.facesigninsystem.dao.IUserInfoDao;
import com.program.facesigninsystem.entity.UserInfo;
import com.program.facesigninsystem.service.IUserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserInfoService implements IUserInfoService {
@Autowired
private IUserInfoDao iUserInfoDao;
@Override
public UserInfo loginUser(String account){
UserInfo userInfo = iUserInfoDao.loginUser(account);
return userInfo;
}
}
5.在controller中创建一个类,用来连接前后端
package com.program.facesigninsystem.controller;
import com.program.facesigninsystem.entity.UserInfo;
import com.program.facesigninsystem.service.IUserInfoService;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
@CrossOrigin
@RestController
@RequestMapping(value = "/auth")
public class UserController {
@Autowired
IUserInfoService iUserInfoService;
@RequestMapping(value = "/login",method = RequestMethod.POST)
private Map loginUser(@RequestBody JSONObject account){
Map map = new HashMap();
UserInfo userInfo = iUserInfoService.loginUser(account.get("account").toString());
if(userInfo!=null) {
map.put("code", 200);
map.put("data",userInfo);
}
else{
map.put("code", 201);
map.put("message","没有该用户!");
}
return map;
}
}
6.在resources-mapper下创建一个UserMapper.xml文件,以编写数据库操作
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DID Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.program.facesigninsystem.dao.IUserInfoDao">
<resultMap id="BaseResultMap" type="com.program.facesigninsystem.entity.UserInfo">
</resultMap>
<select id="loginUser" resultMap="BaseResultMap" parameterType="com.program.facesigninsystem.entity.UserInfo">
SELECT * from user where account=#{account} limit 0,1
</select>
</mapper>
7.最后,连接数据库
接下来只需要开始运行项目就可以啦
如果在控制台看到如下信息
则说明启动成功,项目运行在localhost:8080
接下来使用postman对接口进行测试
数据获取成功!
至此,使用springboot创建新项目并编写第一个接口就成功了,后续将会加上更多相关内容
附,后端解决跨域问题的配置
CorsConfig.java
package com.program.facesigninsystem;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
@EnableWebMvc
public class CorsConfig implements WebMvcConfigurer {
public void addCorsMappings(CorsRegistry registry) {
//设置允许跨域的路径
registry.addMapping("/**")
//设置允许跨域请求的域名
.allowedOrigins("*")
//这里:是否允许证书 不再默认开启
.allowCredentials(true)
//设置允许的方法
.allowedMethods("*")
//跨域允许时间
.maxAge(3600);
}
}