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模式;支持自定义全局通用操作;内置代码生成器;内置分页插件;分页插件支持多种数据库;内置性能分析插件;内置全局拦截插件。

五、Druid

Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。Druid已经在阿里巴巴部署了超过600个应用,是号称为监控而生的数据库连接池。
 Druid核心主要包括:

  • 基于Filter-Chain模式的插件体系。
  • DruidDataSource高效可管理的数据库连接池。
  • SQLParser。

 Druid的主要功能如下:

  • 是一个高效、功能强大、可扩展性强的数据库连接池。
  • 可以监控数据库访问性能。
  • 数据库密码加密。
  • 获得SQL执行日志 。
  • 扩展JDBC。

六、nacos

 Nacos 致力于帮助开发人员发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助开发人员快速实现动态服务发现、服务配置、服务元数据及流量管理。
 Nacos 帮助开发人员更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
 Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理。包括:Kubernetes Service,gRPC & Dubbo RPC Service和Spring Cloud RESTful Service。
 Nacos特性:

  • 服务发现和服务健康检测
  • 动态配置服务
  • 动态DNS服务
  • 服务及其元数据管理

七、Spring Cloud Alibaba

 自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少团队的支持;同时,由于Spring Cloud Alibaba中的几项主要功能都直指Netflix OSS中的重要组件,而后者最近频繁宣布各组件不在更新新特性,这使得Spring Cloud Alibaba关注度不断飙升,不少开发者或团队也开始小范围试水。
 Spring Cloud Alibaba项目由两部分组成:阿里巴巴开源组件和阿里云产品组件,旨在为Java开发人员在使用阿里巴巴产品的同时,通过利用 Spring 框架的设计模式和抽象能力,注入Spring Boot和Spring Cloud的优势。

八、搭建

1.创建Spring boot工程

(1)首先打开idea->Create New project->选择项目类型:这里选择spring initializr,然后next。
在这里插入图片描述
(2)创建项目,填写项目名称,注意:不要能驼峰写法,可以用中横线,填写完毕后继续next。
在这里插入图片描述
(3)选择依赖。
在这里插入图片描述
(4)点next,直到最后finish。
在这里插入图片描述

2.配置pom.xml

仓库地址:https://mvnrepository.com/
(1)mybatis-plus。

<!-- https://mvnrepository.com/artifact/com.baomidou/mybatisplus-spring-boot-starter -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatisplus-spring-boot-starter</artifactId>
    <version>1.0.5</version>
</dependency>

(2)mysql驱动。

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.11</version>
</dependency>

(3)Druid数据库连接池。

<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.18</version>
</dependency>

(4)Spring Cloud Alibaba:nacos作为配置中心,这里主要新加入了Nacos的配置客户端模块。

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

(5)Spring Cloud,spring cloud的版本以及spring cloud alibaba的版本,置于dependencyManagement内。用于动态配置和服务发现。

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>${latest.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>0.2.1.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

(6)lombok依赖,通过@lombok注解自动生成setter、getter方法。

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.8</version>
    <scope>provided</scope>
</dependency>

(7)mybatis分页插件

<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.10</version>
</dependency>

(8)swagger动态生成在线API文档。

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
3.配置数据源

springboot可以不用xml配置文件,但可以根据需求做相应的配置。在resource文件夹下面创建application.yml文件。

server:    #指定端口
  port: 80
spring:  
  application:   #应用程序
    name: com.bigdata
  profiles:
  	active:dev	#默认启动环境  dev/test
  datasource:  #数据源配置
    url: jdbc:mysql://192.168.137.150:3306/springboot
    username: root
    password: 123
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource  #要使用的连接池实现的完全限定名称。默认情况下,它是从类路径自动检测的。
    druid:   #连接池
          max-active: 20
          initial-size: 1
          min-idle: 3
          max-wait: 60000
          time-between-eviction-runs-millis: 60000
          min-evictable-idle-time-millis: 300000
          test-while-idle: true
          test-on-borrow: false
          test-on-return: false
          filters:stat,wall,log4j
   cloud:
   		 #spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
  	 	 config:
  		 uri: http://127.0.0.1:8888
 		 fail-fast: true
 		 username: user
   		 password: ${CONFIG_SERVER_PASSWORD:password}
 		 retry:
 		 initial-interval: 2000
  		 max-interval: 10000
   		 multiplier: 2
   		 max-attempts: 10
  mybatis-plus:
  		 mapper-locations: classpath*:mapper/**/*Mapper.xml
		 #实体扫描,多个package用逗号或者分号分隔
         typeAliasesPackage: com.yudao.platform.entity.*
         global-config:
         #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
        id-type: 0
        #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
        field-strategy: 2
        #驼峰下划线转换
        db-column-underline: false
        #刷新mapper 调试神器
        refresh-mapper: true
        #数据库大写下划线转换
        #capital-mode: true
        # Sequence序列接口实现类配置
        #key-generator: com.baomidou.mybatisplus.incrementer.OracleKeyGenerator
        #逻辑删除配置
        logic-delete-value: 1
        logic-not-delete-value: 0
        #自定义填充策略接口实现
        #meta-object-handler: com.baomidou.springboot.xxx
        #自定义SQL注入器
        # sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
        configuration:
        map-underscore-to-camel-case: true
        cache-enabled: false
        call-setters-on-nulls: true
debug: true

九、参考

https://blog.csdn.net/xiaolyuh123/article/details/75315282
https://juejin.im/entry/57fde63a5bbb50005b434217
application.properties详解:
https://www.cnblogs.com/louby/p/8565027.html

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值