Spring Cloud以Spring Boot为基石,是Spring Boot框架的延续和扩展,所以在开始Spring Cloud微服务前,我们需要先了解Spring Boot框架,如果之前没有接触过Spring Boot,也是没有关系的,相信简单的了解后你就会使用。
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。Spring Boot框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
可以说Spring Boot并不是什么新的框架,它只是默认配置了很多框架的使用方式,对一切常用的组件进行整合,达到了自动配置,开箱即用,从而方便快速开发。
在使用上,Spring Boot通过提供一系列名称以spring-boot-starter开头的启动器帮助我们简化项目的依赖。比如,当我们在项目中添加了spring-boot-starter-web时,Spring Boot就自动将相关依赖,如spring-mvc、jackson-json、tomcat等引入,从而将项目变成一个Web项目。大家可以到这里(http://t.cn/Rn30Zr7)查看全部的Spring Boot启动器列表。以下是开发中常用的启动器:
搭建环境:jdk1.8(必须1.8或以上版本)、Spring Boot2.1.1.RELEASE(2.x版本与1.x版本有所不同)、maven3.5.3(没有版本要求)、mysql8.0.13(不同版本可能略有不同)
开发工具没有任何要求,自己熟悉的即可,这里我使用了Eclipse。
在eclipse中,选择新建项目,选择Spring Boot下的Spring Starter Project即可。
然后设置项目名和包名。
然后选择Spring Boot版本,选择2.x的版本,以及需要依赖的组件,这里选择了则pom文件里会自动引入,不选择也没有任何影响,后续需要可以再手动添加。
项目建成后,目录结构如下,其中SpringbootProjectApplication为项目的启动类,默认为Application.java,这里我进行了修改,右键选择Run As或者Debug As即可启动该项目,其中@SpringBootApplication声明这是一个Spring Boot项目,@ComponentScan扫描项目中的bean,如果程序代码均在启动类同包下,则不需要声明,@MapperScan声明mybatis的dao层的扫描路径,如果不引入mybatis,则不需要。
以下是pom文件,其中除了Spring Boot项目必须的spring-boot-starter-web外,还引入了mybatis组件(因为实际工作中常用mybatis,所以这里也引入了mybatis),mysql数据源以及druid连接池,此外,为了简化代码和开发,还引入了lombok插件——简化繁杂代码,swagger2API文档组件——方便接口调用测试,spring-boot-devtools热部署插件。
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.1.RELEASE
com.yanger
user-server
0.0.1-SNAPSHOT
user-server
Demo project for SpringCloud
UTF-8
1.8
${java.version}
${java.version}
2.7.0
1.3.1
1.0.28
8.0.13
Finchley.SR2
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
${mybatis.version}
com.alibaba
druid
${druid.version}
mysql
mysql-connector-java
runtime
org.projectlombok
lombok
true
io.springfox
springfox-swagger2
${swagger.version}
io.springfox
springfox-swagger-ui
${swagger.version}
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-devtools
true
true
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
org.springframework.boot
spring-boot-maven-plugin
true
然后就是Spring Boot的配置文件,Spring Boot文件支持properties和yml两种格式,默认文件名称都是application,存放在resources目录中。项目默认生成的是application.properties,这里改用了application.yml。其中server.port为应用启动后所监听的端口,不配置默认就是8080端口。
# 应用启动后所监听的端口,可以不配置,默认就是8080端口
server:
port: 10800
# 数据源的配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver #com.mysql.jdbc.Driver #8.0.13的驱动连接与旧版本有更改
url: jdbc:mysql://localhost:3306/clouds?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT
username: root
password: 1234
# 使用druid数据源
type: com.alibaba.druid.pool.DruidDataSource
# mybatis配置,设置po数据库映射文件的路径,以及mapper的xml文件路径
mybatis:
typeAliasesPackage: com.yanger.*.po
mapperLocations: classpath*:mapper/**/*Dao.xml
configuration:
#打印mybatis的sql,方便开发
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapUnderscoreToCamelCase: true
# 配置日志输出级别,将Spring框架设置为INFO级别,而自己所编写的代码设置为DEBUG级别
logging:
file: D:/code/cloud/log/springboot-project.log
level:
org:
springframework: INFO
com:
yanger: DEBUG
自此,一个完整的Spring Boot项目就搭建完成了。另附上swagger的配置文件,使用则在Controller类上加上@Api注解即可,此外在方法上加上@ApiOperation可进行解释说明。user包为业务代码。user包为业务代码,包含了controller,service,dao,po实体,vo对象,功能为简单的增删改差,这里就不贴具体代码了,需要的可以去源码地址查看或者下载,项目源码地址:https://github.com/imyanger/springcloud-project/tree/master/p1-springboot。
然后启动项目,因为没有前台界面,可以访问swagger界面,输入网址:http://localhost:10800/swagger-ui.html,即可出现如下界面,可以对展示方法进行测试。
项目源码地址:https://github.com/imyanger/springcloud-project/tree/master/p1-springboot