免费试用

跨平台小程序在线开发工具,用做网页的技术做小程序,兼容微信、支付宝、抖音、快手、百度等主流小程序平台!

springboot开发小程序后台

Spring Boot 是一种基于 Spring 框架的轻量级应用程序框架,它可以简化 Spring 应用程序的开发过程。小程序后台是为小程序提供数据支持和业务逻辑处理的后端服务,本文将介绍如何使用 Spring Boot 开发小程序后台。

一、创建Spring Boot项目

1.1. 创建项目

使用 IDEA 创建一个 Spring Boot 项目,选择「Spring Initializr」快捷方式。然后按照向导的提示输入项目的基本信息,选择相关的依赖项,创建项目。

1.2. 添加依赖

在 pom.xml 文件中添加以下依赖项:

```

org.springframework.boot

spring-boot-starter-web

com.alibaba

fastjson

1.2.70

com.alibaba

druid-spring-boot-starter

1.2.6

mysql

mysql-connector-java

8.0.23

```

上面的依赖项包括了 Spring Boot、fastjson、Druid 和 MySQL Connector/J。

fastjson 是阿里巴巴的一个高性能 JSON 库,能够将 Java 对象转换为 JSON 格式。

在本项目中,我们选择使用 Druid 作为数据源连接池。它是阿里巴巴开源的一个 JDBC 连接池,拥有监控和防御 SQL 注入攻击等特性。

二、编写主程序启动类

@SpringBootApplication 注解表示该类是 Spring Boot 应用程序的启动入口。

```

@SpringBootApplication

public class App {

public static void main(String[] args) {

SpringApplication.run(App.class, args);

}

}

```

三、实现数据库连接

在 application.properties 文件中,添加数据库连接信息:

```

spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC

spring.datasource.username=root

spring.datasource.password=123456

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.initial-size=1

spring.datasource.max-active=20

spring.datasource.min-idle=1

spring.datasource.max-wait=60000

spring.datasource.test-on-borrow=true

spring.datasource.test-on-return=false

spring.datasource.test-while-idle=true

spring.datasource.validation-query=SELECT 1

```

其中 url、username、password 需要做对应修改。请注意修改驱动程序类名,配置初始连接数、最大连接数等。

四、实现操作数据库的 DAO 层

在 src/main/java 目录下创建包名为 com.example.dao 的包,新建 UserDAO 接口:

```

@Mapper

@Repository

public interface UserDAO {

/**

* 根据用户ID查询用户

* @param id 用户ID

* @return 查询结果

*/

User queryById(Long id);

/**

* 查询所有用户

* @return 查询结果

*/

List queryAll();

/**

* 查询用户总数

* @return 查询结果

*/

int countAll();

/**

* 添加用户

* @param user 用户对象

* @return 返回添加结果

*/

int addUser(User user);

/**

* 修改用户信息

* @param user 用户对象

* @return 返回修改结果

*/

int modifyUser(User user);

/**

* 删除用户

* @param id 用户ID

* @return 返回删除结果

*/

int deleteUser(Long id);

}

```

注解 @Mapper 表示这是一个 Mybatis 的 Mapper 接口。@Repository 表示是 Spring 的 bean,会先在项目启动后初始化一边 bean,使用时直接注入即可。

在 src/main/java 目录下创建包名为 com.example.entity 的包,新建 User 实体类:

```

public class User {

private Long id;

private String userName;

private String password;

private String avatarUrl;

private String gender;

private String phone;

private Date createTime;

private Date updateTime;

// getter 和 setter 略

}

```

注解 @Data 自动为 User 类添加 getter 和 setter 方法。

在 src/main/resources 目录下创建 mapper 目录,在 mapper 目录下新建 UserMapper.xml 文件。

```

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

insert into users (

user_name,

password,

avatar_url,

gender,

phone,

create_time,

update_time

) values (

#{userName,jdbcType=VARCHAR},

#{password,jdbcType=VARCHAR},

#{avatarUrl,jdbcType=VARCHAR},

#{gender,jdbcType=VARCHAR},

#{phone,jdbcType=VARCHAR},

#{createTime,jdbcType=TIMESTAMP},

#{updateTime,jdbcType=TIMESTAMP}

)

update users

set user_name = #{userName, jdbcType=VARCHAR},

password = #{password, jdbcType=VARCHAR},

avatar_url = #{avatarUrl, jdbcType=VARCHAR},

gender = #{gender, jdbcType=VARCHAR},

phone = #{phone, jdbcType=VARCHAR},

create_time = #{createTime, jdbcType=TIMESTAMP},

update_time = #{updateTime, jdbcType=TIMESTAMP}

where id = #{id, jdbcType=BIGINT}

delete from users where id = #{id, jdbcType=BIGINT}

```

通过 XML 文件,我们将 DAO 层的方法和 SQL 语句对应起来。

五、实现业务逻辑层

在 src/main/java 目录下创建包名为 com.example.service 的包。新建 UserService 接口:

