~適合小白入門,springboot簡單整合微服務技術,部署在linux環境下進行測驗~
~注意: 運行環境為linux服務器,提前給linux服務器環境中安裝jdk、kafka、zookeeper、nginx、redis、mysql等必要的環境~
文章目錄
一、springboot專案的搭建
二、整合所需全部依賴
三、整合具體步驟
四、總結
一、springboot專案的搭建
1、這是由于springboot過于簡單,直接附上鏈接大家自己照著新建一個springboot專案
2、注意: 搭建專案是不要自動選擇依賴, 我下面已經附上全部所需依賴, 使用的我依賴, 按著我的步驟,測驗成功率會很高,不然很有可能出現一些未知問題
點擊新建springboot專案
https://www.cnblogs.com/swzx-1213/p/12345330.html
二、整合所需全部依賴
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<!--資料庫連接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
<!--添加JDBC依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--資料庫連接驅動 連接配置修改時間-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
<scope>runtime</scope>
</dependency>
<!--Swagger2依賴-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--Swagger UI-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- kafka -->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
<!--引入thymeleaf的依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
下面的xml檔案是用來防止專案在加載mapper.xml檔案加載不到target中的
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<excludes>
<exclude>**/*.yaml</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
</resource>
</resources>
三、整合具體步驟
1、整合swagger
1)添加swagger依賴(上面依賴中已經包含)
2)加入如下代碼
package com.kdhy.again.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @Author: liming
* @Date: 2021/9/9 15:38
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
/**
* 測驗API
* @return
*/
@Bean
public Docket myDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("集成測驗")
//呼叫的api描述方法
.apiInfo(myApiInfo())
.select()
//掃描的API包路徑
//這塊package路徑 , 你得填寫你自己的
.apis(RequestHandlerSelectors.basePackage("com.kdhy.again.controller"))
.paths(PathSelectors.any())
.build();
}
public ApiInfo myApiInfo() {
return new ApiInfoBuilder()
.title("綜合專案測驗檔案(kdhy)")
.description("主要是整合公司所所使用的技術,都包括(kafka/nginx/redis/mysql/swagger/springboot)等")
.license("檔案說明")
.licenseUrl("http://www.wowuyule.com")
.termsOfServiceUrl("www.w3c.com")
.version("1.0.0")
.build();
}
}
3)添加controller類,用來測驗swagger
package com.kdhy.again.controller;
import com.kdhy.again.entity.Emp;
import com.kdhy.again.service.EmpService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @Author: liming
* @Date: 2021/9/9 16:11
*/
@RestController
@Api(tags = "員工管理") // swagger注解 展示介面功能
public class EmpController {
@Autowired
private EmpService empService;
/**
* 用戶登錄
* @param empId
* @param password
* @return
*/
@ApiOperation("用戶登錄") // swagger注解, 展示介面中方法的功能
@GetMapping("/login/{empId}/{password}")
public String login(@RequestBody @PathVariable Integer empId, @PathVariable Integer password){
Emp login = empService.login(empId, password);
if(login != null){
return "登錄成功";
}else {
return "登錄失敗";
}
}
}
4) 啟動application類 , 訪問 http://localhost:8080/swagger-ui.html 即可看到效果
2、整合kafka
1)添加kafka依賴(上面依賴中已經包含)
2)啟動kafka(啟動kafka之前首先啟動zookeeper)
3)在linux服務器中添加 topic (其中地址為zookeeper所在服務器地址)
bin/kafka-topics.sh --create --zookeeper 192.168.0.2:2181/kafka100 --topic0 topic-test1 --replication-factor 1 --partitions 2
bin/kafka-topics.sh --create --zookeeper 192.168.0.2:2181/kafka100 --topic1 topic-test1 --replication-factor 1 --partitions 2
5) yaml組態檔, 配置kafka
#kafaka
kafka:
bootstrap-servers: 192.168.51.222:9092
listener:
missing-topics-fatal: false
producer:
retries: 0
acks: 1
batch-size: 16384
properties:
linger:
ms: 0
buffer-memory: 33554432
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
consumer:
properties:
group:
id: defaultConsumerGroup
session:
timeout:
ms: 120000
request:
timeout:
ms: 180000
enable-auto-commit: true
auto:
commit:
interval:
ms: 1000
auto-offset-reset: latest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
4)添加生產訊息類和消費訊息類
生產訊息類
package com.kdhy.again.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @Author: liming
* @Date: 2021/9/8 13:57
*/
@Api(tags ="kafka測驗")
@RestController
public class KafkaProducer {
@Resource
private KafkaTemplate<String, Object> kafkaTemplate;
/**
*
* @param normalMessage
*/
@ApiOperation("生產者-生產訊息")
@GetMapping("/lm/{message}")
public void sendMessage1(@PathVariable("message") String normalMessage) {
System.out.println("請求進來了");
kafkaTemplate.send("topic1", normalMessage);
}
}
消費訊息類
package com.kdhy.again.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RestController;
/**
* @version 1.x
* @Author: liming
* @Date: 2021/9/8 14:04
*/
@Api(tags = "kafka消費者")
@Component
@RestController
public class KafkaConsumer {
/**
* 消費監聽
*
* @param record
*/
@ApiOperation("kafka消費者-消費訊息")
@KafkaListener(topics = {"topic1"})
public void onMessage1(ConsumerRecord<?, ?> record) {
// 消費的哪個topic、partition的訊息,列印出訊息內容
System.out.println("簡單消費:" + record.topic() + "-" + record.partition() + "-" + record.value());
}
}
5)啟動專案,進行測驗(就按getmapping中的地址進行測驗)
3、整合nginx
1)配置nginx,conf檔案(在nginx安裝路徑下,conf/nginx.conf)

