最近刚从数据分析,重新做回后台开发,心里一言难尽。但作为一个刚进入社会打拼的人来说,这都不算什么。正所谓做一行爱一行,脚踏实地的做好眼前的事情最为重要。
首先,我需要熟悉目前企业级开发常用的框架,并将它们做一个很好的集成。一个集成框架环境的学习与搭建,势必需要结合当前的项目和已有的开源项目。做这个文档的目的,主要是为应对以后的开发,不想在环境的搭建上耗费太多的时间,等到不同的开发场景时有一个很好的参考。
目前,比较流行的开发框架主要有Springboot、Mybatis、SpringCloud等。框架的目的,无一例外是为了简化开发的过程,减少开发人员的代码量,以及更为直观和便捷的配置项目。
本次搭建的环境为Springboot+Mybatis-plus+Druid+Spring Cloud Alibaba。Spring + MyBatis + Druid 被誉为黄金组合,再加上Spring Cloud Alibaba,相信会有不错的体验。以下为相关内容的具体描述。
Spring boot由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
使用Spring Boot将能够以更灵活的方式开发Spring应用程序,并且能够通过最小(或可能没有)配置Spring来专注于解决应用程序的功能需求。它使用全新的开发模型,通过避免一些繁琐的开发步骤和样板代码和配置,使Java开发非常容易。
Spring Boot可以轻松创建单独的,生产级的基于Spring的应用程序,我们只管“运行”。查看Spring平台和第三方库。大多数Spring Boot应用程序只需要很少的Spring配置。
Spring Boot的主要特点:
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心,以及Cloud Foundry等托管平台。
MyBatis是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
MyBatis-Plus特性:
无侵入;损耗小;强大的CURD操作;支持Lambda形式调用;支持主键自动生成;支持ActiveRecord模式;支持自定义全局通用操作;内置代码生成器;内置分页插件;分页插件支持多种数据库;内置性能分析插件;内置全局拦截插件。
Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。Druid已经在阿里巴巴部署了超过600个应用,是号称为监控而生的数据库连接池。
Druid核心主要包括:
Druid的主要功能如下:
Nacos 致力于帮助开发人员发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助开发人员快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助开发人员更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理。包括:Kubernetes Service,gRPC & Dubbo RPC Service和Spring Cloud RESTful Service。
Nacos特性:
自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)首先打开idea->Create New project->选择项目类型:这里选择spring initializr,然后next。
(2)创建项目,填写项目名称,注意:不要能驼峰写法,可以用中横线,填写完毕后继续next。
(3)选择依赖。
(4)点next,直到最后finish。
仓库地址:https://mvnrepository.com/
(1)mybatis-plus。
com.baomidou
mybatisplus-spring-boot-starter
1.0.5
(2)mysql驱动。
mysql
mysql-connector-java
8.0.11
(3)Druid数据库连接池。
com.alibaba
druid-spring-boot-starter
1.1.18
(4)Spring Cloud Alibaba:nacos作为配置中心,这里主要新加入了Nacos的配置客户端模块。
org.springframework.cloud
spring-cloud-starter-alibaba-nacos-config
(5)Spring Cloud,spring cloud的版本以及spring cloud alibaba的版本,置于dependencyManagement内。用于动态配置和服务发现。
org.springframework.cloud
spring-cloud-starter-alibaba-nacos-config
${latest.version}
org.springframework.cloud
spring-cloud-alibaba-dependencies
0.2.1.RELEASE
pom
import
(6)lombok依赖,通过@lombok注解自动生成setter、getter方法。
org.projectlombok
lombok
1.18.8
provided
(7)mybatis分页插件
com.github.pagehelper
pagehelper
5.1.10
(8)swagger动态生成在线API文档。
io.springfox
springfox-swagger-ui
2.9.2
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