springboot+mybatis-plus+spring cloud alibaba+druid

一、前言

  最近刚从数据分析,重新做回后台开发,心里一言难尽。但作为一个刚进入社会打拼的人来说,这都不算什么。正所谓做一行爱一行,脚踏实地的做好眼前的事情最为重要。
  首先,我需要熟悉目前企业级开发常用的框架,并将它们做一个很好的集成。一个集成框架环境的学习与搭建,势必需要结合当前的项目和已有的开源项目。做这个文档的目的,主要是为应对以后的开发,不想在环境的搭建上耗费太多的时间,等到不同的开发场景时有一个很好的参考。
  目前,比较流行的开发框架主要有Springboot、Mybatis、SpringCloud等。框架的目的,无一例外是为了简化开发的过程,减少开发人员的代码量,以及更为直观和便捷的配置项目。
本次搭建的环境为Springboot+Mybatis-plus+Druid+Spring Cloud Alibaba。Spring + MyBatis + Druid 被誉为黄金组合,再加上Spring Cloud Alibaba,相信会有不错的体验。以下为相关内容的具体描述。

二、Spring boot

  Spring boot由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  使用Spring Boot将能够以更灵活的方式开发Spring应用程序,并且能够通过最小(或可能没有)配置Spring来专注于解决应用程序的功能需求。它使用全新的开发模型,通过避免一些繁琐的开发步骤和样板代码和配置,使Java开发非常容易。
  Spring Boot可以轻松创建单独的,生产级的基于Spring的应用程序,我们只管“运行”。查看Spring平台和第三方库。大多数Spring Boot应用程序只需要很少的Spring配置。
  Spring Boot的主要特点:

  • 创建独立的Spring应用程序
  • 直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
  • 提供“初始”的POM文件内容,以简化Maven配置
  • 尽可能时自动配置Spring
  • 提供生产就绪的功能,如指标,健康检查和外部化配置
  • 绝对无代码生成,也不需要XML配置

三、Spring cloud

  Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心,以及Cloud Foundry等托管平台。

四、Mybatis-plus

MyBatis是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
 MyBatis-Plus特性:
 无侵入;损耗小;强大的CURD操作;支持Lambda形式调用;支持主键自动生成;支持ActiveRecord模式;支持自定义全局通用操作;内置代码生成器;内置分页插件;分页插件支持多种数据库;内置性能分析插件;内置全局拦截插件。

Spring Boot和Spring Cloud项目中集成和使用MyBatis-Plus,可以通过以下步骤实现: ### 1. 添加Maven依赖 首先,在`pom.xml`文件中添加必要的依赖项,包括Lombok、MySQL驱动、MyBatis-Plus以及Druid数据库连接池。以下是一个示例配置: ```xml <!-- Lombok Begin --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!-- Lombok End --> <!-- 数据库 Begin --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.16</version> </dependency> <!-- 数据库 End --> ``` ### 2. 配置数据源 在`application.yml`或`bootstrap.yml`中配置数据源信息,包括用户名、密码、URL、驱动类名等。同时,配置MyBatis-Plus的相关属性,如`mapper-locations`和`typeAliasesPackage`: ```yaml spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/mybaties_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 driver-class-name: com.mysql.cj.jdbc.Driver # Druid配置 druid: initial-size: 5 min-idle: 5 max-active: 20 max-wait: 60000 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 validation-query: SELECT 1 FROM DUAL test-while-idle: true test-while-idle: true test-on-borrow: false test-on-return: false pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 mybatis-plus: mapper-locations: classpath*:/mappers/**/*.xml typeAliasesPackage: com.example.demo.model ``` ### 3. 创建实体类 创建一个POJO类,用于映射数据库表。例如,假设有一个`User`表,可以创建一个对应的`User`类: ```java import lombok.Data; @Data public class User { private Long id; private String name; private Integer age; private String email; } ``` ### 4. 创建Mapper接口 创建一个Mapper接口,继承`BaseMapper`,以便使用MyBatis-Plus提供的CRUD操作方法: ```java import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserMapper extends BaseMapper<User> { } ``` ### 5. 创建Service层 创建一个Service接口和实现类,用于处理业务逻辑。可以使用`@Service`注解来标记实现类: ```java import com.baomidou.mybatisplus.extension.service.IService; public interface UserService extends IService<User> { } ``` ```java import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { } ``` ### 6. 创建Controller层 创建一个Controller类,用于处理HTTP请求。可以使用`@RestController`注解来标记该类: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping public List<User> getAllUsers() { return userService.list(); } @PostMapping public boolean createUser(@RequestBody User user) { return userService.save(user); } } ``` ### 7. 启动类 确保在Spring Boot应用的主类上添加`@MapperScan`注解,以扫描Mapper接口: ```java import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.example.demo.mapper") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` ### 8. 测试 启动应用后,可以通过发送HTTP请求来测试API接口,例如使用Postman或curl命令。 ### 相关问题 1. 如何在Spring Boot项目中配置Druid数据库连接池? 2. MyBatis-Plus提供了哪些常用的CRUD操作方法? 3. 如何在Spring Boot项目中使用Lombok简化实体类的编写? 4. 如何在Spring Cloud项目中实现服务间的数据库事务管理? 5. 如何在Spring Boot项目中使用MyBatis-Plus的分页功能?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值