```

public interface UserService {

/**

* 根据用户ID查询用户

* @param id 用户ID

* @return 查询结果

*/

User queryById(Long id);

/**

* 查询所有用户

* @return 查询结果

*/

List queryAll();

/**

* 查询用户总数

* @return 查询结果

*/

int countAll();

/**

* 添加用户

* @param user 用户对象

* @return 返回添加结果

*/

int addUser(User user);

/**

* 修改用户信息

* @param user 用户对象

* @return 返回修改结果

*/

int modifyUser(User user);

/**

* 删除用户

* @param id 用户ID

* @return 返回删除结果

*/

int deleteUser(Long id);

}

```

创建 UserServiceImpl 类实现 UserService 接口:

```

@Service

public class UserServiceImpl implements UserService {

@Autowired

private UserDAO userDAO;

@Override

public User queryById(Long id) {

return userDAO.queryById(id);

}

@Override

public List queryAll() {

return userDAO.queryAll();

}

@Override

public int countAll() {

return userDAO.countAll();

}

@Override

public int addUser(User user) {

Date now = new Date();

user.setCreateTime(now);

user.setUpdateTime(now);

return userDAO.addUser(user);

}

@Override

public int modifyUser(User user) {

user.setUpdateTime(new Date());

return userDAO.modifyUser(user);

}

@Override

public int deleteUser(Long id) {

return userDAO.deleteUser(id);

}

}

```

注解 @Service 表示该类是 Spring 的 bean。

六、实现API接口

在 src/main/java 目录下创建包名为 com.example.controller 的包,并新建 UserController 类。

```

@RestController

@RequestMapping("/users")

public class UserController {

@Autowired

private UserService userService;

@GetMapping("/queryById")

public User queryById(@RequestParam("id") Long id) {

return userService.queryById(id);

}

@PostMapping("/addUser")

public int addUser(@RequestBody User user) {

return userService.addUser(user);

}

@PostMapping("/modifyUser")

public int modifyUser(@RequestBody User user) {

return userService.modifyUser(user);

}

@DeleteMapping("/deleteUser")

public int deleteUser(@RequestParam("id") Long id) {

return userService.deleteUser(id);

}

}

```

注解 @RestController,声明该类是一个 RESTful 风格的控制器类。@RequestMapping 表示路由映射,我们的接口路径会加上 /users 前缀。

七、启动应用程序

在 App 类中添加注解 @EnableSwagger2 和 @MapperScan:

```

@SpringBootApplication

@EnableSwagger2

@MapperScan("com.example.dao")

public class App {

public static void main(String[] args) {

SpringApplication.run(App.class, args);

}

}

```

注解 @EnableSwagger2 开启 Swagger API 文档生成器。注解 @MapperScan 扫描 Mybatis 的 Mapper 接口。

在 IntelliJ IDEA 中运行应用程序,应该就能顺利在浏览器中访问 http://localhost:8080/users/queryById?id=1000,来获取 ID 为 1000 的用户信息。

八、使用 Swagger2 生成API文档

在 pom.xml 中添加如下依赖:

```

io.springfox

springfox-swagger2

2.7.0

io.springfox

springfox-swagger-ui

2.7.0

```

在 UserController 类中,添加注解即可:

```

@RestController

@RequestMapping("/users")

@Api(tags = "用户管理接口")

public class UserController {

@Autowired

private UserService userService;

@GetMapping("/queryById")

@ApiOperation(value = "根据用户ID查询用户", notes = "根据用户ID查询用户信息")

public User queryById(@RequestParam("id") Long id) {

return userService.queryById(id);

}

@PostMapping("/addUser")

@ApiOperation(value = "添加用户", notes = "添加用户信息")

public int addUser(@RequestBody User user) {

return userService.addUser(user);

}

@PostMapping("/modifyUser")

@ApiOperation(value = "修改用户信息", notes = "修改用户信息")

public int modifyUser(@RequestBody User user) {

return userService.modifyUser(user);

}

@DeleteMapping("/deleteUser")

@ApiOperation(value = "删除用户", notes = "根据用户ID删除用户信息")

public int deleteUser(@RequestParam("id") Long id) {

return userService.deleteUser(id);

}

}

```

在 main 方法上添加如下 Swagger2 的配置类:

```

import springfox.documentation.builders.ApiInfoBuilder;

import springfox.documentation.builders.PathSelectors;

import springfox.documentation.builders.RequestHandlerSelectors;

import springfox.documentation.service.ApiInfo;

import springfox.documentation.spi.DocumentationType;

import springfox.documentation.spring.web.plugins.Docket;

import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration

@EnableSwagger2

public class Swagger2 {

@Bean

public Docket createRestApi() {

return new Docket(DocumentationType.SWAGGER_2)

.apiInfo(apiInfo())

.select()

.apis(RequestHandlerSelectors.basePackage("com.example.controller"))

.paths(PathSelectors.any())

.build();

}

private ApiInfo apiInfo() {

return new ApiInfoBuilder()

.title("Spring Boot 实现小程序后台")

.description("小程序后台 API 文档")

.version("1.0.0")

.build();

}

}

```