2)啟動nginx(啟動方式我的博客中有, 在這里就不說了)
3)部署jar包, 啟動jar包(這里附上jar包啟動命令)
nohup java -jar 專案名稱.jar --server.port=8888 -Xmx128m -Xms128m > v.log &
4) 在瀏覽器中訪問nginx服務器(地址為服務器地址,也就是nginx服務器部署的地址)(埠號為nginx.conf中配置listen的埠號)
http://192.168.51.222:8099/
4、整合redis
1)添加redis依賴(上面依賴中已經包含)
2)配置yaml檔案
#redis
redis:
database: 0
host: 192.168.51.222
port: 6379
password: 123456
jedis:
pool:
max-active: 100
max-idle: 10
max-wait: 100000
timeout: 5000
3)添加RedisController 類進行測驗
package com.kdhy.again.controller;
import com.kdhy.again.entity.Emp;
import com.kdhy.again.util.RedisUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @Author: liming
* @Date: 2021/9/9 20:42
*/
@RestController
@Api(tags = "redis測驗curd")
public class RedisController {
@Autowired
private RedisUtils redisUtils;
/**
* 用戶登錄
* @param id
* @return
*/
@ApiOperation("用戶登錄--redis")
@GetMapping("/redisLogin/{id}")
public String redisLogin(@RequestBody @PathVariable String id){
String s = redisUtils.get(id);
if("李明".equals(s)){
return "redis登錄成功--"+s;
}else {
return "redis登錄失敗";
}
}
/**
* 用戶注冊
* @return
*/
@ApiOperation("用戶注冊--redis")
@GetMapping("/redisInsert/{empId}/{name}")
public String redisInsert(@PathVariable String empId, @PathVariable String name){
boolean set = redisUtils.set(empId, name);
if(set){
return "redis注冊成功--李明";
}else {
return "redis注冊失敗";
}
}
/**
* 用戶修改密碼
* @return
*/
@ApiOperation("用戶修改密碼--redis")
@GetMapping("/redisUpdate/{empId}/{name}")
public String redisUpdate(@PathVariable String empId, @PathVariable String name){
boolean andSet = redisUtils.getAndSet(empId, name);
if(andSet){
return "redis修改成功--李明改為-李民";
}else {
return "redis修改失敗";
}
}
/**
* 用戶注銷
* @param empId
* @return
*/
@ApiOperation("用戶注銷--redis")
@GetMapping("/redisDelete/{empId}")
public String redisDelete(@RequestBody @PathVariable String empId){
boolean delete = redisUtils.delete(empId);
if(delete){
return "redis注銷成功--李明";
}else {
return "redis注銷失敗";
}
}
}
2)啟動專案, 直接使用url測驗
5、整合mysql
1)添加mysql依賴(上面依賴中已經包含)
2)配置yaml檔案
#配置資料庫連接源
datasource:
url: jdbc:mysql://192.168.51.222:3306/zb
username: root
password: 123456
driverClassName: com.mysql.jdbc.Driver
3)代碼去我博客的資源里面找(因為mysql測驗代碼有點多)
4) 啟動專案進行測驗
四、總結
最后可以打一個jar包, 進行一個綜合測驗,有需求可以留言,博主看見會和你交流的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299448.html
標籤:其他
下一篇:[測開學習]--HTML
