从零开始搭建springboot+springcloud+mybatis本地项目全过程(图解)

记录一下从零开始搭建一个springboot+springcloud+mybatis本地项目的demo的过程。纯代码小白一枚,若有不足或错误之处,欢迎广大朋友指出!

开发环境准备:
IDE:IntelliJ Idea 2019.3
数据库:mysql 8.0.2.2
SpringBoot版本:2.2.0.RELEASE
SpringCloud版本:Hoxton.RELEASE

一、创建一个新的Idea项目

打开Idea,单击New->File->Project,选择Maven,直接下一步

输入我们的项目名,我这里起名为pam,单击Finish完成创建

二、右键单击project下的父节点

->New->Module,创建一个注册中心服务端的Module,输入一下名称,我这里以pam-server为例,直接选finish;
同理再创建一个客户端的Module,输入一下名称,我这里以pam-service为例,直接选finish,结构如图所示:

三、单击File

->Settings->Maven,配置一下本地的maven,单击OK

四、在最外层pom文件

引入一下springboot、springcloud及mybatis的依赖。这里引入的springboot版本为2.2.0-RELEASE,与之相对应的springcloud版本为Hoxton.RELEASE。注意二者版本需要相适配,否则会启动报错。这里额外引入了几个常用依赖,直接在maven单击一下刷新,仓库即可在线将所需依赖下载进去。

<dependencyManagement>
  <dependencies>
   <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.2.0.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
   </dependency>
   <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>Hoxton.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
   </dependency>
  </dependencies>
 </dependencyManagement>
 <dependencies>
  <!--注册中心相关依赖-->
  <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <optional>true</optional>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-test</artifactId>
   <version>5.0.4.RELEASE</version>
  </dependency>
  <dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-api</artifactId>
   <version>2.10.0</version>
  </dependency>
  <!--mysql-->
  <dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>8.0.16</version>
  </dependency>
  <!--mybatis-->
  <dependency>
   <groupId>org.mybatis.spring.boot</groupId>
   <artifactId>mybatis-spring-boot-starter</artifactId>
   <version>2.0.0</version>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <scope>provided</scope>
  </dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-freemarker</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-cache</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-logging</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <optional>true</optional>
  </dependency>
  <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-config</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-eureka-server</artifactId>
   <version>1.3.1.RELEASE</version>
  </dependency>
  <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-contract-stub-runner</artifactId>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-contract-verifier</artifactId>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-stream-test-support</artifactId>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-lang3</artifactId>
   <version>3.5</version>
  </dependency>
  <dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
   <version>3.0.1</version>
  </dependency>
  <dependency>
   <groupId>commons-lang</groupId>
   <artifactId>commons-lang</artifactId>
   <version>2.6</version>
  </dependency>
 </dependencies>

五、创建如图所示的目录结构:

①编写注册中心,注册中心目录结构:

编写WebApplication启动类,添加注解@EnableEurekaServer和@SpringBootApplication,我这里想做一个纯注册中心,不与数据库挂钩,所以增加了一个exclude = DataSourceAutoConfiguration.class,启动项目时不自动与数据库连接,若想让注册中心也连接数据库,这个exclude也可以不要。如图所示:

编写application.yml

server:
 port: 8081
eureka:
 instance:
 hostname: 127.0.0.1
 server:
 enable-self-preservation: false  # 关闭自我保护模式(默认为打开)
 eviction-interval-timer-in-ms: 600000 # 续期时间,即扫描失效服务的间隔时间 一分钟,本地测试不需这么频繁,调为1小时
 client:
 register-with-eureka: false #自己就是注册中心,不用注册自己
 fetch-registry: false #是否去注册中心获取其他服务的地址
 serviceUrl:
  defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:
 application:
 name: xinrong
 freemarker:
 prefer-file-system-access: false

编写bootstrap.yml:

spring:
 cloud:
 config:
  enabled: false

编写log4j.properties:

log4j.rootLogger=info, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

②编写消费者pam-service,消费者目录结构:

编写消费者启动类PamApplication.java,添加注解@MapperScan(basePackages = {“com.xinrong.pam.*.mapper”})
含义:mybatis中Mapper文件对应的包,启动项目时会自动扫描

编写消费者application.yml:

server:
 port: 8088 #端口号8088
eureka:
 instance:
 hostname: 127.0.0.1
 server:
 enable-self-preservation: false  # 关闭自我保护模式(默认为打开)
 eviction-interval-timer-in-ms: 600000 # 续期时间,即扫描失效服务的间隔时间 一分钟
 client:
 register-with-eureka: true #注册到注册中心
 fetch-registry: true #是否去注册中心获取其他服务的地址:是
 serviceUrl:
  defaultZone: http://127.0.0.1:8081/eureka/ #注册中心地址