启动项目访问 http://localhost:8080/swagger-ui.html 即可查看API文档。

至此,我们使用


相关知识:
安徽社区团购小程序开发平台怎么样了
安徽社区团购小程序开发平台是一种新型的电商应用程序,其注重的是小区居民之间的互动合作,采用线上订购、线下配送的方式,可以满足居民生活中的日常用品采购需求。该平台在开发之初,注重强化社区服务理念,尤其是用科技手段实现智慧社区运营。该平台的基本原理是将各个社区
2023-08-09
安徽知识付费类小程序开发制作平台有哪些
安徽知识付费类小程序是一种通过微信开发的小程序,它可以通过付费的方式提供一定的知识服务,比如教程、培训等等。下面介绍几种安徽知识付费类小程序开发制作平台。1、蓝码科技蓝码科技是一个专业的微信小程序开发公司,其主要业务是提供微信小程序的设计开发、运营推广等服
2023-08-09
安徽托育园小程序开发
托育园是一种为家庭提供儿童托育服务的机构。在安徽省,越来越多的家庭喜欢选择托育园来照顾他们的孩子,这也促进了托育园小程序的开发。下面,我会详细介绍安徽托育园小程序的开发原理及其具体实现。一、托育园小程序的开发原理托育园小程序是一种基于微信生态的小程序。它通
2023-08-09
安宁微信小程序如何开发客户端
微信小程序是一种基于微信平台的轻应用,用户可以在微信中直接访问使用,无需下载安装。小程序作为一种全新的应用,成为了开发者和用户的热门关注。安宁微信小程序是一款服务于医院的专业小程序,通过该小程序可以实现预约挂号、检查查询、检验查询等功能,让用户能够更加便捷
2023-08-09
安全 创新 微信小程序开发方案
微信小程序是一种基于微信生态的轻量级应用,用户无需下载即可使用,在微信中即可完成特定的功能或者操作,非常方便。随着微信用户数量的快速增长和移动互联网的发展,微信小程序已经成为企业和个人进行移动端开发的重要方式之一。然而,微信小程序开发方案中存在一些安全风险
2023-08-09
uu跑腿软件小程序开发
UU跑腿是一种基于移动互联网平台的物流服务,它主要依托于用户和跑腿员双方的智能手机,通过互联网的平台,实现用户和跑腿员之间的信息交流,实现物品快速送达的目的。而小程序是一种可以在微信中直接使用、无需下载安装的简易应用,它在功能性和用户体验方面做到了极致的优
2023-08-09
app和小程序开发哪个难
难度如何衡量是一个非常主观的问题。因此,无法明确回答哪一个是更难的。然而,我们可以基于一些标准来比较这两种应用程序的开发,并找出各自的优缺点。1. 概念的理解在开始开发之前,首先要理解app和小程序的概念。应用程序(App)是一种在移动设备上运行的软件程序
2023-08-09
支付宝小程序开发工具是什么
支付宝小程序开发工具是支付宝提供的一款开发工具,可以帮助开发者快速开发和调试支付宝小程序。本文将详细介绍支付宝小程序开发工具的原理及使用方法。1. 支付宝小程序的原理支付宝小程序是一种基于支付宝客户端的轻应用,其基本原理是通过支付宝小程序开发工具,将小程序
2023-05-26
小程序开发工具目录无法导入
小程序开发工具是开发小程序必不可少的工具,其中的目录可以帮助开发者更好地组织和管理小程序中的文件。然而有时候,开发者会遇到无法导入目录的情况,这对于开发者来说是非常不方便的。因此,本文将介绍小程序开发工具目录无法导入的原因以及如何解决这个问题。一、原因1.
2023-05-26
微信小程序开发工具连网失败
微信小程序开发工具是一款非常重要的工具,它是用于开发、调试和测试微信小程序的集成开发环境。在日常的开发过程中,可能会遇到开发工具连网失败的情况。这种情况一般是由于网络环境不佳或开发工具设置问题造成的。接下来,我来详细介绍一下微信小程序开发工具连网失败的原因
2023-05-26
微信小程序开发工具怎么下载安装软件
微信小程序是一种全新的应用程序形式,在微信平台上运行,可用于实现简单的应用程序和小游戏,具备轻量、便携、开发周期短等特征。随着小程序概念逐渐成熟,开发微信小程序的需求也不断增加。那么,如何开始开发微信小程序呢?本文将详细介绍微信小程序开发工具的下载安装及使
2023-05-26
怎么把微信小程序打包城appp
微信小程序是一种轻量级的应用程序,相比于传统的App,它更加轻便、快速、易于维护。但是,有些小程序在功能上已经非常强大,甚至可以替代一些传统的App。因此,有些用户希望将小程序打包成App,以便更方便地使用和管理。那么,如何将微信小程序打包成App呢?下面
2023-04-06