最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

從零開始搭建springboot+springcloud+mybatis本地項目全過程(圖解)

 更新時間:2021年01月18日 09:28:38   作者:laozhang42  
這篇文章主要介紹了從零開始搭建springboot+springcloud+mybatis本地項目全過程(圖解),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

記錄一下從零開始搭建一個springboot+springcloud+mybatis本地項目的demo的過程。純代碼小白一枚,若有不足或錯誤之處,歡迎廣大朋友指出!

開發(fā)環(huán)境準(zhǔn)備:
IDE:IntelliJ Idea 2019.3
數(shù)據(jù)庫:mysql 8.0.2.2
SpringBoot版本:2.2.0.RELEASE
SpringCloud版本:Hoxton.RELEASE

一、創(chuàng)建一個新的Idea項目

打開Idea,單擊New->File->Project,選擇Maven,直接下一步

在這里插入圖片描述

輸入我們的項目名,我這里起名為pam,單擊Finish完成創(chuàng)建

在這里插入圖片描述

二、右鍵單擊project下的父節(jié)點

->New->Module,創(chuàng)建一個注冊中心服務(wù)端的Module,輸入一下名稱,我這里以pam-server為例,直接選finish;
同理再創(chuàng)建一個客戶端的Module,輸入一下名稱,我這里以pam-service為例,直接選finish,結(jié)構(gòu)如圖所示:

在這里插入圖片描述

三、單擊File

->Settings->Maven,配置一下本地的maven,單擊OK

在這里插入圖片描述

四、在最外層pom文件

引入一下springboot、springcloud及mybatis的依賴。這里引入的springboot版本為2.2.0-RELEASE,與之相對應(yīng)的springcloud版本為Hoxton.RELEASE。注意二者版本需要相適配,否則會啟動報錯。這里額外引入了幾個常用依賴,直接在maven單擊一下刷新,倉庫即可在線將所需依賴下載進(jìn)去。

<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>
  <!--注冊中心相關(guān)依賴-->
  <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>

五、創(chuàng)建如圖所示的目錄結(jié)構(gòu):

①編寫注冊中心,注冊中心目錄結(jié)構(gòu):

在這里插入圖片描述

編寫WebApplication啟動類,添加注解@EnableEurekaServer和@SpringBootApplication,我這里想做一個純注冊中心,不與數(shù)據(jù)庫掛鉤,所以增加了一個exclude = DataSourceAutoConfiguration.class,啟動項目時不自動與數(shù)據(jù)庫連接,若想讓注冊中心也連接數(shù)據(jù)庫,這個exclude也可以不要。如圖所示:

在這里插入圖片描述

編寫application.yml

server:
 port: 8081
eureka:
 instance:
 hostname: 127.0.0.1
 server:
 enable-self-preservation: false  # 關(guān)閉自我保護(hù)模式(默認(rèn)為打開)
 eviction-interval-timer-in-ms: 600000 # 續(xù)期時間,即掃描失效服務(wù)的間隔時間 一分鐘,本地測試不需這么頻繁,調(diào)為1小時
 client:
 register-with-eureka: false #自己就是注冊中心,不用注冊自己
 fetch-registry: false #是否去注冊中心獲取其他服務(wù)的地址
 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,消費者目錄結(jié)構(gòu):

在這里插入圖片描述

編寫消費者啟動類PamApplication.java,添加注解@MapperScan(basePackages = {“com.xinrong.pam.*.mapper”})
含義:mybatis中Mapper文件對應(yīng)的包,啟動項目時會自動掃描

在這里插入圖片描述

編寫消費者application.yml:

server:
 port: 8088 #端口號8088
eureka:
 instance:
 hostname: 127.0.0.1
 server:
 enable-self-preservation: false  # 關(guān)閉自我保護(hù)模式(默認(rèn)為打開)
 eviction-interval-timer-in-ms: 600000 # 續(xù)期時間,即掃描失效服務(wù)的間隔時間 一分鐘
 client:
 register-with-eureka: true #注冊到注冊中心
 fetch-registry: true #是否去注冊中心獲取其他服務(wù)的地址:是
 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

在數(shù)據(jù)庫中創(chuàng)建一個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)
);

插入一條測試數(shù)據(jù):

在這里插入圖片描述

編寫user文件夾,創(chuàng)建五層架構(gòu),在domain中創(chuàng)建一個實體類User:

在這里插入圖片描述

創(chuàng)建controller類接口及實現(xiàn)類,添加@RestController注解,在接口上添加@RequestMapping注解:
接口:

在這里插入圖片描述

實現(xiàn)類:

在這里插入圖片描述

同理,添加service接口及實現(xiàn)類,注意在實現(xiàn)類上添加@Service注解:

在這里插入圖片描述
在這里插入圖片描述

創(chuàng)建mapper文件,編寫Mapper接口,添加@Repository注解:

在這里插入圖片描述

在resources中創(chuàng)建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>
  <!-- 設(shè)置駝峰匹配 -->
  <setting name="mapUnderscoreToCamelCase" value="true"/>
  <!--增加日志輸出-->
  <setting name="logImpl" value="STDOUT_LOGGING" />
 </settings>
</configuration>

編寫mapper文件,創(chuàng)建一個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/,成功查看到了注冊中心管理界面:

在這里插入圖片描述

啟動服務(wù)pam_service:

在這里插入圖片描述

啟動成功,再次查看注冊中心管理界面,可以看到pam服務(wù)成功注冊到了注冊中心:

在這里插入圖片描述

通過瀏覽器地址欄鍵入“http://127.0.0.1:8088/controller/pam/user/getAll”,成功查詢到了庫中錄入的測試數(shù)據(jù)。至此,springBoot的項目基本架構(gòu)搭建成功!

在這里插入圖片描述

到此這篇關(guān)于從零開始搭建springboot+springcloud+mybatis本地項目全過程(圖解)的文章就介紹到這了,更多相關(guān)搭建springboot+springcloud+mybatis本地項目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java中的四種引用類型(強(qiáng)軟弱虛)

    詳解Java中的四種引用類型(強(qiáng)軟弱虛)

    Java中的引用類型主要分為四種,分別是強(qiáng)引用、軟引用、弱引用和虛引用,這篇文章主要為大家詳細(xì)介紹了四者的使用與區(qū)別,需要的小伙伴可以參考下
    2023-10-10
  • 使用多個servlet時Spring security需要指明路由匹配策略問題

    使用多個servlet時Spring security需要指明路由匹配策略問題

    這篇文章主要介紹了使用多個servlet時Spring security需要指明路由匹配策略問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • java實現(xiàn)Composite組合模式的實例代碼

    java實現(xiàn)Composite組合模式的實例代碼

    這篇文章主要介紹了java實現(xiàn)Composite組合模式,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Spring?Cloud?Alibaba微服務(wù)組件Sentinel實現(xiàn)熔斷限流

    Spring?Cloud?Alibaba微服務(wù)組件Sentinel實現(xiàn)熔斷限流

    這篇文章主要為大家介紹了Spring?Cloud?Alibaba微服務(wù)組件Sentinel實現(xiàn)熔斷限流過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • JAVA找不到符號的三種解決方案

    JAVA找不到符號的三種解決方案

    這篇文章主要給大家介紹了關(guān)于JAVA找不到符號的三種解決方案, 找不到符號錯誤主要發(fā)生在我們試圖引用一個未在我們正在編譯的程序中聲明的變量時,這意味著編譯器不知道我們所引用的Java變量,需要的朋友可以參考下
    2024-03-03
  • Spring?循環(huán)依賴之AOP實現(xiàn)詳情

    Spring?循環(huán)依賴之AOP實現(xiàn)詳情

    這篇文章主要介紹了Spring?循環(huán)依賴之AOP實現(xiàn)詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的盆友可以參考一下
    2022-07-07
  • Spring Boot容器加載時執(zhí)行特定操作(推薦)

    Spring Boot容器加載時執(zhí)行特定操作(推薦)

    這篇文章主要介紹了Spring Boot容器加載時執(zhí)行特定操作及spring內(nèi)置的事件,需要的朋友可以參考下
    2018-01-01
  • 詳解Java中如何使用日志庫在代碼中添加日志

    詳解Java中如何使用日志庫在代碼中添加日志

    這篇文章主要為大家介紹了Java中如何使用日志庫在代碼中添加日志詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java解析pdf格式發(fā)票的代碼實現(xiàn)

    Java解析pdf格式發(fā)票的代碼實現(xiàn)

    為了減少用戶工作量及誤操作的可能性,需要實現(xiàn)用戶上傳PDF格式的發(fā)票,系統(tǒng)通過解析PDF文件獲取發(fā)票內(nèi)容,并直接將其寫入表單,以下文章記錄了功能實現(xiàn)的代碼,需要的朋友可以參考下
    2024-08-08
  • Java關(guān)鍵字volatile知識點總結(jié)

    Java關(guān)鍵字volatile知識點總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于Java關(guān)鍵字volatile知識點總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-01-01

最新評論

清镇市| 鱼台县| 德令哈市| 旅游| 梧州市| 特克斯县| 巴林左旗| 贡觉县| 阿尔山市| 弋阳县| 凤山县| 苗栗县| 荣成市| 宜章县| 元谋县| 泽库县| 清涧县| 萨嘎县| 乡城县| 昆明市| 电白县| 信宜市| 临高县| 邓州市| 长沙市| 宁安市| 女性| 嘉义县| 镇平县| 尖扎县| 光山县| 同心县| 阜新市| 岳普湖县| 盐源县| 阿拉善盟| 雅江县| 潍坊市| 准格尔旗| 桑植县| 江达县|