mybatis:
 mapper-locations: mapper/* #mybatis映射文件路径
 config-location: classpath:/mybatis/mybatis-config.xml #mybatis配置文件路径
spring:
 application:
 name: pam #项目名
 datasource:
 url: jdbc:mysql://127.0.0.1:3306/pam?characterEncoding=utf-8&serverTimezone=Asia/Shanghai
 username: root
 password: root
 driver-class-name: com.mysql.cj.jdbc.Driver
 freemarker:
 prefer-file-system-access: false
jdbc:
 driverClass: com.mysql.jdbc.Driver
 url: jdbc:mysql://localhost:3306/pam
 username: root
 password: root

在数据库中创建一个pam_user表:

create table pam_user(
	objectId varchar(50) not null primary key ,
	userName varchar(50),
	password varchar(255),
	phoneNo varchar(20),
	sex varchar(5),
	birthDay date,
	Email varchar(50)
);

插入一条测试数据:

编写user文件夹,创建五层架构,在domain中创建一个实体类User:

创建controller类接口及实现类,添加@RestController注解,在接口上添加@RequestMapping注解:
接口:

实现类:

同理,添加service接口及实现类,注意在实现类上添加@Service注解:


创建mapper文件,编写Mapper接口,添加@Repository注解:

在resources中创建mybatis文件夹,编写mybatis-config.xml配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
 <settings>
  <!-- 设置驼峰匹配 -->
  <setting name="mapUnderscoreToCamelCase" value="true"/>
  <!--增加日志输出-->
  <setting name="logImpl" value="STDOUT_LOGGING" />
 </settings>
</configuration>

编写mapper文件,创建一个User类的mybatis映射文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.xinrong.pam.user.mapper.UserMapper">
 <select id="getAll" resultType="com.xinrong.pam.user.domain.User">
  select * from pam_user
 </select>
</mapper>

至此,Demo代码编写完毕,首先启动注册中心pam_server,启动成功,通过地址http://127.0.0.1:8081/,成功查看到了注册中心管理界面:

启动服务pam_service:

启动成功,再次查看注册中心管理界面,可以看到pam服务成功注册到了注册中心:

通过浏览器地址栏键入“http://127.0.0.1:8088/controller/pam/user/getAll”,成功查询到了库中录入的测试数据。至此,springBoot的项目基本架构搭建成功!

到此这篇关于从零开始搭建springboot+springcloud+mybatis本地项目全过程(图解)的文章就介绍到这了,更多相关搭建springboot+springcloud+mybatis本地项目内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 通过Spring Boot + Mybatis + Redis快速搭建现代化Web项目

    背景 SpringBoot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一.Mybatis是一个十分轻量好用的ORM框架.Redis是当今十分主流的分布式key-value型数据库,在web开发中,我们常用它来缓存数据库的查询结果. 本篇博客将介绍如何使用SpringBoot快速搭建一个Web应用,并且采用Mybatis作为我们的ORM框架.为了提升性能,我们将Redis作为Mybatis的二级缓存.为了测试我们的代码,我们编写了单元测试,并且用H2内存数据库

  • 快速搭建Spring Boot+MyBatis的项目IDEA(附源码下载)

    如何快速构建一个Spring Boot的项目工具 ideaJDK版本 1.8Spring Boot 版本 1.5.9环境搭建实现:最基础前端可以访问到数据库内的内容 开始 1.IDEA 内部新建一个项目,项目类型选择Spring Initializr,Project SDK选择适合你当前环境的版本,这里我选择的是1.8(Spring Boot 2.0以上的版本,JDK选择请选择1.8即以上版本),构建服务选择默认就好,点击Next 2.填写Group和Artifact(此处我使用的是默认,请根据

  • Springcloud+Mybatis使用多数据源的四种方式(小结)

    前段时间在做会员中心和中间件系统开发时,多次碰到多数据源配置问题,主要用到分包方式.参数化切换.注解+AOP.动态添加 这四种方式.这里做一下总结,分享下使用心得以及踩过的坑. 分包方式 数据源配置文件 在yml中,配置两个数据源,id分别为master和s1. spring: datasource: master: jdbcUrl: jdbc:mysql://192.168.xxx.xxx:xxxx/db1?......... username: xxx password: xxx drive

  • SpringCloud+MyBatis分页处理(前后端分离)

    分页处理,这是做JavaWeb项目中常见的场景. 背景: 1.系统架构:SpringCloud分布式 2.持久层:MyBatis 3.前端:前后分离vue.js/bootstrap等. 后台提供restful api 接口,前端访问后端接口展示数据. 2种方式提供分页处理方案: 一.直接MyBatis数据库进行分页 controller接口 @ApiImplicitParams({ @ApiImplicitParam(name = "categoryId", value = "

  • 如何利用IDEA搭建SpringBoot项目整合mybatis实现简单的登录功能

    利用闲余时间想自己搭建一个springboot+mybatis的项目,提升一下自己对项目的了解,毕竟自己还是一个小白,在这里为自己创建项目的过程做一个记录,以便以后回忆.同时将搭建中遇到的问题也在这里做记录.如有遇到同样问题的同学,希望能给你一下借鉴. springboot的优势之一就是快速搭建项目,省去了自己导入jar包和配置xml的时间,使用非常方便. 一,搭建项目: 1.打开IDEA,点击File→New→Project...,如图1所示 图1  搭建项目 2.当我们选择project..

  • 从零开始搭建springboot+springcloud+mybatis本地项目全过程(图解)

    记录一下从零开始搭建一个springboot+springcloud+mybatis本地项目的demo的过程.纯代码小白一枚,若有不足或错误之处,欢迎广大朋友指出! 开发环境准备: IDE:IntelliJ Idea 2019.3 数据库:mysql 8.0.2.2 SpringBoot版本:2.2.0.RELEASE SpringCloud版本:Hoxton.RELEASE 一.创建一个新的Idea项目 打开Idea,单击New->File->Project,选择Maven,直接下一步 输入

  • IDEA教程创建SpringBoot前后端分离项目示例图解

    目录 创建springboot项目 测试项目 按照MVC格式创建数据库项目 总结 springboot就是简化Spring应用中的初始化配置,快速创建项目而生的. 创建springboot项目 代开idea,点击File->New->Project,弹出如下对话框 输入组织.工程名,选择maven工程,注意:java版本号选择8 可以根据自己项目的需求选择依赖包,系统会自动将这些依赖包写入maven的pom文件,如下选择Spring Web.myBtias.mySQL驱动等.无需担心漏掉依赖包

  • IDEA下从零开始搭建SpringBoot工程的方法步骤

    SpringBoot的具体介绍可以参看其他网上介绍,这里就不多说了,就这几天的学习,个人理解,简而言之: (1)它是Spring的升级版,Spring容器能做到的事情,它都能做到,而且更简便,从配置形式上来说,SpringBoot完全抛弃了繁琐的XML文件配置方式,而是替代性地用注解方式来实现,虽然本质来说,是差不多的(类似包扫描,注解扫描,类加载之类). (2)SpringBoot集成的插件更多,从而使用很多服务,都只是引入一个依赖,几个注解和Java类就可以用了,具体的参考相关手册. (3)

  • IDEA创建springboot + mybatis项目全过程(步骤详解)

    鉴于隔很久再在IDEA新建springboot项目时,会出现对步骤不确定的情况,因此,写下这篇博客记录创建一个可运行的springboot+mybatis项目的全过程. 步骤如下: 1.打开IDEA 2.File ==> new ==> project ,如图: 3.选择spring Initializr ==> 右边的Project SDK我选的是我已经安装的1.8版本,其他默认 ==> 点击next 4.填写Group (自己随意就行,我的是cn + 个人英文名 + study

  • 基于SpringBoot与Mybatis实现SpringMVC Web项目

    一.热身 一个现实的场景是:当我们开发一个Web工程时,架构师和开发工程师可能更关心项目技术结构上的设计.而几乎所有结构良好的软件(项目)都使用了分层设计.分层设计是将项目按技术职能分为几个内聚的部分,从而将技术或接口的实现细节隐藏起来. 从另一个角度上来看,结构上的分层往往也能促进了技术人员的分工,可以使开发人员更专注于某一层业务与功能的实现,比如前端工程师只关心页面的展示与交互效果(例如专注于HTML,JS等),而后端工程师只关心数据和业务逻辑的处理(专注于Java,Mysql等).两者之间

  • Maven搭建springboot项目的方法步骤

    Maven搭建springboot项目 本文是基于Windows 10系统环境,使用Maven搭建springboot项目 Windows 10 apache-maven-3.6.0 IntelliJ IDEA 2018.3.4 x64 一.springboot项目搭建 (1) 新建目录 在某个可用目录下,新建一个文件夹,本文新建目录为 D:\demo\zs200 (2) 创建maven父工程zs200a-parent 填写项目maven坐标 填写项目名称和路径 (2) maven父工程zs20

  • idea快速搭建springboot项目的操作方法

    Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程.它主要推崇的是'消灭配置',实现零配置. 那么,如何在idea中创建一个springboot项目呢? 一.在你建立的工程下创建 Module 选择Spring initializr创建. 二.在Type处选择: Maven Project(项目的构建工具) 三.创建依赖时勾上web,mybatis,mysql(这个看你个人需要吧,可以自主选择) 建立好的项目结构如下: 相对应的

  • springboot+springmvc+mybatis项目整合

    介绍: 上篇给大家介绍了ssm多模块项目的搭建,在搭建过程中spring整合springmvc和mybatis时会有很多的东西需要我们进行配置,这样不仅浪费了时间,也比较容易出错,由于这样问题的产生,Pivotal团队提供了一款全新的框架,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 特点: 1. 创建独立的Spring应用

随机推荐