parent
bb1f6b672a
commit
d72f2ce8b4
@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>dev-protocol</artifactId>
|
||||||
|
<groupId>org.example</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>dev-protocol-devops</artifactId>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!-- 如果是2.3.1或者以上,需要添加注解依赖的包。-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-validation</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>org.springframework.cloud</groupId>-->
|
||||||
|
<!-- <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>org.springframework.cloud</groupId>-->
|
||||||
|
<!-- <artifactId>spring-cloud-starter-config</artifactId>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
<!--启用链路追踪服务-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-zipkin</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-devtools</artifactId>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.h2database</groupId>
|
||||||
|
<artifactId>h2</artifactId>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.seleniumhq.selenium</groupId>
|
||||||
|
<artifactId>selenium-java</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter-api</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.baiye;
|
||||||
|
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开发协议开发运维 应用程序
|
||||||
|
*
|
||||||
|
* @author q
|
||||||
|
* @date 2021/11/26
|
||||||
|
*/
|
||||||
|
@SpringBootApplication
|
||||||
|
public class DevProtocolDevOpsApplication {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(DevProtocolDevOpsApplication.class, args);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,77 @@
|
|||||||
|
package com.baiye.controller;
|
||||||
|
|
||||||
|
import com.baiye.entity.Notebook;
|
||||||
|
import com.baiye.repository.NotebookRepository;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.validation.BindingResult;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
@RequestMapping("/")
|
||||||
|
public class NotebookController {
|
||||||
|
|
||||||
|
private final NotebookRepository notebookRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public NotebookController(NotebookRepository notebookRepository) {
|
||||||
|
this.notebookRepository = notebookRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("signup")
|
||||||
|
public String showSignUpForm(Notebook notebook) {
|
||||||
|
return "add-notebook";
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("list")
|
||||||
|
public String showUpdateForm(Model model) {
|
||||||
|
model.addAttribute("notebooks", notebookRepository.findAll());
|
||||||
|
return "index";
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("add")
|
||||||
|
public String addNote(@Valid Notebook notebook, BindingResult result, Model model) {
|
||||||
|
if (result.hasErrors()) {
|
||||||
|
return "add-notebook";
|
||||||
|
}
|
||||||
|
|
||||||
|
notebookRepository.save(notebook);
|
||||||
|
return "redirect:list";
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("edit/{id}")
|
||||||
|
public String showUpdateForm(@PathVariable("id") long id, Model model) {
|
||||||
|
Notebook notebook = notebookRepository.findById(id)
|
||||||
|
.orElseThrow(() -> new IllegalArgumentException("Invalid notebook Id:" + id));
|
||||||
|
model.addAttribute("notebook", notebook);
|
||||||
|
return "update-notebook";
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("update/{id}")
|
||||||
|
public String updateNote(@PathVariable("id") long id, @Valid Notebook notebook, BindingResult result,
|
||||||
|
Model model) {
|
||||||
|
if (result.hasErrors()) {
|
||||||
|
notebook.setId(id);
|
||||||
|
return "update-notebook";
|
||||||
|
}
|
||||||
|
|
||||||
|
notebookRepository.save(notebook);
|
||||||
|
model.addAttribute("notebooks", notebookRepository.findAll());
|
||||||
|
return "index";
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("delete/{id}")
|
||||||
|
public String deleteNote(@PathVariable("id") long id, Model model) {
|
||||||
|
Notebook notebook = notebookRepository.findById(id)
|
||||||
|
.orElseThrow(() -> new IllegalArgumentException("Invalid notebook Id:" + id));
|
||||||
|
notebookRepository.delete(notebook);
|
||||||
|
model.addAttribute("notebooks", notebookRepository.findAll());
|
||||||
|
return "index";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,67 @@
|
|||||||
|
package com.baiye.entity;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.GenerationType;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
public class Notebook {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||||
|
private long id;
|
||||||
|
|
||||||
|
@NotBlank(message = "Name is mandatory")
|
||||||
|
@Column(name = "name")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@NotBlank(message = "Email is mandatory")
|
||||||
|
@Column(name = "email")
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
@Column(name = "phone_no")
|
||||||
|
private long phoneNo;
|
||||||
|
|
||||||
|
public Notebook() {}
|
||||||
|
|
||||||
|
public Notebook(String name, String email) {
|
||||||
|
this.name = name;
|
||||||
|
this.email = email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmail(String email) {
|
||||||
|
this.email = email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEmail() {
|
||||||
|
return email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getPhoneNo() {
|
||||||
|
return phoneNo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPhoneNo(long phoneNo) {
|
||||||
|
this.phoneNo = phoneNo;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.baiye.repository;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baiye.entity.Notebook;
|
||||||
|
import org.springframework.data.repository.CrudRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface NotebookRepository extends CrudRepository<Notebook, Long> {
|
||||||
|
|
||||||
|
List<Notebook> findByName(String name);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
server:
|
||||||
|
port: 8081
|
||||||
|
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: dev-protocol-devops
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
@ -0,0 +1,63 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
|
<title>Add User</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet"
|
||||||
|
href="/css/bootstrap.min.css"
|
||||||
|
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
|
||||||
|
crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet"
|
||||||
|
href="/css/all.css"
|
||||||
|
integrity="sha384-5sAR7xN1Nv6T6+dT2mhtzEpVJvfS3NScPQTrOxhwjIuvcA67KV2R5Jz6kr4abQsz"
|
||||||
|
crossorigin="anonymous">
|
||||||
|
<!-- <link rel="stylesheet" href="../css/shards.min.css"> -->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container my-5">
|
||||||
|
<h3> Add notebook</h3>
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="col-md-10">
|
||||||
|
<form action="#" th:action="@{/add}"
|
||||||
|
th:object="${notebook}" method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="form-group col-md-8">
|
||||||
|
<label for="name" class="col-form-label">Name</label> <input
|
||||||
|
type="text" th:field="*{name}" class="form-control" id="name"
|
||||||
|
placeholder="Name"> <span
|
||||||
|
th:if="${#fields.hasErrors('name')}" th:errors="*{name}"
|
||||||
|
class="text-danger"></span>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-md-8">
|
||||||
|
<label for="email" class="col-form-label">Email</label> <input
|
||||||
|
type="text" th:field="*{email}" class="form-control" id="email"
|
||||||
|
placeholder="Email"> <span
|
||||||
|
th:if="${#fields.hasErrors('email')}" th:errors="*{email}"
|
||||||
|
class="text-danger"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group col-md-8">
|
||||||
|
<label for="phoneNo" class="col-form-label">Phone No</label> <input
|
||||||
|
type="text" th:field="*{phoneNo}" class="form-control"
|
||||||
|
id="phoneNo" placeholder="PhoneNo"> <span
|
||||||
|
th:if="${#fields.hasErrors('phoneNo')}" th:errors="*{phoneNo}"
|
||||||
|
class="text-danger"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<input type="submit" id="addNoteBtn" class="btn btn-primary" value="Add Note">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group col-md-8"></div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,61 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
|
<title>Users</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet"
|
||||||
|
href="/css/bootstrap.min.css"
|
||||||
|
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
|
||||||
|
crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet"
|
||||||
|
href="/css/all.css"
|
||||||
|
integrity="sha384-5sAR7xN1Nv6T6+dT2mhtzEpVJvfS3NScPQTrOxhwjIuvcA67KV2R5Jz6kr4abQsz"
|
||||||
|
crossorigin="anonymous">
|
||||||
|
<!-- <link rel="stylesheet" href="../css/shards.min.css"> -->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container my-2">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<div th:switch="${notebooks}" class="container my-5">
|
||||||
|
<p class="my-5">
|
||||||
|
<a href="/signup" id="signup" class="btn btn-primary"><i
|
||||||
|
class="fas fa-user-plus ml-2"> Add notebook</i></a>
|
||||||
|
</p>
|
||||||
|
<div class="col-md-10">
|
||||||
|
<h2 th:case="null">No notebook yet!</h2>
|
||||||
|
<div th:case="*">
|
||||||
|
<table class="table table-striped table-responsive-md">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Email</th>
|
||||||
|
<th>Phone No</th>
|
||||||
|
<th>Edit</th>
|
||||||
|
<th>Delete</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr th:each="notebook : ${notebooks}">
|
||||||
|
<td th:text="${notebook.name}"></td>
|
||||||
|
<td th:text="${notebook.email}"></td>
|
||||||
|
<td th:text="${notebook.phoneNo}"></td>
|
||||||
|
<td><a th:href="@{/edit/{id}(id=${notebook.id})}"
|
||||||
|
class="btn btn-primary"><i class="fas fa-user-edit ml-2"></i></a></td>
|
||||||
|
<td><a
|
||||||
|
th:href="@{/delete/{id}(id=${notebook.id})}"
|
||||||
|
class="btn btn-primary"><i class="fas fa-user-times ml-2"></i></a></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,60 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
|
<title>Update User</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet"
|
||||||
|
href="/css/bootstrap.min.css"
|
||||||
|
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
|
||||||
|
crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet"
|
||||||
|
href="/css/all.css"
|
||||||
|
integrity="sha384-5sAR7xN1Nv6T6+dT2mhtzEpVJvfS3NScPQTrOxhwjIuvcA67KV2R5Jz6kr4abQsz"
|
||||||
|
crossorigin="anonymous">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container my-5">
|
||||||
|
<h3> Update Note</h3>
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="col-md-8">
|
||||||
|
<form action="#"
|
||||||
|
th:action="@{/update/{id}(id=${notebook.id})}"
|
||||||
|
th:object="${notebook}" method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="form-group col-md-6">
|
||||||
|
<label for="name" class="col-form-label">Name</label> <input
|
||||||
|
type="text" th:field="*{name}" class="form-control" id="name"
|
||||||
|
placeholder="Name"> <span
|
||||||
|
th:if="${#fields.hasErrors('name')}" th:errors="*{name}"
|
||||||
|
class="text-danger"></span>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-md-8">
|
||||||
|
<label for="email" class="col-form-label">Email</label> <input
|
||||||
|
type="text" th:field="*{email}" class="form-control" id="email"
|
||||||
|
placeholder="Email"> <span
|
||||||
|
th:if="${#fields.hasErrors('email')}" th:errors="*{email}"
|
||||||
|
class="text-danger"></span>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-md-8">
|
||||||
|
<label for="phoneNo" class="col-form-label">Phone No</label> <input
|
||||||
|
type="text" th:field="*{phoneNo}" class="form-control"
|
||||||
|
id="phoneNo" placeholder="phoneNo"> <span
|
||||||
|
th:if="${#fields.hasErrors('phoneNo')}" th:errors="phoneNo"
|
||||||
|
class="text-danger"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group col-md-8">
|
||||||
|
<input type="submit" class="btn btn-primary"
|
||||||
|
value="Update Note">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,46 @@
|
|||||||
|
### Example user template template
|
||||||
|
### Example user template
|
||||||
|
|
||||||
|
# IntelliJ project files
|
||||||
|
.idea
|
||||||
|
*.iml
|
||||||
|
out
|
||||||
|
gen
|
||||||
|
### Maven template
|
||||||
|
target/
|
||||||
|
pom.xml.tag
|
||||||
|
pom.xml.releaseBackup
|
||||||
|
pom.xml.versionsBackup
|
||||||
|
pom.xml.next
|
||||||
|
release.properties
|
||||||
|
dependency-reduced-pom.xml
|
||||||
|
buildNumber.properties
|
||||||
|
.mvn/timing.properties
|
||||||
|
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
|
||||||
|
.mvn/wrapper/maven-wrapper.jar
|
||||||
|
|
||||||
|
### Java template
|
||||||
|
# Compiled class file
|
||||||
|
*.class
|
||||||
|
|
||||||
|
# Log file
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# BlueJ files
|
||||||
|
*.ctxt
|
||||||
|
|
||||||
|
# Mobile Tools for Java (J2ME)
|
||||||
|
.mtj.tmp/
|
||||||
|
|
||||||
|
# Package Files #
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.nar
|
||||||
|
*.ear
|
||||||
|
*.zip
|
||||||
|
*.tar.gz
|
||||||
|
*.rar
|
||||||
|
|
||||||
|
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||||
|
hs_err_pid*
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 60 KiB |
Binary file not shown.
After Width: | Height: | Size: 65 KiB |
@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>dev-protocol</artifactId>
|
||||||
|
<groupId>org.example</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>dev-protocol-gateway</artifactId>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.baiye;
|
||||||
|
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开发协议网关应用程序
|
||||||
|
*
|
||||||
|
* @author q
|
||||||
|
* @date 2021/11/24
|
||||||
|
*/
|
||||||
|
@SpringBootApplication
|
||||||
|
public class DevProtocolGatewayApplication {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(DevProtocolGatewayApplication.class, args);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package com.baiye.notify;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public interface IService {
|
||||||
|
|
||||||
|
Map<String, INotifyService> getNotifyServiceMap();
|
||||||
|
|
||||||
|
Integer handle(String body);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
package com.baiye.notify;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知控制器
|
||||||
|
*
|
||||||
|
* 异步通知统一入口
|
||||||
|
*
|
||||||
|
* @author q
|
||||||
|
* @date 2021/11/24
|
||||||
|
*/
|
||||||
|
@AllArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping(value = "/notify")
|
||||||
|
public class NotifyController {
|
||||||
|
|
||||||
|
private IService service;
|
||||||
|
|
||||||
|
@PostMapping(value = "/receive")
|
||||||
|
public String receive(@RequestBody String body) {
|
||||||
|
//处理通知
|
||||||
|
Integer status = service.handle(body);
|
||||||
|
return "success";
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue