記錄一下從零開始搭建一個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的專案基本架構搭建成功!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/249057.html
標籤:java
下一篇:低代碼,是否能“取代”開發者?
