example update
This commit is contained in:
parent
c91f81e123
commit
a6ecd98793
|
|
@ -0,0 +1,27 @@
|
|||
<?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>DataStructures_Algorithm</artifactId>
|
||||
<groupId>com.atguigu.DataStructures_Algorithm</groupId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>DataStructures</artifactId>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>7</source>
|
||||
<target>7</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,348 @@
|
|||
package com.atguigu.avl;
|
||||
|
||||
public class AVLTreeDemo {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
int[] arr={10, 11, 7, 6, 8, 9 };
|
||||
//创建一个AVLTree
|
||||
AVLTree avlTree = new AVLTree();
|
||||
|
||||
//添加节点
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
avlTree.add(new Node(arr[i]));
|
||||
}
|
||||
|
||||
//遍历
|
||||
System.out.println("中序遍历");
|
||||
avlTree.midOrder();
|
||||
|
||||
System.out.println("做平衡处理");
|
||||
System.out.println("树的高度="+avlTree.root.height()); //3
|
||||
System.out.println("左子树的高度="+avlTree.root.left.height()); //2
|
||||
System.out.println("右子树的高度="+avlTree.root.right.height()); //2
|
||||
System.out.println(avlTree.root);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//创建AVLTree
|
||||
class AVLTree{
|
||||
public Node root;
|
||||
|
||||
//查找要删除的节点
|
||||
public Node search(int value){
|
||||
|
||||
if(root ==null){
|
||||
return null;
|
||||
}else {
|
||||
return root.search(value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//查找父节点
|
||||
public Node searchParent(int value){
|
||||
if(root ==null){
|
||||
return null;
|
||||
}else {
|
||||
return root.searchParent(value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*1.返回以node为根节点的二叉排序树的最小节点的值
|
||||
* 2.删除node为根节点的二叉排序树的最小节点
|
||||
* @param node 传入的节点(当做二叉排序树的根节点)
|
||||
* @return 返回以node为根节点的二叉排序树的最小节点的值
|
||||
*/
|
||||
public int delRightTreeMin(Node node){
|
||||
|
||||
Node min =node;
|
||||
//U型你换查找左节点,就会找到最小值
|
||||
while(min.left !=null){
|
||||
min=min.left;
|
||||
}
|
||||
//这时min指向了最小的节点
|
||||
//删除最小节点
|
||||
delNode(min.value);
|
||||
return min.value;
|
||||
|
||||
}
|
||||
|
||||
//删除节点
|
||||
public void delNode(int value){
|
||||
|
||||
if(root ==null){
|
||||
return;
|
||||
}else {
|
||||
|
||||
//1.找到要删除的节点targetNode
|
||||
Node targetNode = search(value);
|
||||
if(targetNode==null){
|
||||
return;
|
||||
}
|
||||
//如果当前二叉排序树只有一个节点
|
||||
if(root.left==null&&root.right==null){
|
||||
root=null;
|
||||
return;
|
||||
}
|
||||
|
||||
//去找到targetNode的父节点
|
||||
Node parent = searchParent(value);
|
||||
|
||||
//如果要删除的节点是叶子节点
|
||||
if(targetNode.left==null&&targetNode.right==null){
|
||||
//判断targetNode是父节点的左子节点,还是右子节点
|
||||
if(parent.left!=null&&parent.left.value==targetNode.value){
|
||||
parent.left=null;
|
||||
}else if(parent.right!=null&&parent.right.value==targetNode.value){
|
||||
parent.right=null;
|
||||
}
|
||||
|
||||
}else if(targetNode.left !=null && targetNode.right!=null){
|
||||
int minVal = delRightTreeMin(targetNode.right);
|
||||
targetNode.value=minVal;
|
||||
|
||||
|
||||
}else {
|
||||
//删除只有一颗子树的节点
|
||||
|
||||
//左子节点
|
||||
if(targetNode.left !=null){
|
||||
if(parent !=null){
|
||||
if(parent.left.value==value){
|
||||
parent.left=targetNode.left;
|
||||
}else {
|
||||
parent.right=targetNode.right;
|
||||
}
|
||||
}else {
|
||||
root=targetNode.left;
|
||||
}
|
||||
|
||||
}else {
|
||||
if(parent !=null){
|
||||
if(parent.left.value==value){
|
||||
parent.left=targetNode.right;
|
||||
}else {
|
||||
parent.right=targetNode.right;
|
||||
}
|
||||
}else {
|
||||
root=targetNode.right;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//添加节点的方法
|
||||
public void add(Node node){
|
||||
if(root==null){
|
||||
root=node;
|
||||
}else {
|
||||
root.add(node);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//中序遍历
|
||||
public void midOrder(){
|
||||
if(root!=null){
|
||||
root.midOrder();
|
||||
}else {
|
||||
System.out.println("当前二叉排序树为空");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Node {
|
||||
|
||||
int value;
|
||||
Node left;
|
||||
Node right;
|
||||
|
||||
public Node(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
//返回左子树的高度
|
||||
public int leftHeight(){
|
||||
if(left==null){
|
||||
return 0;
|
||||
}
|
||||
return left.height();
|
||||
}
|
||||
//返回左子树的高度
|
||||
public int rightHeight(){
|
||||
if(right==null){
|
||||
return 0;
|
||||
}
|
||||
return right.height();
|
||||
}
|
||||
|
||||
//返回当前节点的高度,以该节点为根节点的数的高度
|
||||
public int height() {
|
||||
return Math.max(left == null ? 0 : left.height(), right == null ? 0 : right.height()) + 1;
|
||||
}
|
||||
|
||||
//左旋转
|
||||
public void leftRotate(){
|
||||
|
||||
//创建新的节点,以当前根节点的值
|
||||
Node newNode = new Node(value);
|
||||
//把新的节点的左子树设置为当前节点的左子树
|
||||
newNode.left=this.left;
|
||||
//把新的节点的右子树设置成当前节点的右子树的左子树
|
||||
newNode.right=this.right.left;
|
||||
//把当前节点的值替换成右子节点值
|
||||
this.value=this.right.value;
|
||||
//把当前节点的右子树设置成当前节点的右子树的右子树
|
||||
this.right=this.right.right;
|
||||
//把当前节点的左子树设置成新的节点
|
||||
this.left=newNode;
|
||||
|
||||
}
|
||||
|
||||
//右旋转
|
||||
public void rightRotate(){
|
||||
|
||||
Node newNode = new Node(value);
|
||||
newNode.right=this.right;
|
||||
newNode.left=this.left.right;
|
||||
this.value=this.left.value;
|
||||
this.left=this.left.left;
|
||||
this.right=newNode;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找要删除的节点
|
||||
*
|
||||
* @param value 希望要删除的节点的值
|
||||
* @return 如果找到返回该节点, 否则返回null
|
||||
*/
|
||||
//查找要删除的节点
|
||||
public Node search(int value) {
|
||||
if (value == this.value) {
|
||||
return this;
|
||||
} else if (value < this.value) {
|
||||
//查找的值小于当前节点,想左子树递归查找
|
||||
if (this.left == null) {
|
||||
return null;
|
||||
} else {
|
||||
return this.left.search(value);
|
||||
}
|
||||
} else {
|
||||
//查找的值大于等于当前节点,想左子树递归查找
|
||||
if (this.right == null) {
|
||||
return null;
|
||||
} else {
|
||||
return this.right.search(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找要删除节点的父节点
|
||||
*
|
||||
* @param value 要找到的节点的值
|
||||
* @return 返回要删除节点的父节点, 如果没有就返回null
|
||||
*/
|
||||
public Node searchParent(int value) {
|
||||
|
||||
if ((this.left != null && this.left.value == value) || (this.right != null && this.right.value == value)) {
|
||||
return this;
|
||||
} else {
|
||||
|
||||
//如果查找的值小于当前节点的值,并且当前节点的左子节点不为空
|
||||
if (this.value > value && this.left != null) {
|
||||
return this.left.searchParent(value); //向左子树递归查找
|
||||
} else if (this.value <= value && this.right != null) {
|
||||
return this.right.searchParent(value); //向右子数递归查找
|
||||
} else {
|
||||
return null; //没有找到父节点
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//递归的形式添加节点,满足二叉排序树的要求
|
||||
public void add(Node node) {
|
||||
|
||||
if (node == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
//判断传入的节点的值和当前
|
||||
if (node.value < this.value) {
|
||||
if (this.left == null) {
|
||||
this.left = node;
|
||||
} else {
|
||||
this.left.add(node);
|
||||
}
|
||||
} else {
|
||||
if (this.right == null) {
|
||||
this.right = node;
|
||||
} else {
|
||||
this.right.add(node);
|
||||
}
|
||||
}
|
||||
|
||||
//当添加完一个节点后,如果:(右子树高度-左子树的高度)>1,左旋转
|
||||
if(rightHeight()-leftHeight()>1){
|
||||
|
||||
if(right !=null &&right.rightHeight()<right.leftHeight()){
|
||||
//先对当前节点的右子树进行右旋转
|
||||
right.rightRotate();
|
||||
leftRotate();
|
||||
}else {
|
||||
leftRotate();
|
||||
}
|
||||
return; //避免后续进行判断
|
||||
}
|
||||
|
||||
//当添加完一个节点后,如果:(左子树高度-右子树的高度)>1,右旋转
|
||||
if(leftHeight()-rightHeight()>1){
|
||||
|
||||
if(left !=null &&left.rightHeight()>left.leftHeight()){
|
||||
//先对当前节点的左子树进行左旋转
|
||||
left.leftRotate();
|
||||
//再对当前节点进行右旋转
|
||||
rightRotate();
|
||||
}else {
|
||||
//直接进行右旋转
|
||||
rightRotate();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//中序遍历
|
||||
public void midOrder() {
|
||||
if (this == null) {
|
||||
System.out.println("当前子树为空,无法遍历");
|
||||
}
|
||||
|
||||
if (this.left != null) {
|
||||
this.left.midOrder();
|
||||
}
|
||||
System.out.println(this);
|
||||
if (this.right != null) {
|
||||
this.right.midOrder();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Node{" +
|
||||
"value=" + value +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,261 @@
|
|||
package com.atguigu.binarysorttree;
|
||||
|
||||
public class BinarySortTreeDemo {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
int[] arr={7,3,11,12,5,1,9,2,10};
|
||||
BinarySortTree binarySortTree = new BinarySortTree();
|
||||
//循环的添加节点到二叉排序树
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
binarySortTree.add(new Node(arr[i]));
|
||||
}
|
||||
//中序遍历
|
||||
System.out.println("中序遍历二叉排序树");
|
||||
binarySortTree.midOrder(); //1 2 3 5 7 9 10 12
|
||||
|
||||
//测试删除叶子结点
|
||||
binarySortTree.delNode(11);
|
||||
System.out.println("删除后的中序遍历:");
|
||||
binarySortTree.midOrder();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
//创建二叉排序树
|
||||
class BinarySortTree{
|
||||
public Node root;
|
||||
|
||||
//查找要删除的节点
|
||||
public Node search(int value){
|
||||
|
||||
if(root ==null){
|
||||
return null;
|
||||
}else {
|
||||
return root.search(value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//查找父节点
|
||||
public Node searchParent(int value){
|
||||
if(root ==null){
|
||||
return null;
|
||||
}else {
|
||||
return root.searchParent(value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*1.返回以node为根节点的二叉排序树的最小节点的值
|
||||
* 2.删除node为根节点的二叉排序树的最小节点
|
||||
* @param node 传入的节点(当做二叉排序树的根节点)
|
||||
* @return 返回以node为根节点的二叉排序树的最小节点的值
|
||||
*/
|
||||
public int delRightTreeMin(Node node){
|
||||
|
||||
Node min =node;
|
||||
//U型你换查找左节点,就会找到最小值
|
||||
while(min.left !=null){
|
||||
min=min.left;
|
||||
}
|
||||
//这时min指向了最小的节点
|
||||
//删除最小节点
|
||||
delNode(min.value);
|
||||
return min.value;
|
||||
|
||||
}
|
||||
|
||||
//删除节点
|
||||
public void delNode(int value){
|
||||
|
||||
if(root ==null){
|
||||
return;
|
||||
}else {
|
||||
|
||||
//1.找到要删除的节点targetNode
|
||||
Node targetNode = search(value);
|
||||
if(targetNode==null){
|
||||
return;
|
||||
}
|
||||
//如果当前二叉排序树只有一个节点
|
||||
if(root.left==null&&root.right==null){
|
||||
root=null;
|
||||
return;
|
||||
}
|
||||
|
||||
//去找到targetNode的父节点
|
||||
Node parent = searchParent(value);
|
||||
|
||||
//如果要删除的节点是叶子节点
|
||||
if(targetNode.left==null&&targetNode.right==null){
|
||||
//判断targetNode是父节点的左子节点,还是右子节点
|
||||
if(parent.left!=null&&parent.left.value==targetNode.value){
|
||||
parent.left=null;
|
||||
}else if(parent.right!=null&&parent.right.value==targetNode.value){
|
||||
parent.right=null;
|
||||
}
|
||||
|
||||
}else if(targetNode.left !=null && targetNode.right!=null){
|
||||
int minVal = delRightTreeMin(targetNode.right);
|
||||
targetNode.value=minVal;
|
||||
|
||||
|
||||
}else {
|
||||
//删除只有一颗子树的节点
|
||||
|
||||
//左子节点
|
||||
if(targetNode.left !=null){
|
||||
if(parent !=null){
|
||||
if(parent.left.value==value){
|
||||
parent.left=targetNode.left;
|
||||
}else {
|
||||
parent.right=targetNode.right;
|
||||
}
|
||||
}else {
|
||||
root=targetNode.left;
|
||||
}
|
||||
|
||||
}else {
|
||||
if(parent !=null){
|
||||
if(parent.left.value==value){
|
||||
parent.left=targetNode.right;
|
||||
}else {
|
||||
parent.right=targetNode.right;
|
||||
}
|
||||
}else {
|
||||
root=targetNode.right;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//添加节点的方法
|
||||
public void add(Node node){
|
||||
if(root==null){
|
||||
root=node;
|
||||
}else {
|
||||
root.add(node);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//中序遍历
|
||||
public void midOrder(){
|
||||
if(root!=null){
|
||||
root.midOrder();
|
||||
}else {
|
||||
System.out.println("当前二叉排序树为空");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Node{
|
||||
|
||||
int value;
|
||||
Node left;
|
||||
Node right;
|
||||
|
||||
public Node(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找要删除的节点
|
||||
* @param value 希望要删除的节点的值
|
||||
* @return 如果找到返回该节点,否则返回null
|
||||
*/
|
||||
//查找要删除的节点
|
||||
public Node search(int value){
|
||||
if(value ==this.value){
|
||||
return this;
|
||||
}else if(value <this.value){
|
||||
//查找的值小于当前节点,想左子树递归查找
|
||||
if(this.left==null){
|
||||
return null;
|
||||
}else {
|
||||
return this.left.search(value);
|
||||
}
|
||||
}else {
|
||||
//查找的值大于等于当前节点,想左子树递归查找
|
||||
if(this.right==null){
|
||||
return null;
|
||||
}else {
|
||||
return this.right.search(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找要删除节点的父节点
|
||||
* @param value 要找到的节点的值
|
||||
* @return 返回要删除节点的父节点,如果没有就返回null
|
||||
*/
|
||||
public Node searchParent(int value){
|
||||
|
||||
if((this.left !=null &&this.left.value==value) ||(this.right !=null &&this.right.value==value)){
|
||||
return this;
|
||||
}else {
|
||||
|
||||
//如果查找的值小于当前节点的值,并且当前节点的左子节点不为空
|
||||
if(this.value>value&&this.left !=null){
|
||||
return this.left.searchParent(value); //向左子树递归查找
|
||||
}else if(this.value<=value&&this.right !=null){
|
||||
return this.right.searchParent(value); //向右子数递归查找
|
||||
}else {
|
||||
return null; //没有找到父节点
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//递归的形式添加节点,满足二叉排序树的要求
|
||||
public void add(Node node){
|
||||
|
||||
if(node == null){
|
||||
return;
|
||||
}
|
||||
|
||||
//判断传入的节点的值和当前
|
||||
if(node.value<this.value){
|
||||
if(this.left==null){
|
||||
this.left=node;
|
||||
}else {
|
||||
this.left.add(node);
|
||||
}
|
||||
}else {
|
||||
if(this.right==null){
|
||||
this.right=node;
|
||||
}else {
|
||||
this.right.add(node);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//中序遍历
|
||||
public void midOrder(){
|
||||
if(this ==null){
|
||||
System.out.println("当前子树为空,无法遍历");
|
||||
}
|
||||
|
||||
if(this.left !=null){
|
||||
this.left.midOrder();
|
||||
}
|
||||
System.out.println(this);
|
||||
if(this.right !=null){
|
||||
this.right.midOrder();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Node{" +
|
||||
"value=" + value +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,216 @@
|
|||
package com.atguigu.graph;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedList;
|
||||
|
||||
public class Graph {
|
||||
|
||||
private ArrayList<String> vertexList; //存储顶点集合
|
||||
private int[][] edges; //存储图对应的邻接矩阵
|
||||
private int numOfEdges; //表示边的数目
|
||||
//定义一个数组Boolean[],记录某个节点是否被访问过
|
||||
private static boolean[] isVisited;
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
int n=5; //节点的个数
|
||||
String vertexValue[] ={"A","B","C","D","E"};
|
||||
//创建图对象
|
||||
Graph graph = new Graph(n);
|
||||
//循环添加顶点
|
||||
for (String vertex : vertexValue) {
|
||||
graph.insertVertex(vertex);
|
||||
}
|
||||
|
||||
//添加边
|
||||
graph.insertEdge(0,1,1); //A-B
|
||||
graph.insertEdge(0,2,1); //A-C
|
||||
graph.insertEdge(1,2,1); //B-C
|
||||
graph.insertEdge(1,3,1); //B-D
|
||||
graph.insertEdge(1,4,1); //B-E
|
||||
|
||||
//显示邻接矩阵
|
||||
graph.showGraph();
|
||||
//graph.DFS();
|
||||
System.out.println("===========");
|
||||
graph.BFS();
|
||||
|
||||
|
||||
}
|
||||
|
||||
//构造器
|
||||
public Graph(int n) {
|
||||
|
||||
//初始化矩阵和vertexList
|
||||
edges = new int[n][n];
|
||||
vertexList = new ArrayList<>(n);
|
||||
numOfEdges = 0;
|
||||
isVisited=new boolean[n];
|
||||
}
|
||||
|
||||
/**
|
||||
* 得到某一个邻接节点的第一个邻接节点的下标
|
||||
* @param index
|
||||
* @return 如果找到返回下标编号,反之返回-1
|
||||
*/
|
||||
public int getFirstNeighbor(int index){
|
||||
|
||||
for (int i = 0; i < vertexList.size(); i++) {
|
||||
if(edges[index][i]>0){
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据前一个邻接节点的下标获取下一个邻接节点
|
||||
* @param preRowIndex 前一个邻接节点的行号
|
||||
* @param preColIndex 前一个邻接节点的列号
|
||||
* @return
|
||||
*/
|
||||
public int getNextNeighbor(int preRowIndex,int preColIndex){
|
||||
for (int j = preColIndex+1; j < vertexList.size(); j++) {
|
||||
if(edges[preRowIndex][j]>0){
|
||||
return j;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 深度优先遍历算法
|
||||
* @param isVisited 查询的是否被访问过的数组
|
||||
* @param i 要开始访问的节点
|
||||
*/
|
||||
public void DFS(boolean[] isVisited,int i){
|
||||
|
||||
//首先访问该节点
|
||||
System.out.print(getValueByIndex(i)+"->");
|
||||
//将节点设置为已经访问过
|
||||
isVisited[i]=true;
|
||||
|
||||
//访问第一个与之连接的节点
|
||||
int firstNeighbor = getFirstNeighbor(i);
|
||||
while (firstNeighbor !=-1){
|
||||
if (!isVisited[firstNeighbor]) {
|
||||
DFS(isVisited,firstNeighbor);
|
||||
}else {
|
||||
firstNeighbor=getNextNeighbor(i,firstNeighbor);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//对DFS进行重载遍历所有的节点,进行DFS(防止不连通图可能没有遍历到的问题)
|
||||
public void DFS(){
|
||||
//遍历所有的节点,进行DFS
|
||||
for (int i = 0; i < getNumOfVertex(); i++) {
|
||||
if(!isVisited[i]){
|
||||
DFS(isVisited,i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//对一个节点进行广度优先遍历
|
||||
public void BFS(boolean[] isVisited,int i){
|
||||
|
||||
int u; //表示队列的头节点对应的下标
|
||||
int w; //表示邻接节点w
|
||||
//队列,节点访问顺序记录
|
||||
LinkedList<Integer> queue = new LinkedList<>();
|
||||
|
||||
//访问节点,输出节点信息
|
||||
System.out.print(getValueByIndex(i)+"=>");
|
||||
//标记为已访问
|
||||
isVisited[i]=true;
|
||||
|
||||
//将节点加入队列
|
||||
queue.addLast(i);
|
||||
|
||||
while (!queue.isEmpty()){
|
||||
|
||||
//取出队列的头节点下标
|
||||
u = queue.removeFirst();
|
||||
//得到第一个邻接节点的下标
|
||||
w=getFirstNeighbor(u);
|
||||
while (w!= -1){
|
||||
//是否访问过
|
||||
if(!isVisited[w]){
|
||||
System.out.print(getValueByIndex(w)+"=>");
|
||||
//标记为已访问过
|
||||
isVisited[w]=true;
|
||||
//入队
|
||||
queue.addLast(w);
|
||||
}else {
|
||||
//查找除w以外的第一个邻接节点的下标
|
||||
w = getNextNeighbor(u, w); //体现出广度优先
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//重载,避免非连接图的情况
|
||||
public void BFS(){
|
||||
|
||||
for (int i = 0; i < getNumOfVertex(); i++) {
|
||||
if(!isVisited[i]){
|
||||
BFS(isVisited,i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 图中常用的方法:
|
||||
* 1.得到节点个数
|
||||
* 2.得到变得数目
|
||||
* 3.返回节点i对应的数据
|
||||
* 4.显示图对应的矩阵
|
||||
*/
|
||||
public int getNumOfVertex(){
|
||||
return vertexList.size();
|
||||
}
|
||||
public int getNumOfEdges(){
|
||||
return numOfEdges;
|
||||
}
|
||||
public String getValueByIndex(int i){
|
||||
return vertexList.get(i);
|
||||
}
|
||||
public int getWeight(int v1,int v2){
|
||||
return edges[v1][v2];
|
||||
}
|
||||
public void showGraph(){
|
||||
if(edges==null){
|
||||
System.out.println("当前图为空");
|
||||
}
|
||||
for (int[] edge : edges) {
|
||||
System.out.println(Arrays.toString(edge));
|
||||
}
|
||||
}
|
||||
|
||||
//插入节点
|
||||
public void insertVertex(String vertex){
|
||||
vertexList.add(vertex);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 添加边
|
||||
* @param v1 要添加边的两个顶点的下标
|
||||
* @param v2
|
||||
* @param weight 权
|
||||
*/
|
||||
public void insertEdge(int v1,int v2,int weight){
|
||||
|
||||
edges[v1][v2]=weight;
|
||||
edges[v2][v1]=weight;
|
||||
numOfEdges++;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,238 @@
|
|||
package com.atguigu.hashtable;
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class HashTableDemo {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//创建一个hashtable
|
||||
HashTable hashTable = new HashTable(7);
|
||||
//编写一个简单菜单
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
String key="";
|
||||
while (true){
|
||||
System.out.println("add:添加雇员");
|
||||
System.out.println("show:显示雇员");
|
||||
System.out.println("find:查找雇员");
|
||||
System.out.println("delete:删除雇员");
|
||||
System.out.println("exit:退出菜单");
|
||||
|
||||
key=scanner.next();
|
||||
switch (key){
|
||||
case "add":
|
||||
System.out.println("输入id:");
|
||||
int id=scanner.nextInt();
|
||||
System.out.println("输入名字:");
|
||||
String name=scanner.next();
|
||||
//创建一个雇员
|
||||
Emp emp = new Emp(id, name);
|
||||
hashTable.add(emp);
|
||||
break;
|
||||
case "show":
|
||||
hashTable.showHashTable();
|
||||
break;
|
||||
case "find":
|
||||
System.out.println("输入要查找的员工id:");
|
||||
int ids =scanner.nextInt();
|
||||
hashTable.find(ids);
|
||||
break;
|
||||
case "delete":
|
||||
System.out.println("输入要删除的员工id:");
|
||||
int nums =scanner.nextInt();
|
||||
hashTable.delete(nums);
|
||||
break;
|
||||
case "exit":
|
||||
scanner.close();
|
||||
System.exit(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 雇员类,包含雇员的所有属性,比如id,name,address等
|
||||
*/
|
||||
class Emp{
|
||||
public int id;
|
||||
public String name;
|
||||
public Emp next; //默认为空
|
||||
|
||||
public Emp(int id, String name) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Emp{" +
|
||||
"id=" + id +
|
||||
", name='" + name + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 创建一个链表,用户存放连续存放各个雇员
|
||||
*/
|
||||
class EmpLinkedList{
|
||||
|
||||
//头指针,head直接指向第一个雇员
|
||||
private Emp head; //默认为null
|
||||
|
||||
/**
|
||||
* 添加雇员到链表中
|
||||
* 说明:添加雇员时,假定id是自增的,总是从小到大,直接加入到本链表的最后即可
|
||||
* @param emp
|
||||
*/
|
||||
public void add(Emp emp){
|
||||
//如果是添加第一条员工
|
||||
if(head==null){
|
||||
head=emp;
|
||||
return;
|
||||
}
|
||||
//如果不是第一个员工,则使用一个辅助指针遍历循环到链表的结尾,再添加上去
|
||||
Emp temp=head;
|
||||
while (temp.next!=null){
|
||||
temp=temp.next;
|
||||
}
|
||||
temp.next=emp;
|
||||
}
|
||||
public void showList(int i){
|
||||
//如果链表没有元素,则打印无元素
|
||||
if(head==null){
|
||||
System.out.printf("第%d链表中暂时没有元素\n",i);
|
||||
return;
|
||||
}
|
||||
//如果有元素,则使用一个辅助变量遍历
|
||||
System.out.printf("第%d链表的信息为:\n",i);
|
||||
Emp temp=head;
|
||||
while (temp!=null){
|
||||
System.out.println(temp);
|
||||
temp=temp.next;
|
||||
}
|
||||
}
|
||||
|
||||
//根据id查找雇员
|
||||
public Emp find(int id){
|
||||
//如果链表为空直接返回null
|
||||
if(head==null){
|
||||
System.out.println("当前链表为空,未查找到相关员工");
|
||||
return null;
|
||||
}
|
||||
//如果链表有员工则构造辅助变量进行查找
|
||||
Emp temp=head;
|
||||
while (temp!=null){
|
||||
if(temp.id==id){
|
||||
return temp;
|
||||
}
|
||||
temp=temp.next;
|
||||
}
|
||||
System.out.println("未查找到相关员工");
|
||||
return null;
|
||||
}
|
||||
|
||||
//根据id删除员工
|
||||
public void delete(int id){
|
||||
//如果链表为空,则无需删除
|
||||
if(head==null){
|
||||
System.out.println("当前链表为空,没有该雇员");
|
||||
return;
|
||||
}
|
||||
if(head.next==null){
|
||||
if(head.id==id){
|
||||
head=null;
|
||||
System.out.println("删除成功,当前链表为空");
|
||||
}
|
||||
}
|
||||
|
||||
//存在则构造辅助指针遍历找到该雇员,并删除
|
||||
Emp temp=head;
|
||||
Boolean flag=false;//构造一个标志是否查找到该员工
|
||||
Boolean tou=false;
|
||||
|
||||
while (temp!=null){
|
||||
if(temp.next==null){
|
||||
break;
|
||||
}
|
||||
if(temp.next.id==id){
|
||||
flag=true;
|
||||
break;
|
||||
}
|
||||
|
||||
temp=temp.next;
|
||||
}
|
||||
if(flag){
|
||||
//找到了
|
||||
temp.next=temp.next.next;
|
||||
System.out.println("找到该员工,并成功删除");
|
||||
}else {
|
||||
System.out.println("链表中不存在该员工");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建一个hashTable管理多条链表
|
||||
*/
|
||||
class HashTable{
|
||||
private EmpLinkedList[] empLinkedListArray;
|
||||
private int size;
|
||||
|
||||
//创建一个构造器初始化链表大小
|
||||
public HashTable(int size) {
|
||||
this.empLinkedListArray = new EmpLinkedList[size];
|
||||
this.size=size;
|
||||
//初始化每一条链表,否则会报空指针异常
|
||||
for (int i = 0; i < size; i++) {
|
||||
empLinkedListArray[i]=new EmpLinkedList();
|
||||
}
|
||||
}
|
||||
//编写一个散列函数
|
||||
public int hashFun(int id){
|
||||
return id%size;
|
||||
}
|
||||
|
||||
//添加雇员
|
||||
public void add(Emp emp){
|
||||
//根据员工的id,得到该员工应该添加到哪个链表
|
||||
int empLinkedListNo = hashFun(emp.id);
|
||||
empLinkedListArray[empLinkedListNo].add(emp);
|
||||
}
|
||||
//遍历所有的链表,即遍历哈希表
|
||||
public void showHashTable(){
|
||||
for (int i = 0; i < empLinkedListArray.length; i++) {
|
||||
empLinkedListArray[i].showList(i);
|
||||
}
|
||||
}
|
||||
//根据id查找雇员
|
||||
public void find(int id){
|
||||
int num=hashFun(id);
|
||||
System.out.println("去查找第"+num+"条链表");
|
||||
Emp emp = empLinkedListArray[num].find(id);
|
||||
if(emp!=null){
|
||||
System.out.println(emp);
|
||||
}
|
||||
|
||||
}
|
||||
//根据id删除员工
|
||||
public void delete(int id){
|
||||
int num=hashFun(id);
|
||||
System.out.println("去第"+num+"条链表删除员工");
|
||||
empLinkedListArray[num].delete(id);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,453 @@
|
|||
package com.atguigu.huffmancode;
|
||||
|
||||
import java.io.*;
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.*;
|
||||
|
||||
public class HuffmanCode {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// String str = "i like like like java do you like a java";
|
||||
// byte[] bytes = str.getBytes();
|
||||
// System.out.println(bytes.length); //40
|
||||
// byte[] huffmanCodesBytes = huffmanZip(bytes);
|
||||
// System.out.println("压缩后的结果:" + Arrays.toString(huffmanCodesBytes) + " 长度=" + huffmanCodesBytes.length);
|
||||
//
|
||||
// //解码
|
||||
// byte[] decode = decode(huffmanCodes, huffmanCodesBytes);
|
||||
// System.out.println(new String(decode));
|
||||
|
||||
//测试压缩文件
|
||||
// String srcFile="D:\\背景和屏保\\code2.png";
|
||||
// String dstFile="D:\\背景和屏保\\dst.zip";
|
||||
// zipFile(srcFile,dstFile);
|
||||
// System.out.println("压缩文件成功");
|
||||
|
||||
//测试解压文件
|
||||
String zipFile="D:\\背景和屏保\\dst.zip";
|
||||
String dstFile ="D:\\背景和屏保\\code3.png";
|
||||
unZipFile(zipFile,dstFile);
|
||||
System.out.println("解压成功");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 编写一个方法,完成对压缩文件的解压
|
||||
* @param zipFile 准备解压的文件
|
||||
* @param dstFile 解压后文件的路径
|
||||
*/
|
||||
public static void unZipFile(String zipFile,String dstFile){
|
||||
|
||||
//定义文件的输入流
|
||||
InputStream inputStream=null;
|
||||
//定义一个对象输入流
|
||||
ObjectInputStream objectInputStream=null;
|
||||
//定义一个文件输出流
|
||||
OutputStream outputStream=null;
|
||||
try {
|
||||
//创建文件输入流
|
||||
inputStream = new FileInputStream(zipFile);
|
||||
//创建一个和fileInputStream关联的对象输入流
|
||||
objectInputStream = new ObjectInputStream(inputStream);
|
||||
//读取byte数组huffmanByte
|
||||
byte[] huffmanBytes = (byte[])objectInputStream.readObject();
|
||||
Map<Byte, String> huffmanCodes = (Map<Byte, String>) objectInputStream.readObject();
|
||||
|
||||
//解码
|
||||
byte[] decode = decode(huffmanCodes, huffmanBytes);
|
||||
|
||||
//将decode数组写入到目标文件
|
||||
outputStream=new FileOutputStream(dstFile);
|
||||
//写输入到dstFile
|
||||
outputStream.write(decode);
|
||||
|
||||
}catch (Exception e){
|
||||
System.out.println(e.getMessage());
|
||||
|
||||
}finally {
|
||||
|
||||
try {
|
||||
outputStream.close();
|
||||
objectInputStream.close();
|
||||
inputStream.close();
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.getMessage());;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 编写方法,将一个文件进行压缩
|
||||
* @param srcFile 传入希望压缩的文件的全路径
|
||||
* @param dstFile 压缩后的压缩文件存放路径
|
||||
*/
|
||||
public static void zipFile(String srcFile,String dstFile){
|
||||
|
||||
//创建输入流
|
||||
FileInputStream fileInputStream =null;
|
||||
//创建输出流
|
||||
OutputStream outputStream=null;
|
||||
ObjectOutputStream objectOutputStream=null;
|
||||
|
||||
try {
|
||||
//创建文件的输入流
|
||||
fileInputStream = new FileInputStream(srcFile);
|
||||
//创建一个和源文件大小一样的byte[];.available()即返回源文件的大小
|
||||
byte[] b = new byte[fileInputStream.available()];
|
||||
//读取文件,存放在b字节数组里面
|
||||
fileInputStream.read(b);
|
||||
|
||||
//对源文件进行压缩
|
||||
byte[] huffmanBytes = huffmanZip(b);
|
||||
|
||||
//创建文件的输出流,存放压缩文件
|
||||
outputStream= new FileOutputStream(dstFile);
|
||||
//创阿金一个核文件输出流关联的ObjectOutputStream
|
||||
objectOutputStream = new ObjectOutputStream(outputStream);
|
||||
//把赫夫曼编码后的字节数组写入压缩文件
|
||||
objectOutputStream.writeObject(huffmanBytes);
|
||||
|
||||
//这里我们一对象流的方式写入赫夫曼编码,是为了以后我们恢复源文件时使用
|
||||
//注意一定要把赫夫曼编码写入压缩文件,否则无法回复
|
||||
objectOutputStream.writeObject(huffmanCodes);
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.getMessage());;
|
||||
}finally {
|
||||
try {
|
||||
objectOutputStream.close();
|
||||
outputStream.close();
|
||||
fileInputStream.close();
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.getMessage());;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 解码思路:
|
||||
* 1.将huffmanCodeBytes [-88,-65,-56,.....]冲洗转成赫夫曼编码对应的二进制的字符串"1010100010111..."
|
||||
*2.赫夫曼编码对应的二进制的字符串"1010100010111..."=>对照赫夫曼编码=>"i like like like java ..."
|
||||
*/
|
||||
|
||||
/**
|
||||
* 编写一个方法,完成对压缩数据的解码
|
||||
*
|
||||
* @param huffmanCodes 哈夫曼编码表
|
||||
* @param huffmanBytes 需要解码的数组
|
||||
* @return 原来字符串对应的数组
|
||||
*/
|
||||
public static byte[] decode(Map<Byte, String> huffmanCodes, byte[] huffmanBytes) {
|
||||
|
||||
//1.先得到huffmanBytes对应的二进制的字符串,形式101010010111...
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
//将byte数组转成二进制的字符串
|
||||
for (int i = 0; i < huffmanBytes.length; i++) {
|
||||
//判断是否是最后一个字节
|
||||
boolean flag = (i == huffmanBytes.length - 1);
|
||||
stringBuilder.append(byteToBitString(!flag, huffmanBytes[i]));
|
||||
|
||||
}
|
||||
//把字符串按照指定的赫夫曼编码进行解码
|
||||
//把赫夫曼编码表进行调换,因为反向查询a ->100 100 ->a
|
||||
Map<String, Byte> map = new HashMap<String, Byte>();
|
||||
for (Map.Entry<Byte, String> entry : huffmanCodes.entrySet()) {
|
||||
map.put(entry.getValue(), entry.getKey());
|
||||
}
|
||||
|
||||
//创建一个集合,byte
|
||||
List<Byte> list = new ArrayList<>();
|
||||
int begin=0;
|
||||
for (int i = 1; i <= stringBuilder.length(); i++) {
|
||||
String substring = stringBuilder.substring(begin, i);
|
||||
if(map.containsKey(substring)){
|
||||
list.add(map.get(substring));
|
||||
begin=i;
|
||||
}
|
||||
}
|
||||
|
||||
//把list中的数据存档在byte[]并返回
|
||||
byte[] b=new byte[list.size()];
|
||||
for (int i = 0; i < b.length; i++) {
|
||||
b[i]=list.get(i);
|
||||
}
|
||||
return b;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 完成对数据的解压:将一个byte转成一个二进制的字符串
|
||||
*
|
||||
* @param b
|
||||
* @param flag 表示是否需要补高位,如果是true,表示需要补高位;如果是最后一个字节无需补高位
|
||||
* @return 是b对应的二进制的字符串(按补码返回)
|
||||
*/
|
||||
public static String byteToBitString(boolean flag, byte b) {
|
||||
//使用变量保存b
|
||||
int temp = b; //将b转成int
|
||||
|
||||
if (flag) {
|
||||
//如果是正数,需要补高位;
|
||||
temp |= 256; //按位或 temp 0000 0001 | 1 0000 0000 =>1 0000 0001
|
||||
}
|
||||
|
||||
String str = Integer.toBinaryString(temp); //返回的是temp对应的二进制的补码
|
||||
|
||||
if (flag) {
|
||||
return str.substring(str.length() - 8);
|
||||
} else {
|
||||
return str;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 赫夫曼压缩
|
||||
* 将前面的方法封装起来,便于调用
|
||||
*
|
||||
* @param bytes 原始的字符串对应的字节数组
|
||||
* @return 经过赫夫曼编码处理后的字节数组
|
||||
*/
|
||||
public static byte[] huffmanZip(byte[] bytes) {
|
||||
|
||||
|
||||
//根据字节数组创建节点
|
||||
List<Node> nodes = getNodes(bytes);
|
||||
|
||||
//根据nodes创建的赫夫曼树
|
||||
Node root = createHuffmanTree(nodes);
|
||||
|
||||
//根据赫夫曼树生成了对应的赫夫曼编码
|
||||
Map<Byte, String> huffmanCodes = getCodes(root);
|
||||
|
||||
//根据赫夫曼编码对原始数据进行压缩
|
||||
byte[] zip = zip(bytes, huffmanCodes);
|
||||
|
||||
return zip;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 编写一个方法,将字符串对象的byte[]数组,通过生成的赫夫曼编码表,返回一个编码表压缩后的byte[]
|
||||
*
|
||||
* @param bytes 袁术的字符串对应的byte[]
|
||||
* @param huffmanCodes 生成的赫夫曼编码的map
|
||||
* @return 返回赫夫曼编码压缩后的byte[] =>即编码后的字节(补码) -> x-1(反码) ->除符号位以外取反(源码)在存在字节数组
|
||||
*/
|
||||
public static byte[] zip(byte[] bytes, Map<Byte, String> huffmanCodes) {
|
||||
|
||||
//1.利用huffmanCodes将bytes转成赫夫曼编码对应的字符串
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
//遍历bytes数组
|
||||
for (byte b : bytes) {
|
||||
stringBuilder.append(huffmanCodes.get(b));
|
||||
}
|
||||
|
||||
//将1010100010111111110...转成byte[]
|
||||
|
||||
//统计返回byte[] huffmanCodeBytes长度
|
||||
int len;
|
||||
if (stringBuilder.length() % 8 == 0) {
|
||||
len = stringBuilder.length() / 8;
|
||||
} else {
|
||||
len = stringBuilder.length() / 8 + 1;
|
||||
}
|
||||
|
||||
//创建存储压缩后的byte数组
|
||||
byte[] huffmanCodeBytes = new byte[len];
|
||||
int index = 0;//记录是第几个Byte
|
||||
for (int i = 0; i < stringBuilder.length(); i += 8) {
|
||||
//每8位构成一个字符
|
||||
String strByte;
|
||||
if (i + 8 > stringBuilder.length()) {
|
||||
strByte = stringBuilder.substring(i);
|
||||
} else {
|
||||
strByte = stringBuilder.substring(i, i + 8);
|
||||
}
|
||||
//将strByte转成一个byte,放入到huffmanCodeBytes
|
||||
huffmanCodeBytes[index++] = (byte) Integer.parseInt(strByte, 2);
|
||||
}
|
||||
return huffmanCodeBytes;
|
||||
|
||||
}
|
||||
|
||||
//生成赫夫曼树对应的赫夫曼编码
|
||||
//思路:
|
||||
//1.将赫夫曼编码表存放在Map<Byte,String>形式
|
||||
// 32->01 97->100 100->11000等等
|
||||
static Map<Byte, String> huffmanCodes = new HashMap<Byte, String>();
|
||||
//2.在生成赫夫曼编码表时,需要去凭借路径,定义一个StringBuilder存储某个叶子结点的路径
|
||||
static StringBuilder stringBuilder = new StringBuilder();
|
||||
|
||||
//为了调用方便,重载getCodes
|
||||
public static Map<Byte, String> getCodes(Node root) {
|
||||
if (root == null) {
|
||||
return null;
|
||||
}
|
||||
//处理root的左子树
|
||||
getCodes(root.left, "0", stringBuilder);
|
||||
getCodes(root.right, "1", stringBuilder);
|
||||
return huffmanCodes;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将传入node节点的左右叶子结点的赫夫曼编码得到,并放入到huffmanCodes集合
|
||||
*
|
||||
* @param node 传入的节点
|
||||
* @param code 路径:左子节点是0,右子节点是1
|
||||
* @param stringBuilder 用于拼接路径
|
||||
*/
|
||||
public static void getCodes(Node node, String code, StringBuilder stringBuilder) {
|
||||
StringBuilder stringBuilder1 = new StringBuilder(stringBuilder);
|
||||
//将code加入到StringBuild1
|
||||
stringBuilder1.append(code);
|
||||
if (node != null) {
|
||||
//判断当前node是叶子结点还是非叶子节点
|
||||
if (node.data == null) {
|
||||
//向左递归递归
|
||||
getCodes(node.left, "0", stringBuilder1);
|
||||
//向右递归
|
||||
getCodes(node.right, "1", stringBuilder1);
|
||||
} else {
|
||||
//说明是一个叶子结点,就表示找到某个叶子结点的最后
|
||||
huffmanCodes.put(node.data, stringBuilder1.toString());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//前序遍历
|
||||
public static void preOrder(Node root) {
|
||||
|
||||
if (root == null) {
|
||||
System.out.println("当前树为空,无法遍历");
|
||||
} else {
|
||||
root.preOrder();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static Node createHuffmanTree(List<Node> nodes) {
|
||||
|
||||
while (nodes.size() > 1) {
|
||||
|
||||
//从小到大排序
|
||||
Collections.sort(nodes);
|
||||
|
||||
//取出第一课最小的二叉树
|
||||
Node left = nodes.get(0);
|
||||
Node right = nodes.get(1);
|
||||
|
||||
//创建一颗新的二叉树,他的根节点没有data,只有权值
|
||||
Node parent = new Node(null, left.weight + right.weight);
|
||||
parent.left = left;
|
||||
parent.right = right;
|
||||
|
||||
//将已经处理的两个二叉树从nodes删除
|
||||
nodes.remove(left);
|
||||
nodes.remove(right);
|
||||
//将新的二叉树加入到nodes
|
||||
nodes.add(parent);
|
||||
|
||||
}
|
||||
return nodes.get(0);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建list<node>
|
||||
*
|
||||
* @param bytes 接受的字节数组
|
||||
* @return List[ Node[date=97,weight=5] ,Node[date=32,weight=3],...]
|
||||
*/
|
||||
public static List<Node> getNodes(byte[] bytes) {
|
||||
|
||||
//创建一个ArrayList
|
||||
ArrayList<Node> nodes = new ArrayList<Node>();
|
||||
|
||||
//存储每一个byte出现的次数
|
||||
//遍历bytes,统计每一个byte出现的次数 ->map[key,value]
|
||||
Map<Byte, Integer> counts = new HashMap<>();
|
||||
for (byte b : bytes) {
|
||||
Integer count = counts.get(b);
|
||||
if (count == null) {
|
||||
counts.put(b, 1);
|
||||
} else {
|
||||
counts.put(b, count + 1);
|
||||
}
|
||||
}
|
||||
|
||||
//把每一个键值对转成一个Node对象,并加入到nodes集合
|
||||
for (Map.Entry<Byte, Integer> entry : counts.entrySet()) {
|
||||
nodes.add(new Node(entry.getKey(), entry.getValue()));
|
||||
}
|
||||
|
||||
|
||||
return nodes;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//创建Node,带数据和权值
|
||||
class Node implements Comparable<Node> {
|
||||
|
||||
Byte data; //存放时数据本身,比如'a' =>97 ' ' =>32
|
||||
int weight; //权值,表示字符出现的次数
|
||||
Node left;
|
||||
Node right;
|
||||
|
||||
public Node(Byte data, int weight) {
|
||||
this.data = data;
|
||||
this.weight = weight;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int compareTo(Node o) {
|
||||
//从小到大排序
|
||||
return this.weight - o.weight;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Node{" +
|
||||
"data=" + data +
|
||||
", weight=" + weight +
|
||||
'}';
|
||||
}
|
||||
|
||||
//前序遍历
|
||||
public void preOrder() {
|
||||
|
||||
System.out.println(this);
|
||||
if (this.left != null) {
|
||||
this.left.preOrder();
|
||||
}
|
||||
if (this.right != null) {
|
||||
this.right.preOrder();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,108 @@
|
|||
package com.atguigu.huffmantree;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
||||
public class HuffmanTree {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
int arr[] ={13,7,8,3,29,6,1};
|
||||
Node root = createHuffmanTree(arr);
|
||||
preOrder(root);
|
||||
|
||||
}
|
||||
|
||||
//编写一个前序遍历的方法
|
||||
public static void preOrder(Node root){
|
||||
if(root !=null){
|
||||
root.preOrder();
|
||||
}else {
|
||||
System.out.println("当前树为空,无法遍历");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 创建赫夫曼树的方法
|
||||
* @param arr 需要变为赫夫曼树的数组
|
||||
* @return 赫夫曼树的根节点
|
||||
*/
|
||||
public static Node createHuffmanTree(int[] arr){
|
||||
|
||||
//(1)为了操作方便,将元素放进ArrayList
|
||||
ArrayList<Node> nodes = new ArrayList<>();
|
||||
for (int value : arr) {
|
||||
nodes.add(new Node(value));
|
||||
}
|
||||
|
||||
//处理过程是一个循环过程
|
||||
while(nodes.size()>1){
|
||||
//从小到大排序
|
||||
Collections.sort(nodes);
|
||||
|
||||
|
||||
//取出根节点权值最小的两颗二叉树
|
||||
Node left=nodes.get(0);
|
||||
Node right=nodes.get(1);
|
||||
|
||||
//构建一颗新的二叉树
|
||||
Node parent =new Node(left.value+right.value);
|
||||
parent.left=left;
|
||||
parent.right=right;
|
||||
|
||||
//从ArrayList中删除处理过的二叉树
|
||||
nodes.remove(left);
|
||||
nodes.remove(right);
|
||||
|
||||
//将parent将入到node
|
||||
nodes.add(parent);
|
||||
}
|
||||
|
||||
//返回赫夫曼树的root节点
|
||||
return nodes.get(0);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//创建节点类,实现Comparable接口
|
||||
class Node implements Comparable<Node>{
|
||||
|
||||
int value; //节点权值
|
||||
Node left; //指向左子节点
|
||||
Node right; //指向右子节点
|
||||
|
||||
//前序遍历
|
||||
public void preOrder(){
|
||||
|
||||
System.out.println(this);
|
||||
if(this.left !=null){
|
||||
this.left.preOrder();
|
||||
}
|
||||
if(this.right !=null){
|
||||
this.right.preOrder();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public Node(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Node{" +
|
||||
"value=" + value +
|
||||
'}';
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int compareTo(Node o) {
|
||||
return this.value-o.value;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,240 @@
|
|||
package com.atguigu.linkedlist;
|
||||
|
||||
|
||||
import com.sun.org.apache.xpath.internal.operations.Bool;
|
||||
import sun.text.SupplementaryCharacterData;
|
||||
|
||||
import javax.swing.text.StyledEditorKit;
|
||||
|
||||
/**
|
||||
* 双向链表的增删改查
|
||||
*/
|
||||
public class DoubleLinkedListDemo {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//测试
|
||||
System.out.println("双向链表的测试");
|
||||
//创建节点
|
||||
HeroNode hero1 = new HeroNode(1, "宋江", "及时雨");
|
||||
HeroNode hero2 = new HeroNode(2, "卢俊义", "玉麒麟");
|
||||
HeroNode hero3 = new HeroNode(3, "吴用", "智多星");
|
||||
HeroNode hero4 = new HeroNode(4, "林冲", "豹子头");
|
||||
|
||||
//创建链表
|
||||
DoubleLinkedList doubleLinkedList =new DoubleLinkedList();
|
||||
doubleLinkedList.addByOrder(hero4);
|
||||
doubleLinkedList.addByOrder(hero2);
|
||||
doubleLinkedList.addByOrder(hero1);
|
||||
doubleLinkedList.addByOrder(hero3);
|
||||
|
||||
//显示
|
||||
doubleLinkedList.showDoubleLinkedList();
|
||||
|
||||
//修改
|
||||
HeroNode newHeroNode = new HeroNode(4, "公孙胜", "入云龙");
|
||||
doubleLinkedList.update(newHeroNode);
|
||||
System.out.println("修改后的链表");
|
||||
doubleLinkedList.showDoubleLinkedList();
|
||||
|
||||
//删除
|
||||
doubleLinkedList.delete(3);
|
||||
System.out.println("删除后的链表情况:");
|
||||
doubleLinkedList.showDoubleLinkedList();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static class DoubleLinkedList{
|
||||
|
||||
//先初始化一个头结点,头结点不要动,不存放具体的数据
|
||||
private static HeroNode head =new HeroNode(0,"","");
|
||||
|
||||
//遍历双向链表的方法
|
||||
public static void showDoubleLinkedList(){
|
||||
|
||||
if(head == null){
|
||||
System.out.println("链表为空");
|
||||
return;
|
||||
}
|
||||
//构造一个辅助变量用于遍历
|
||||
HeroNode temp =head.next;
|
||||
|
||||
while(true){
|
||||
|
||||
//判断是否到达了最后
|
||||
if(temp ==null){
|
||||
break;
|
||||
}
|
||||
System.out.println(temp);
|
||||
temp =temp.next;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//加一个数据添加到双向链表的末尾
|
||||
public static void add(HeroNode data){
|
||||
|
||||
HeroNode temp =head;
|
||||
while (true){
|
||||
if(temp.next ==null){
|
||||
break;
|
||||
}
|
||||
temp=temp.next;
|
||||
}
|
||||
//形成一个双向链表
|
||||
temp.next=data;
|
||||
data.pre=temp;
|
||||
}
|
||||
|
||||
|
||||
//按照编号顺序来添加
|
||||
public static void addByOrder(HeroNode data){
|
||||
|
||||
HeroNode temp =head;
|
||||
Boolean flag =false;
|
||||
|
||||
while(true){
|
||||
|
||||
if(temp.next==null){
|
||||
break;
|
||||
}
|
||||
if(temp.next.no>data.no){
|
||||
|
||||
break;
|
||||
}
|
||||
if(temp.no == data.no){
|
||||
System.out.println("编号和节点重复,无法加入");
|
||||
flag =true;
|
||||
return;
|
||||
}
|
||||
temp=temp.next;
|
||||
}
|
||||
if(!flag){
|
||||
if(temp.next!=null){
|
||||
temp.next.pre=data;
|
||||
data.next=temp.next;
|
||||
}
|
||||
data.pre=temp;
|
||||
temp.next=data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
//对双向链表的相同编号数据进行修改
|
||||
public static void update(HeroNode data){
|
||||
|
||||
if(head.next == null){
|
||||
System.out.println("链表为空");
|
||||
return;
|
||||
}
|
||||
|
||||
HeroNode temp =head.next;
|
||||
Boolean flag =false;
|
||||
|
||||
while (true){
|
||||
|
||||
if(temp ==null){
|
||||
System.out.printf("未查找到相同编号%d的节点,无法修改\n",data.no);
|
||||
break;
|
||||
}
|
||||
if(temp.no==data.no){
|
||||
flag =true;
|
||||
break;
|
||||
}
|
||||
temp=temp.next;
|
||||
}
|
||||
|
||||
if(flag){
|
||||
System.out.println("找到了");
|
||||
temp.nickname=data.nickname;
|
||||
temp.name =data.name;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//从双向链表中删除一个节点
|
||||
public static void delete(int no){
|
||||
|
||||
if(head.next == null){
|
||||
System.out.println("链表为空,无法删除");
|
||||
return;
|
||||
}
|
||||
|
||||
boolean flag =false;
|
||||
HeroNode temp =head;
|
||||
|
||||
while (true){
|
||||
|
||||
if(head.next == null){
|
||||
System.out.printf("未找到编号为%d的节点\n",no);
|
||||
}
|
||||
if(temp.no == no){
|
||||
flag =true;
|
||||
break;
|
||||
}
|
||||
temp =temp.next;
|
||||
}
|
||||
if(flag){
|
||||
temp.pre.next=temp.next;
|
||||
//如果是最后一个节点,就不需要执行否则会出现空指针异常
|
||||
if(temp.next !=null){
|
||||
temp.next.pre = temp.pre;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 创建一个双向链表的类
|
||||
*/
|
||||
public static class HeroNode{
|
||||
private int no;
|
||||
private String name;
|
||||
private String nickname;
|
||||
private HeroNode next; //指向下一个节点,默认为null
|
||||
private HeroNode pre; //指向前一个节点,默认为null
|
||||
|
||||
public HeroNode() {
|
||||
}
|
||||
|
||||
public HeroNode(int no, String name, String nickname, HeroNode next, HeroNode pre) {
|
||||
this.no = no;
|
||||
this.name = name;
|
||||
this.nickname = nickname;
|
||||
this.next = next;
|
||||
this.pre = pre;
|
||||
}
|
||||
|
||||
public HeroNode(int no, String name, String nickname) {
|
||||
this.no = no;
|
||||
this.name = name;
|
||||
this.nickname = nickname;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "HeroNode{" +
|
||||
"no=" + no +
|
||||
", name='" + name + '\'' +
|
||||
", nickname='" + nickname + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,174 @@
|
|||
package com.atguigu.linkedlist;
|
||||
|
||||
public class Josephu {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//测试构建环形链表和遍历
|
||||
CircleSingleLinkedList circleSingleLinkedList = new CircleSingleLinkedList();
|
||||
|
||||
circleSingleLinkedList.addBoy(125); //加入五个小孩节点
|
||||
circleSingleLinkedList.showBoys();
|
||||
|
||||
//测试小孩出圈是否正确
|
||||
circleSingleLinkedList.countBoy(10,20,125);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
//创建一个环形的单向链表
|
||||
public static class CircleSingleLinkedList {
|
||||
|
||||
//创建一个first节点,当前没有编号
|
||||
private static Boy first = new Boy(-1);
|
||||
|
||||
//添加小孩节点,构建成一个环形的链表
|
||||
public static void addBoy(int nums) {
|
||||
|
||||
//num做一个数据校验
|
||||
if (nums < 2) {
|
||||
System.out.println("nums的值不正确");
|
||||
return;
|
||||
}
|
||||
//创建辅助变量,帮助构建环形链表
|
||||
Boy curBoy = null;
|
||||
|
||||
//使用for来创建环形链表
|
||||
for (int i = 1; i <= nums; i++) {
|
||||
//根据编号,创建小孩节点
|
||||
Boy boy=new Boy(i);
|
||||
//如果是第一个小孩
|
||||
if(i == 1){
|
||||
first=boy;
|
||||
first.setNext(first); //自己构成一个环
|
||||
curBoy=first;
|
||||
}else {
|
||||
curBoy.setNext(boy);
|
||||
boy.setNext(first);
|
||||
curBoy=boy;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//遍历环形链表
|
||||
public static void showBoys(){
|
||||
|
||||
//判断链表是否为空
|
||||
if(first == null){
|
||||
System.out.println("没有任何小孩");
|
||||
return;
|
||||
}
|
||||
//构造一个辅助指针完成遍历
|
||||
Boy curBoy =first;
|
||||
|
||||
while(true){
|
||||
System.out.printf("小孩的编号%d\n",curBoy.getNo());
|
||||
if(curBoy.getNext() == first){
|
||||
//遍历完毕
|
||||
break;
|
||||
}
|
||||
curBoy=curBoy.getNext();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据用户的输入,计算小孩出圈的顺序
|
||||
* @param startNo 表示从第几个小孩开始输数数
|
||||
* @param countNum 表示数几下
|
||||
* @param nums 表示最开始有多少小孩在圈里
|
||||
*/
|
||||
public static void countBoy(int startNo,int countNum,int nums){
|
||||
|
||||
//先对数据进行检验
|
||||
if(first ==null ||startNo <1 ||startNo>nums){
|
||||
System.out.println("参数输入有误,请重新输入");
|
||||
return;
|
||||
}
|
||||
|
||||
//创建一个辅助指针,帮助完成小孩出圈
|
||||
Boy helper =first;
|
||||
|
||||
//通过循环让其事先指向环形链表的最后这个节点
|
||||
while(true){
|
||||
if(helper.getNext() ==first){
|
||||
//helper指向了最后的小孩节点
|
||||
break;
|
||||
}
|
||||
helper =helper.getNext();
|
||||
}
|
||||
|
||||
//从第k个小孩开始报数,先让first和helper移动k-1次
|
||||
for (int i = 0; i < startNo - 1; i++) {
|
||||
first=first.getNext();
|
||||
helper=helper.getNext();
|
||||
}
|
||||
|
||||
//当小孩报数时,first和helper指针同时移动m-1次,然后出圈
|
||||
//直到圈中只有一个节点
|
||||
while(true){
|
||||
if(helper ==first){
|
||||
|
||||
//圈中只有一个节点
|
||||
break;
|
||||
}
|
||||
//first和helper指针同时移动m-1次,然后出圈
|
||||
for (int i = 0; i < countNum - 1; i++) {
|
||||
first=first.getNext();
|
||||
helper=helper.getNext();
|
||||
}
|
||||
//这时first指向的节点,就是要出圈的小孩节点
|
||||
System.out.printf("小孩%d出圈\n",first.getNo());
|
||||
//这时将first指向的小孩节点出圈
|
||||
first=first.getNext();
|
||||
helper.setNext(first);
|
||||
|
||||
|
||||
}
|
||||
System.out.printf("最后留在圈中的小孩编号%d\n",first.getNo());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//创建一个Boy类,表示一个节点
|
||||
public static class Boy {
|
||||
|
||||
private int no; //编号
|
||||
private Boy next; //指向下一个节点,默认null
|
||||
|
||||
public Boy(int no) {
|
||||
this.no = no;
|
||||
}
|
||||
|
||||
public Boy(int no, Boy next) {
|
||||
this.no = no;
|
||||
this.next = next;
|
||||
}
|
||||
|
||||
public int getNo() {
|
||||
return no;
|
||||
}
|
||||
|
||||
public void setNo(int no) {
|
||||
this.no = no;
|
||||
}
|
||||
|
||||
public Boy getNext() {
|
||||
return next;
|
||||
}
|
||||
|
||||
public void setNext(Boy next) {
|
||||
this.next = next;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Boy{" +
|
||||
"no=" + no +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,466 @@
|
|||
package com.atguigu.linkedlist;
|
||||
|
||||
import com.sun.corba.se.impl.resolver.SplitLocalResolverImpl;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.Stack;
|
||||
|
||||
public class SingleLinkedListApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//进行测试
|
||||
//先创建节点
|
||||
HeroNode hero1 = new HeroNode(1, "宋江", "及时雨");
|
||||
HeroNode hero2 = new HeroNode(2, "卢俊义", "玉麒麟");
|
||||
HeroNode hero3 = new HeroNode(3, "吴用", "智多星");
|
||||
HeroNode hero4 = new HeroNode(4, "林冲", "豹子头");
|
||||
|
||||
HeroNode hero5 = new HeroNode(5, "宋江", "及时雨");
|
||||
HeroNode hero6 = new HeroNode(6, "卢俊义", "玉麒麟");
|
||||
HeroNode hero7 = new HeroNode(7, "吴用", "智多星");
|
||||
HeroNode hero8 = new HeroNode(8, "林冲", "豹子头");
|
||||
|
||||
//创建一个链表
|
||||
SingleLinkedList singleLinkedList = new SingleLinkedList();
|
||||
SingleLinkedList singleLinkedList1 =new SingleLinkedList();
|
||||
|
||||
//加入
|
||||
singleLinkedList.addByOrder(hero2);
|
||||
singleLinkedList.addByOrder(hero5);
|
||||
singleLinkedList.addByOrder(hero1);
|
||||
singleLinkedList.addByOrder(hero6);
|
||||
|
||||
singleLinkedList1.addByOrder(hero4);
|
||||
singleLinkedList1.addByOrder(hero3);
|
||||
singleLinkedList1.addByOrder(hero8);
|
||||
singleLinkedList1.addByOrder(hero7);
|
||||
|
||||
// //测试单链表的反转
|
||||
// System.out.println("原来的链表:");
|
||||
// singleLinkedList.showLinkedList();
|
||||
//
|
||||
// System.out.println("反转单链表:");
|
||||
// reverseList(singleLinkedList.head);
|
||||
// singleLinkedList.showLinkedList();
|
||||
//
|
||||
// //逆序打印单链表
|
||||
// System.out.println("逆序打印单链表,没有改变单链表的结构:");
|
||||
// reversePrint(singleLinkedList.head);
|
||||
|
||||
//两有序链表的合并
|
||||
HeroNode combine = combine1(singleLinkedList1.head, singleLinkedList.head);
|
||||
|
||||
|
||||
|
||||
//
|
||||
// //显示
|
||||
// singleLinkedList.showLinkedList();
|
||||
//
|
||||
// //测试修改节点的代码
|
||||
// HeroNode newHeroNode = new HeroNode(2, "小卢", "玉麒麟~~");
|
||||
// singleLinkedList.update(newHeroNode);
|
||||
//
|
||||
// //修改后的链表
|
||||
// System.out.println("修改后的链表情况:");
|
||||
// singleLinkedList.showLinkedList();
|
||||
//
|
||||
// //测试删除
|
||||
// System.out.println("删除后的链表情况:");
|
||||
// singleLinkedList.delete(1);
|
||||
// singleLinkedList.delete(4);
|
||||
// singleLinkedList.showLinkedList();
|
||||
//
|
||||
// //测试单链表汇总有效节点的个数
|
||||
// System.out.println("有效节点的个数:" + getLength(singleLinkedList.head));
|
||||
//
|
||||
// //测试是否能得到倒数第k的节点
|
||||
// HeroNode res =findLastIndexNode(singleLinkedList.head,2);
|
||||
// System.out.println("res="+res);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 合并两个有序单链表
|
||||
*/
|
||||
public static HeroNode combine1(HeroNode head1,HeroNode head2){
|
||||
|
||||
if(head1.next == null && head2.next ==null){
|
||||
System.out.println("两链表为空,无法合并");
|
||||
return null;
|
||||
}else if(head1.next == null) {
|
||||
return head2;
|
||||
}else if(head2.next == null){
|
||||
return head1;
|
||||
}
|
||||
|
||||
HeroNode temp1 =head1.next;
|
||||
HeroNode temp2 =head2.next;
|
||||
HeroNode next =null;
|
||||
SingleLinkedList combiner =new SingleLinkedList();
|
||||
HeroNode combiner1 =combiner.head;
|
||||
|
||||
while(temp1 !=null &&temp2 !=null){
|
||||
|
||||
if(temp1.no >=temp2.no){
|
||||
next =temp2.next;
|
||||
//temp2 =combiner.next;
|
||||
combiner1.next =temp2;
|
||||
temp2=next;
|
||||
combiner1=combiner1.next;
|
||||
}else {
|
||||
next =temp1.next;
|
||||
//temp1 =combiner.next;
|
||||
combiner1.next =temp1;
|
||||
temp1=next;
|
||||
combiner1=combiner1.next;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
while(temp1 ==null){
|
||||
if(temp2 !=null){
|
||||
next =temp2.next;
|
||||
combiner1.next=temp2;
|
||||
temp2 =next;
|
||||
combiner1=combiner1.next;
|
||||
}else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(temp2 ==null){
|
||||
if(temp1 !=null){
|
||||
next =temp1.next;
|
||||
combiner1.next=temp1;
|
||||
temp1 =next;
|
||||
combiner1=combiner1.next;
|
||||
}else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
System.out.println("合并后的链表为:");
|
||||
combiner.showLinkedList();
|
||||
return combiner.head;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 使用方式2栈逆序打印单向链表
|
||||
*
|
||||
*/
|
||||
public static void reversePrint(HeroNode head){
|
||||
if(head.next ==null){
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//创建一个栈,将各个节点压入栈
|
||||
Stack<HeroNode> stack = new Stack<HeroNode>();
|
||||
HeroNode temp =head.next;
|
||||
//将链表的所有节点压入站中
|
||||
while(temp != null){
|
||||
stack.push(temp);
|
||||
temp=temp.next; //temp后移
|
||||
}
|
||||
//将占中的节点进行打印,pop出栈
|
||||
while(stack.size()>0){
|
||||
System.out.println(stack.pop()); //stack的特点是先进后出
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 将链表反转
|
||||
* @param head
|
||||
*/
|
||||
public static void reverseList(HeroNode head){
|
||||
|
||||
if(head.next ==null ||head.next.next ==null){
|
||||
return;
|
||||
}
|
||||
|
||||
//定义一个辅助变量,遍历原来的链表
|
||||
HeroNode temp=head.next;
|
||||
//定义指向当前节点的下一个
|
||||
HeroNode next =null;
|
||||
//定义一个反转头
|
||||
HeroNode reverseHead = new HeroNode();
|
||||
//遍历原来的链表,每遍历一个节点就将其取出,并放在新的链表reverseHead的最前端
|
||||
|
||||
while(temp != null){
|
||||
next=temp.next; //先暂存当前节点的下一个节点,后面使用
|
||||
temp.next=reverseHead.next; //将temp的下一个节点指向新的链表的最前端
|
||||
reverseHead.next=temp; //将temp连接到新的链表上
|
||||
temp=next; //让temp后移
|
||||
}
|
||||
|
||||
|
||||
|
||||
//将head.next指向reverseHead.next,实现单链表的反转
|
||||
head.next =reverseHead.next;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找单链表中的倒数第k个节点
|
||||
* 思路:
|
||||
* 1.编写一个方法,接受head节点,同时接受一个index
|
||||
* 2.index表示是倒数第index个节点
|
||||
* 3.先把链表从头到尾遍历,得到链表的总长度getLength
|
||||
* 4.得到size后,从链表的第一个开始遍历(size-index)个,就可以得到
|
||||
* 5.如果找到了,则返回该节点,否则返回null
|
||||
*/
|
||||
public static HeroNode findLastIndexNode(HeroNode head, int index) {
|
||||
|
||||
//如果链表为空,返回null
|
||||
if (head.next == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
//第一次遍历得到链表的长度(节点个数)
|
||||
int size = getLength(head);
|
||||
//第二次遍历xize-index位置,就是我们倒数第k个节点
|
||||
//先做一个index的校验
|
||||
if (index <= 0 || index > size) {
|
||||
return null;
|
||||
}
|
||||
|
||||
HeroNode temp = head.next;
|
||||
for (int i = 0; i < size - index;i++){
|
||||
temp=temp.next;
|
||||
}
|
||||
return temp;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 方法:获取到单链表的节点的个数(如果是带头节点的链表,需求不统计头节点)
|
||||
*
|
||||
* @param head 链表的头节点
|
||||
* @return 有效头节点的个数
|
||||
*/
|
||||
public static int getLength(HeroNode head) {
|
||||
|
||||
if (head.next == null) {
|
||||
return 0;
|
||||
}
|
||||
HeroNode temp = head.next; //没有统计头节点
|
||||
int count = 0;
|
||||
while (true) {
|
||||
if (temp == null) {
|
||||
break;
|
||||
}
|
||||
count++;
|
||||
temp = temp.next;
|
||||
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
//定义一个SingleLinkedList管理我们的英雄
|
||||
public static class SingleLinkedList {
|
||||
//先初始化一个头节点,头节点不动,不存放具体的数据
|
||||
private HeroNode head = new HeroNode(0, "", "");
|
||||
|
||||
|
||||
/**
|
||||
* 添加节点到单向链表
|
||||
* 思路:当不考虑编号顺序时
|
||||
* 1.找到当前链表的最后节点
|
||||
* 2.将最后这个节点的next指向新的节点
|
||||
*
|
||||
* @param data
|
||||
*/
|
||||
public void add(HeroNode data) {
|
||||
|
||||
//因为head节点不能懂,因此需要一个辅助变量temp
|
||||
HeroNode temp = head;
|
||||
//遍历链表,找到最后
|
||||
|
||||
while (true) {
|
||||
//找到链表的最后
|
||||
if (temp.next == null) {
|
||||
break;
|
||||
}
|
||||
//如果没有找到,就将其后移
|
||||
temp = temp.next;
|
||||
}
|
||||
//当退出循环,就指向了最后
|
||||
//将最后这个节点的next指向新的节点
|
||||
temp.next = data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 按顺序添加节点
|
||||
* 如果这个排名已存在,则报出添加失败
|
||||
*/
|
||||
public void addByOrder(HeroNode data) {
|
||||
|
||||
//通过辅助变量老帮助找到添加位置
|
||||
HeroNode temp = head;
|
||||
boolean flag = false; //flag表示添加的编号是否存在,默认为false
|
||||
|
||||
while (true) {
|
||||
|
||||
if (temp.next == null) {
|
||||
break;
|
||||
}
|
||||
if (temp.next.no > data.no) {
|
||||
//位置找到了
|
||||
break;
|
||||
} else if (temp.next.no == data.no) {
|
||||
//编号已存在
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
temp = temp.next;
|
||||
}
|
||||
//判断flag的值
|
||||
if (flag) {
|
||||
System.out.printf("准备插入的英雄的编号%d已经存在,不能加入\n", data.no);
|
||||
} else {
|
||||
//插入到temp的后面
|
||||
data.next = temp.next;
|
||||
temp.next = data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改节点的信息,根据编号来修改,即no编号不能修改
|
||||
* 说明:
|
||||
* 1.根据newHeroNode的no来修改即可
|
||||
*
|
||||
* @param newHeroNode
|
||||
*/
|
||||
public void update(HeroNode newHeroNode) {
|
||||
//判断是否为空
|
||||
if (head.next == null) {
|
||||
System.out.println("链表为空");
|
||||
return;
|
||||
}
|
||||
//找到需要修改的节点,根据no编号
|
||||
//定义一个辅助变量
|
||||
HeroNode temp = head.next;
|
||||
boolean flag = false; //表示是否找到了该节点
|
||||
while (true) {
|
||||
if (temp == null) {
|
||||
break; //链表已经遍历完
|
||||
}
|
||||
if (temp.no == newHeroNode.no) {
|
||||
//找到了
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
temp = temp.next;
|
||||
}
|
||||
//根据flag判断是否找到要修改的节点
|
||||
if (flag = true) {
|
||||
System.out.println("找到要修改的节点,并修改");
|
||||
temp.name = newHeroNode.name;
|
||||
temp.nickname = newHeroNode.nickname;
|
||||
} else {
|
||||
System.out.printf("没有找到编号%d的节点,不能修改\n", newHeroNode.no);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据编号删除节点
|
||||
*/
|
||||
public void delete(int no) {
|
||||
|
||||
boolean flag = false;
|
||||
|
||||
if (head.next == null) {
|
||||
System.out.println("链表为空");
|
||||
}
|
||||
|
||||
HeroNode temp = head;
|
||||
while (true) {
|
||||
if (temp.next == null) {
|
||||
break;
|
||||
}
|
||||
if (temp.next.no == no) {
|
||||
System.out.println("找到了");
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
temp = temp.next;
|
||||
}
|
||||
if (flag) {
|
||||
temp.next = temp.next.next;
|
||||
} else {
|
||||
System.out.println("链表中不存在该编号");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示链表
|
||||
*/
|
||||
public void showLinkedList() {
|
||||
//判断链表是否为空
|
||||
if (head.next == null) {
|
||||
System.out.println("链表为空");
|
||||
return;
|
||||
}
|
||||
//遍历
|
||||
HeroNode temp = head.next;
|
||||
while (true) {
|
||||
//判断是否到链表的结尾
|
||||
if (temp == null) {
|
||||
break;
|
||||
}
|
||||
//输出节点信息
|
||||
System.out.println(temp);
|
||||
temp = temp.next;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//定义HeroNode,每个HeroNode对象就是一个节点
|
||||
public static class HeroNode {
|
||||
|
||||
private int no;
|
||||
private String name;
|
||||
public String nickname;
|
||||
private HeroNode next;
|
||||
|
||||
public HeroNode() {
|
||||
}
|
||||
|
||||
public HeroNode(int no, String name, String nickname) {
|
||||
this.no = no;
|
||||
this.name = name;
|
||||
this.nickname = nickname;
|
||||
}
|
||||
|
||||
public HeroNode(int no, String name, String nickname, HeroNode next) {
|
||||
this.no = no;
|
||||
this.name = name;
|
||||
this.nickname = nickname;
|
||||
this.next = next;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "HeroNode{" +
|
||||
"no=" + no +
|
||||
", name='" + name + '\'' +
|
||||
", nickname='" + nickname + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,240 @@
|
|||
package com.atguigu.linkedlist;
|
||||
|
||||
public class SingleLinkedListDemo {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//进行测试
|
||||
//先创建节点
|
||||
HeroNode hero1 = new HeroNode(1, "宋江", "及时雨");
|
||||
HeroNode hero2 = new HeroNode(2, "卢俊义", "玉麒麟");
|
||||
HeroNode hero3 = new HeroNode(3, "吴用", "智多星");
|
||||
HeroNode hero4 = new HeroNode(4, "林冲", "豹子头");
|
||||
|
||||
//创建一个链表
|
||||
SingleLinkedList singleLinkedList = new SingleLinkedList();
|
||||
//加入
|
||||
singleLinkedList.addByOrder(hero1);
|
||||
singleLinkedList.addByOrder(hero4);
|
||||
singleLinkedList.addByOrder(hero2);
|
||||
singleLinkedList.addByOrder(hero3);
|
||||
|
||||
//显示
|
||||
singleLinkedList.showLinkedList();
|
||||
|
||||
//测试修改节点的代码
|
||||
HeroNode newHeroNode = new HeroNode(2, "小卢", "玉麒麟~~");
|
||||
singleLinkedList.update(newHeroNode);
|
||||
|
||||
//修改后的链表
|
||||
System.out.println("修改后的链表情况:");
|
||||
singleLinkedList.showLinkedList();
|
||||
|
||||
//测试删除
|
||||
System.out.println("删除后的链表情况:");
|
||||
singleLinkedList.delete(1);
|
||||
singleLinkedList.delete(4);
|
||||
singleLinkedList.delete(2);
|
||||
singleLinkedList.delete(3);
|
||||
singleLinkedList.showLinkedList();
|
||||
|
||||
}
|
||||
|
||||
//定义一个SingleLinkedList管理我们的英雄
|
||||
public static class SingleLinkedList {
|
||||
//先初始化一个头节点,头节点不动,不存放具体的数据
|
||||
private HeroNode head = new HeroNode(0, "", "");
|
||||
|
||||
|
||||
/**
|
||||
* 添加节点到单向链表
|
||||
* 思路:当不考虑编号顺序时
|
||||
* 1.找到当前链表的最后节点
|
||||
* 2.将最后这个节点的next指向新的节点
|
||||
*
|
||||
* @param data
|
||||
*/
|
||||
public void add(HeroNode data) {
|
||||
|
||||
//因为head节点不能懂,因此需要一个辅助变量temp
|
||||
HeroNode temp = head;
|
||||
//遍历链表,找到最后
|
||||
|
||||
while (true) {
|
||||
//找到链表的最后
|
||||
if (temp.next == null) {
|
||||
break;
|
||||
}
|
||||
//如果没有找到,就将其后移
|
||||
temp = temp.next;
|
||||
}
|
||||
//当退出循环,就指向了最后
|
||||
//将最后这个节点的next指向新的节点
|
||||
temp.next = data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 按顺序添加节点
|
||||
* 如果这个排名已存在,则报出添加失败
|
||||
*/
|
||||
public void addByOrder(HeroNode data) {
|
||||
|
||||
//通过辅助变量老帮助找到添加位置
|
||||
HeroNode temp = head;
|
||||
boolean flag = false; //flag表示添加的编号是否存在,默认为false
|
||||
|
||||
while (true) {
|
||||
|
||||
if (temp.next == null) {
|
||||
break;
|
||||
}
|
||||
if (temp.next.no > data.no) {
|
||||
//位置找到了
|
||||
break;
|
||||
} else if (temp.next.no == data.no) {
|
||||
//编号已存在
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
temp = temp.next;
|
||||
}
|
||||
//判断flag的值
|
||||
if (flag) {
|
||||
System.out.printf("准备插入的英雄的编号%d已经存在,不能加入\n", data.no);
|
||||
} else {
|
||||
//插入到temp的后面
|
||||
data.next = temp.next;
|
||||
temp.next = data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改节点的信息,根据编号来修改,即no编号不能修改
|
||||
* 说明:
|
||||
* 1.根据newHeroNode的no来修改即可
|
||||
*
|
||||
* @param newHeroNode
|
||||
*/
|
||||
public void update(HeroNode newHeroNode) {
|
||||
//判断是否为空
|
||||
if (head.next == null) {
|
||||
System.out.println("链表为空");
|
||||
return;
|
||||
}
|
||||
//找到需要修改的节点,根据no编号
|
||||
//定义一个辅助变量
|
||||
HeroNode temp = head.next;
|
||||
boolean flag = false; //表示是否找到了该节点
|
||||
while (true) {
|
||||
if (temp == null) {
|
||||
break; //链表已经遍历完
|
||||
}
|
||||
if (temp.no == newHeroNode.no) {
|
||||
//找到了
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
temp = temp.next;
|
||||
}
|
||||
//根据flag判断是否找到要修改的节点
|
||||
if (flag = true) {
|
||||
System.out.println("找到要修改的节点,并修改");
|
||||
temp.name = newHeroNode.name;
|
||||
temp.nickname = newHeroNode.nickname;
|
||||
} else {
|
||||
System.out.printf("没有找到编号%d的节点,不能修改\n", newHeroNode.no);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据编号删除节点
|
||||
*/
|
||||
public void delete(int no) {
|
||||
|
||||
boolean flag = false;
|
||||
|
||||
if (head.next == null) {
|
||||
System.out.println("链表为空");
|
||||
}
|
||||
|
||||
HeroNode temp = head;
|
||||
while (true) {
|
||||
if (temp.next == null) {
|
||||
break;
|
||||
}
|
||||
if (temp.next.no == no) {
|
||||
System.out.println("找到了");
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
temp = temp.next;
|
||||
}
|
||||
if (flag) {
|
||||
temp.next = temp.next.next;
|
||||
} else {
|
||||
System.out.println("链表中不存在该编号");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示链表
|
||||
*/
|
||||
public void showLinkedList() {
|
||||
//判断链表是否为空
|
||||
if (head.next == null) {
|
||||
System.out.println("链表为空");
|
||||
return;
|
||||
}
|
||||
//遍历
|
||||
HeroNode temp = head.next;
|
||||
while (true) {
|
||||
//判断是否到链表的结尾
|
||||
if (temp == null) {
|
||||
break;
|
||||
}
|
||||
//输出节点信息
|
||||
System.out.println(temp);
|
||||
temp = temp.next;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//定义HeroNode,每个HeroNode对象就是一个节点
|
||||
public static class HeroNode {
|
||||
|
||||
private int no;
|
||||
private String name;
|
||||
public String nickname;
|
||||
private HeroNode next;
|
||||
|
||||
public HeroNode() {
|
||||
}
|
||||
|
||||
public HeroNode(int no, String name, String nickname) {
|
||||
this.no = no;
|
||||
this.name = name;
|
||||
this.nickname = nickname;
|
||||
}
|
||||
|
||||
public HeroNode(int no, String name, String nickname, HeroNode next) {
|
||||
this.no = no;
|
||||
this.name = name;
|
||||
this.nickname = nickname;
|
||||
this.next = next;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "HeroNode{" +
|
||||
"no=" + no +
|
||||
", name='" + name + '\'' +
|
||||
", nickname='" + nickname + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package com.atguigu.linkedlist;
|
||||
|
||||
|
||||
import java.util.Stack;
|
||||
|
||||
/**
|
||||
* 演示栈的基本使用
|
||||
*/
|
||||
public class TestStack {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
Stack<String> stack = new Stack();
|
||||
//入栈
|
||||
stack.add("jack");
|
||||
stack.add("Tom");
|
||||
stack.add("smith");
|
||||
|
||||
//出栈
|
||||
while(stack.size()>0){
|
||||
System.out.println(stack.pop());//pop将栈顶的数据取出
|
||||
//smith Tom jack
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
package com.atguigu.queue;
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class ArrayQueueDemo {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//测试
|
||||
//创建一个队列
|
||||
ArrayQueue arrayQueue = new ArrayQueue(3);
|
||||
char key = ' '; //接受用户输入
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
boolean loop = true;
|
||||
//输出一个菜单
|
||||
while(loop){
|
||||
System.out.println("s(show):显示队列");
|
||||
System.out.println("e(exit):退出程序");
|
||||
System.out.println("a(add):添加数据到队列");
|
||||
System.out.println("g(get):从队列取出数据");
|
||||
System.out.println("h(head):查看队列头的数据");
|
||||
key = scanner.next().charAt(0); //接受一个字符;
|
||||
switch (key){
|
||||
|
||||
case 's':
|
||||
arrayQueue.showQueue();
|
||||
break;
|
||||
case 'a':
|
||||
System.out.println("请输出一个数:");
|
||||
int num = scanner.nextInt();
|
||||
arrayQueue.addQueue(num);
|
||||
break;
|
||||
case 'g':
|
||||
try{
|
||||
int res = arrayQueue.getQueue();
|
||||
System.out.printf("取出的数据是%d\n",res);
|
||||
|
||||
}catch (Exception e){
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
break;
|
||||
case 'h':
|
||||
//查看队列头的数据
|
||||
try{
|
||||
int res = arrayQueue.headQueue();
|
||||
System.out.printf("队列头的数据是%d\n",res);
|
||||
}catch (Exception e){
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
break;
|
||||
case 'e':
|
||||
scanner.close();
|
||||
loop = false;
|
||||
break;
|
||||
default:
|
||||
System.out.println("输入错误,请重新输入:");
|
||||
break;
|
||||
}
|
||||
}
|
||||
System.out.println("程序退出");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//使用数组模拟队列-编写一个ArrayQueue类
|
||||
class ArrayQueue {
|
||||
|
||||
private int maxSize; //表示数组的最大容量
|
||||
private int front;//队列头
|
||||
private int rear; //队列尾
|
||||
private int[] arr; //改数组用于存放数据,模拟队列;
|
||||
|
||||
|
||||
//创建队列的构造器
|
||||
public ArrayQueue(int arrMaxSize) {
|
||||
maxSize = arrMaxSize;
|
||||
arr = new int[maxSize];
|
||||
front = -1; //指向队列头部,分析出front是指向队列头的前一个位置
|
||||
rear = -1; //指向队列尾,指向队列尾的数据(就是队列最后一个数据)
|
||||
}
|
||||
|
||||
//判断队列是否满
|
||||
public boolean isFull() {
|
||||
return rear == maxSize - 1;
|
||||
}
|
||||
|
||||
//判断队列是否为空
|
||||
public boolean isEmpty() {
|
||||
return rear == front;
|
||||
}
|
||||
|
||||
//添加数据到队列
|
||||
public void addQueue(int data) {
|
||||
|
||||
//判断队列是否满了
|
||||
if (isFull()) {
|
||||
System.out.println("队列满,不能加入数据~");
|
||||
return;
|
||||
}
|
||||
|
||||
arr[++rear] = data;
|
||||
}
|
||||
|
||||
//获取队列的数,出队列
|
||||
public int getQueue() {
|
||||
|
||||
//判断队列是否为空
|
||||
if (isEmpty()) {
|
||||
//通过抛出异常的方式进行处理
|
||||
throw new RuntimeException("队列空,不能取数据");
|
||||
}
|
||||
|
||||
return arr[++front];
|
||||
}
|
||||
|
||||
//显示队列的所有数据
|
||||
public void showQueue() {
|
||||
|
||||
if (isEmpty()) {
|
||||
System.out.println("队列为空,没有数据~~");
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
System.out.printf("arr[%d]=%d\n", i, arr[i]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//显示队列的头数据
|
||||
public int headQueue() {
|
||||
|
||||
//判断
|
||||
if (isEmpty()) {
|
||||
|
||||
throw new RuntimeException("队列为空,没有数据~~");
|
||||
}
|
||||
return arr[front + 1];
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,160 @@
|
|||
package com.atguigu.queue;
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class CircleArrayQueueDemo {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//测试
|
||||
//创建一个队列
|
||||
CircleArrayQueue arrayQueue = new CircleArrayQueue(4);//其队列的有效数据最大是3
|
||||
char key = ' '; //接受用户输入
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
boolean loop = true;
|
||||
//输出一个菜单
|
||||
while (loop) {
|
||||
System.out.println("s(show):显示队列");
|
||||
System.out.println("e(exit):退出程序");
|
||||
System.out.println("a(add):添加数据到队列");
|
||||
System.out.println("g(get):从队列取出数据");
|
||||
System.out.println("h(head):查看队列头的数据");
|
||||
key = scanner.next().charAt(0); //接受一个字符;
|
||||
switch (key) {
|
||||
|
||||
case 's':
|
||||
arrayQueue.showQueue();
|
||||
break;
|
||||
case 'a':
|
||||
System.out.println("请输出一个数:");
|
||||
int num = scanner.nextInt();
|
||||
arrayQueue.addQueue(num);
|
||||
break;
|
||||
case 'g':
|
||||
try {
|
||||
int res = arrayQueue.getQueue();
|
||||
System.out.printf("取出的数据是%d\n", res);
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
break;
|
||||
case 'h':
|
||||
//查看队列头的数据
|
||||
try {
|
||||
int res = arrayQueue.headQueue();
|
||||
System.out.printf("队列头的数据是%d\n", res);
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
break;
|
||||
case 'e':
|
||||
scanner.close();
|
||||
loop = false;
|
||||
break;
|
||||
default:
|
||||
System.out.println("输入错误,请重新输入:");
|
||||
break;
|
||||
}
|
||||
}
|
||||
System.out.println("程序退出");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//使用数组模拟循环队列-编写一个CircleArrayQueue类
|
||||
class CircleArrayQueue {
|
||||
|
||||
private int maxSize; //表示数组的最大容量
|
||||
private int front;//队列头
|
||||
private int rear; //队列尾
|
||||
private int[] arr; //改数组用于存放数据,模拟队列;
|
||||
|
||||
|
||||
//创建队列的构造器
|
||||
public CircleArrayQueue(int arrMaxSize) {
|
||||
maxSize = arrMaxSize;
|
||||
arr = new int[maxSize];
|
||||
front = 0;
|
||||
rear = 0;
|
||||
}
|
||||
|
||||
//判断队列是否满
|
||||
public boolean isFull() {
|
||||
return (rear + 1) % maxSize == front;
|
||||
}
|
||||
|
||||
//判断队列是否为空
|
||||
public boolean isEmpty() {
|
||||
return rear == front;
|
||||
}
|
||||
|
||||
//添加数据到队列
|
||||
public void addQueue(int data) {
|
||||
|
||||
//判断队列是否满了
|
||||
if (isFull()) {
|
||||
System.out.println("队列满,不能加入数据~");
|
||||
return;
|
||||
}
|
||||
|
||||
arr[rear] = data;
|
||||
//将rear后移,这里必须考虑取模
|
||||
rear = (rear + 1) % maxSize;
|
||||
}
|
||||
|
||||
//获取队列的数,出队列
|
||||
public int getQueue() {
|
||||
|
||||
//判断队列是否为空
|
||||
if (isEmpty()) {
|
||||
//通过抛出异常的方式进行处理
|
||||
throw new RuntimeException("队列空,不能取数据");
|
||||
}
|
||||
|
||||
//这里需要分析出front是指向队列的第一个元素
|
||||
//1.先把front对应的值保留到临时变量
|
||||
//2.将front后移,取模
|
||||
//3.将临时保存的变量返回
|
||||
int value = arr[front];
|
||||
front = (front + 1) % maxSize;
|
||||
return value;
|
||||
}
|
||||
|
||||
//显示队列的所有数据
|
||||
public void showQueue() {
|
||||
|
||||
if (isEmpty()) {
|
||||
System.out.println("队列为空,没有数据~~");
|
||||
return;
|
||||
}
|
||||
//由于被取出了以后就可以不用遍历
|
||||
//考虑从front开始遍历,遍历多少个元素
|
||||
|
||||
for (int i = front; i < front; i++) {
|
||||
System.out.printf("arr[%d]=%d\n", i % maxSize, arr[i % maxSize]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//求出当前队列有效数据的个数
|
||||
public int size() {
|
||||
//假如rear =1 front = 0 maxSize = 3
|
||||
//(1+3-0)%3 ==1
|
||||
return (rear + maxSize - front) % maxSize;
|
||||
}
|
||||
|
||||
//显示队列的头数据
|
||||
public int headQueue() {
|
||||
|
||||
//判断
|
||||
if (isEmpty()) {
|
||||
|
||||
throw new RuntimeException("队列为空,没有数据~~");
|
||||
}
|
||||
return arr[front];
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
package com.atguigu.recursion;
|
||||
|
||||
|
||||
/**
|
||||
* 迷宫问题
|
||||
*/
|
||||
public class MiGong {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//创建一个二维数组,模拟迷宫
|
||||
int[][] map = new int[8][7];
|
||||
//使用1表示墙
|
||||
for (int i = 0; i < 8; i++) {
|
||||
for (int j = 0; j < 7; j++) {
|
||||
if (i == 0 || j == 0 || i == 7 || j == 6) {
|
||||
map[i][j] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//设置挡板,1表示
|
||||
map[3][1]=1;
|
||||
map[3][2]=1;
|
||||
|
||||
System.out.println("当前地图:");
|
||||
for (int i = 0; i < 8; i++) {
|
||||
for (int j = 0; j < 7; j++) {
|
||||
System.out.print(map[i][j] + " ");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
//使用递归回溯给小球找路
|
||||
setWay(map,1,1);
|
||||
|
||||
//输出新地图
|
||||
System.out.println("新地图:");
|
||||
for (int i = 0; i < 8; i++) {
|
||||
for (int j = 0; j < 7; j++) {
|
||||
System.out.print(map[i][j] + " ");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
/**
|
||||
* 使用递归回溯给小球找路
|
||||
* 当为0是表示没走过,当为1表示墙,当为2表示通路可以走,3表示该店已经走过
|
||||
* 需要确定一个策略(方法), 下->右->上->左,如果该点走不通,在回溯
|
||||
* @param map 地图
|
||||
* @param i 从哪个位置开始找(1,1)
|
||||
* @param j
|
||||
* @return 是否找到通路(6,5)
|
||||
*/
|
||||
public static boolean setWay(int[][] map,int i,int j){
|
||||
if(map[6][5] == 2){
|
||||
return true;
|
||||
}else {
|
||||
|
||||
if(map[i][j]==0){
|
||||
//如果当前这个点没走过
|
||||
//按照策略
|
||||
map[i][j] = 2;
|
||||
if(setWay(map,i+1,j)){
|
||||
return true;
|
||||
}else if(setWay(map,i,j+1)){
|
||||
return true;
|
||||
}else if(setWay(map,i-1,j)){
|
||||
return true;
|
||||
}else if(setWay(map,i,j-1)){
|
||||
return true;
|
||||
}else {
|
||||
//该点走不通,是死路
|
||||
map[i][j]=3;
|
||||
return false;
|
||||
}
|
||||
}else {
|
||||
//map值可能是1,2,3
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
package com.atguigu.recursion;
|
||||
|
||||
public class Queen8 {
|
||||
|
||||
//定义一个max表示共有多少个皇后
|
||||
int max = 8;
|
||||
//定义数组array,保存皇后放置位置的结果,比如arr={0,4,7,5,2,6,1,3}
|
||||
int[] array = new int[max];
|
||||
static int count=0;
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
Queen8 queen8 = new Queen8();
|
||||
queen8.check(0);
|
||||
System.out.printf("一共有%d中解法",count); //92
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 放置第n个皇后
|
||||
* @param n 第n个皇后
|
||||
*/
|
||||
private void check(int n){
|
||||
if(n==max){
|
||||
//8个皇后已放好
|
||||
print();
|
||||
return;
|
||||
}
|
||||
//依次放入皇后并判断是否冲突
|
||||
for (int i = 0; i < max; i++) {
|
||||
|
||||
//先把当前这个皇后n,放到该行的第1列
|
||||
array[n] = i;
|
||||
//判断这个位置是否冲突
|
||||
if(judge(n)){
|
||||
//不冲突
|
||||
//接着放第n+1个皇后
|
||||
check(n+1);
|
||||
}
|
||||
//如果冲突,就继续执行array[n]=i;即将第n个皇后放置在后移一个位置
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查看当我们放置第n个皇后,就去检测该皇后是否和前面已经摆放的皇后冲突
|
||||
*
|
||||
* @param n 表示第n个皇后
|
||||
* @return
|
||||
*/
|
||||
private boolean judge(int n) {
|
||||
|
||||
for (int i = 0; i < n; i++) {
|
||||
|
||||
//TODO 说明:
|
||||
// 1.array[i] == array[n] 表示判断第n个皇后是否和前面的n-1个皇后在同一列
|
||||
// 2.Math.abs(n-i) == Math.abs(array[n]-array[i])表示判断第n个皇后是否和第i个皇后在同一斜线
|
||||
if (array[i] == array[n] || Math.abs(n - i) == Math.abs(array[n] - array[i])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//将皇后摆放的位置打印出来
|
||||
private void print() {
|
||||
count++;
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
System.out.print(array[i] + " ");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package com.atguigu.recursion;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
public class RecursionTest {
|
||||
|
||||
public static void main(String[] args) {
|
||||
//test(4);
|
||||
int res =factorial(4);
|
||||
System.out.println(res);
|
||||
|
||||
}
|
||||
|
||||
//打印问题
|
||||
public static void test(int n) {
|
||||
|
||||
if (n > 2) {
|
||||
test(n - 1);
|
||||
}
|
||||
System.out.println("n=" + n);
|
||||
}
|
||||
|
||||
//阶乘问题
|
||||
public static int factorial(int n) {
|
||||
if (n == 1) {
|
||||
return 1;
|
||||
} else {
|
||||
return factorial(n - 1) * n;
|
||||
}}
|
||||
}
|
||||
|
|
@ -0,0 +1,113 @@
|
|||
package com.atguigu.search;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* 二分查找
|
||||
* 前提:数组是有序的
|
||||
*/
|
||||
public class BinarySearch {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
int[] arr = {1, 8, 10, 89, 1000, 1000,1000,1234};
|
||||
|
||||
|
||||
//int resIndex = binarySearch(arr, 0, arr.length - 1, 100);
|
||||
ArrayList<Integer> resArrayList = binarySearch2(arr, 0, arr.length - 1, 1000);
|
||||
System.out.println("resIndex=" + resArrayList);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 二分查找算法
|
||||
*
|
||||
* @param arr 数组
|
||||
* @param left 左边的索引
|
||||
* @param right 右边的索引
|
||||
* @param findVal 要查找的值
|
||||
* @return 找到返回下标, 未找到返回-1
|
||||
*/
|
||||
public static int binarySearch(int[] arr, int left, int right, int findVal) {
|
||||
|
||||
|
||||
//left>right时,说明递归整个数组,但是没有找到
|
||||
if (left > right) {
|
||||
return -1;
|
||||
}
|
||||
int mid = (left + right) / 2;
|
||||
int midVal = arr[mid];
|
||||
|
||||
if (findVal > midVal) {
|
||||
return binarySearch(arr, mid + 1, right, findVal);
|
||||
} else if (findVal < midVal) {
|
||||
return binarySearch(arr, left, mid - 1, findVal);
|
||||
} else {
|
||||
return mid;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
/**
|
||||
* 课后思考题:当数组中有多个相同的数值时,如何将所有的设置都查找到
|
||||
*
|
||||
* 思路分析:
|
||||
* 1.在找到mid索引值,不要马上返回
|
||||
* 2.想mid索引值的左边扫描,将所有满足1000的元素的下表,加入到集合ArrayList
|
||||
* 3.想mid索引值的右边扫描,将所有满足1000的元素的下表,加入到集合ArrayList
|
||||
* 4.返回ArrayList
|
||||
*/
|
||||
public static ArrayList<Integer> binarySearch2(int[] arr, int left, int right, int findVal) {
|
||||
|
||||
|
||||
//left>right时,说明递归整个数组,但是没有找到
|
||||
if (left > right) {
|
||||
return new ArrayList<Integer>();
|
||||
}
|
||||
int mid = (left + right) / 2;
|
||||
int midVal = arr[mid];
|
||||
|
||||
if (findVal > midVal) {
|
||||
return binarySearch2(arr, mid + 1, right, findVal);
|
||||
} else if (findVal < midVal) {
|
||||
return binarySearch2(arr, left, mid - 1, findVal);
|
||||
} else {
|
||||
ArrayList<Integer> resIndexList = new ArrayList<>();
|
||||
int temp=mid-1;
|
||||
//向左扫描
|
||||
while(true){
|
||||
if(temp<0||arr[temp] !=findVal){
|
||||
//退出
|
||||
break;
|
||||
}
|
||||
//否则,就将temp放入到resIndexList
|
||||
resIndexList.add(temp);
|
||||
temp -=1;
|
||||
}
|
||||
resIndexList.add(mid); //中间的
|
||||
|
||||
//向右扫描
|
||||
temp=mid+1;
|
||||
while(true){
|
||||
if(temp>arr.length-1||arr[temp] !=findVal){
|
||||
//退出
|
||||
break;
|
||||
}
|
||||
//否则,就将temp放入到resIndexList
|
||||
resIndexList.add(temp);
|
||||
temp +=1;
|
||||
}
|
||||
return resIndexList;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package com.atguigu.search;
|
||||
|
||||
public class SeqSearch {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
int[] arr ={1,9,11,-1,34,89}; //没有顺序的数组
|
||||
int index=seqSearch(arr,11);
|
||||
if(index == -1){
|
||||
System.out.println("没有找到");
|
||||
}else {
|
||||
System.out.println("找到了,下标为="+index);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 这里实现的线性查找是找到一个满足条件的值,就返回
|
||||
* @param arr 数组
|
||||
* @param value 查找的值
|
||||
* @return
|
||||
*/
|
||||
public static int seqSearch(int[] arr,int value){
|
||||
|
||||
//线性查找是逐一比对,发信啊有向永志,就返回下标
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
|
||||
if(arr[i]==value){
|
||||
return i;
|
||||
}
|
||||
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
package com.atguigu.sort;
|
||||
|
||||
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.Random;
|
||||
|
||||
public class BubbleSort {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// int[] arr = {3,9,-1,10,-2};
|
||||
//
|
||||
// System.out.println("排序前:");
|
||||
// System.out.println(Arrays.toString(arr));
|
||||
|
||||
//测试80000个数据进行测试
|
||||
int[] arr =new int[80000];
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
arr[i] = (int)(Math.random()*80000); //生成一个[0,80000]的数
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date1Str = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:"+date1Str); //排序前的时间:2022-01-14 14:02:53
|
||||
|
||||
Bubble(arr);
|
||||
Date date2 = new Date();
|
||||
String date2Str = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:"+date2Str); //排序后的时间:2022-01-14 14:03:05
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void Bubble(int[] arr){
|
||||
int temp = 0;
|
||||
boolean flag=false; //表示是否交换过
|
||||
//冒泡排序:时间复杂度O(n^2)
|
||||
//优化:如果在交换过程中,没有一次交换就提前结束循环
|
||||
for (int i = 0; i < arr.length-1; i++) {
|
||||
|
||||
for (int j = 0; j < arr.length-1-i; j++) {
|
||||
if (arr[j] > arr[j+1]) {
|
||||
temp = arr[j];
|
||||
arr[j] = arr[j+1];
|
||||
arr[j+1] = temp;
|
||||
flag =true;
|
||||
}
|
||||
}
|
||||
|
||||
if(flag ==false){
|
||||
//一趟排序中一次都没有交换过
|
||||
break;
|
||||
}else {
|
||||
flag=false; //重置flag进行下次判断
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
package com.atguigu.sort;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
public class InsertSort {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
int[] arr = {-1, 9,3 , 10, -2};
|
||||
|
||||
insertSort(arr);
|
||||
System.out.println(Arrays.toString(arr));
|
||||
|
||||
//测试80000个数据进行测试
|
||||
// int[] arr = new int[80000];
|
||||
// for (int i = 0; i < arr.length; i++) {
|
||||
// arr[i] = (int) (Math.random() * 80000); //生成一个[0,80000]的数
|
||||
// }
|
||||
// Date date1 = new Date();
|
||||
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
// String date1Str = simpleDateFormat.format(date1);
|
||||
// System.out.println("排序前的时间:" + date1Str); //排序前的时间:2022-01-14 15:36:45
|
||||
//
|
||||
// insertSort(arr);
|
||||
// Date date2 = new Date();
|
||||
// String date2Str = simpleDateFormat.format(date2);
|
||||
// System.out.println("排序后的时间:" + date2Str); //排序后的时间:2022-01-14 15:36:46 //不到一秒
|
||||
|
||||
}
|
||||
|
||||
|
||||
//插入排序
|
||||
public static void insertSort(int[] arr) {
|
||||
|
||||
//定义待输入的数
|
||||
int temp = 0;
|
||||
|
||||
|
||||
for (int i = 1; i < arr.length; i++) {
|
||||
int flag = arr[i];
|
||||
int index = i - 1;
|
||||
//可以实现
|
||||
// int index=i;
|
||||
// for (int j = 0; j < i; j++) {
|
||||
//
|
||||
// if (flag < arr[j]) {
|
||||
// index = j;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if(index != i){
|
||||
// for(int z=i-1;z>=index;z--){
|
||||
// arr[z+1]=arr[z];
|
||||
// }
|
||||
// arr[index]=flag;
|
||||
// }
|
||||
|
||||
while (index >= 0 && flag < arr[index]) {
|
||||
arr[index + 1] = arr[index];
|
||||
index--;
|
||||
}
|
||||
|
||||
arr[index + 1] = flag;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
package com.atguigu.sort;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 归并排序
|
||||
*/
|
||||
public class MergeSort {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// int[] arr = {8, 4, 5, 7, 1, 3, 6, 2,0,234};
|
||||
|
||||
// mergeSort(arr,0,arr.length-1,temp);
|
||||
//
|
||||
// System.out.println("归并排序后="+ Arrays.toString(arr));
|
||||
|
||||
//测试80000个数据进行测试
|
||||
int[] arr =new int[8000000];
|
||||
int[] temp = new int[arr.length]; //归并排序需要一个额外的空间
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
arr[i] = (int)(Math.random()*8000000); //生成一个[0,80000]的数
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date1Str = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:"+date1Str); //排序前的时间:2022-01-17 17:16:31
|
||||
|
||||
mergeSort(arr,0,arr.length-1,temp);
|
||||
Date date2 = new Date();
|
||||
String date2Str = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:"+date2Str); //排序后的时间:2022-01-17 17:16:32
|
||||
//System.out.println("归并排序后="+ Arrays.toString(arr));
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 分 +和的方法
|
||||
* @param arr 原始数组
|
||||
* @param left 左边的初始索引
|
||||
* @param right 右边的初始索引
|
||||
* @param temp 临时数组
|
||||
*/
|
||||
public static void mergeSort(int[] arr,int left,int right,int[] temp){
|
||||
|
||||
if(left <right){
|
||||
int mid =(left+right)/2; //中间索引
|
||||
//向左递归分解
|
||||
mergeSort(arr,left,mid,temp);
|
||||
//向右递归
|
||||
mergeSort(arr,mid+1,right,temp);
|
||||
|
||||
//合并
|
||||
merge(arr,left,mid,right,temp);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 合并的方法
|
||||
*
|
||||
* @param arr 待排序的原始数组
|
||||
* @param left 左边有序序列的初始索引
|
||||
* @param mid 中间索引
|
||||
* @param right 右边索引
|
||||
* @param temp 做中转的数组
|
||||
*/
|
||||
public static void merge(int[] arr, int left, int mid, int right, int[] temp) {
|
||||
|
||||
int i = left; //初始化i,左边有序序列的初始索引
|
||||
int j = mid + 1; //初始化j,右边有序序列的初始索引
|
||||
int t = 0; //初始化t,指向temp数组的当前索引
|
||||
|
||||
//TODO (一)
|
||||
// 先把左右两边(有序)的数据按照规则填充到temp数组
|
||||
// 直到左右两边的有序数列,有一边处理完毕为止
|
||||
while (i <= mid && j <= right) {
|
||||
//哪个小把那个填充到temp
|
||||
if (arr[i] <= arr[j]) {
|
||||
temp[t] = arr[i];
|
||||
t += 1;
|
||||
i += 1;
|
||||
}else {
|
||||
temp[t] = arr[j];
|
||||
t += 1;
|
||||
j += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//TODO (二)
|
||||
// 把有剩余数据的一边的数据一次全部填充到temp
|
||||
while( i<=mid){
|
||||
//左边有剩余,填充到temp
|
||||
temp[t++]=arr[i++];
|
||||
}
|
||||
|
||||
while(j<=right){
|
||||
//右边有剩余,填充到temp
|
||||
temp[t++]=arr[j++];
|
||||
}
|
||||
|
||||
|
||||
//TODO (三)
|
||||
// 将temp数组的元素拷贝到arr
|
||||
// 注意:并不是每次都是拷贝所有数据
|
||||
t=0;
|
||||
int tempLeft = left;
|
||||
while(tempLeft <=right){
|
||||
arr[tempLeft++]=temp[t++];
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
package com.atguigu.sort;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
public class QuickSort {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// int[] arr = {-9, 78, 0, 23, -567, 70,-1,900,0,4561};
|
||||
//
|
||||
// quickSort(arr, 0, arr.length - 1);
|
||||
// System.out.println(Arrays.toString(arr));
|
||||
|
||||
int[] arr = new int[8000000];
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
arr[i] = (int) (Math.random() * 8000000); //生成一个[0,80000]的数
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date1Str = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:" + date1Str); //排序前的时间:2022-01-14 16:22:18
|
||||
|
||||
//shellSort(arr);
|
||||
quickSort(arr,0,arr.length-1);
|
||||
|
||||
Date date2 = new Date();
|
||||
String date2Str = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:" + date2Str); //排序后的时间:排序后的时间:2022-01-14 16:22:18 //不到一秒
|
||||
//System.out.println( Arrays.toString(arr));
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 快速排序
|
||||
*
|
||||
* @param arr
|
||||
* @param left 左边开始的索引
|
||||
* @param right 右边开始的索引
|
||||
*/
|
||||
public static void quickSort(int[] arr, int left, int right) {
|
||||
|
||||
int l = left; //左下标
|
||||
int r = right; //右下标
|
||||
|
||||
int pivot = arr[(left + right) / 2]; //中轴
|
||||
int temp = 0; //临时变量,交换时使用
|
||||
|
||||
//while循环的目的是让比pivot值小的放到左边,比pivot值大的放到右边
|
||||
//{-9, 78, 0, 23, 0, 70};
|
||||
while (l < r) {
|
||||
|
||||
//在pivot的左边一直找,找到大于等于pivot值,才退出
|
||||
while (arr[l] < pivot) {
|
||||
|
||||
l += 1;
|
||||
}
|
||||
//在pivot的左边一直找,找到小于等于pivot值,才退出
|
||||
while (arr[r] > pivot) {
|
||||
r -= 1;
|
||||
}
|
||||
|
||||
if (l >= r) {
|
||||
//如果l >= r说明pivot的左右两边的值,已经按照左边全部小于等于pivot值,右边全部是大于等于pivot值
|
||||
break;
|
||||
}
|
||||
|
||||
//如果没有满足则交换
|
||||
temp = arr[l];
|
||||
arr[l] = arr[r];
|
||||
arr[r] = temp;
|
||||
|
||||
//如果交换完后,发现arr[l] ==pivot相等,前移
|
||||
if (arr[l] == pivot) {
|
||||
r -= 1;
|
||||
}
|
||||
if (arr[r] == pivot) {
|
||||
l += 1;
|
||||
}
|
||||
|
||||
}
|
||||
//如果l ==r,必须l++,r--,否则会出现栈溢出
|
||||
if (l == r) {
|
||||
l += 1;
|
||||
r -= 1;
|
||||
}
|
||||
|
||||
//向左递归
|
||||
if (left < r) {
|
||||
quickSort(arr, left, r);
|
||||
}
|
||||
//向右递归
|
||||
if (right > l) {
|
||||
quickSort(arr, l, right);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
package com.atguigu.sort;
|
||||
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 基数排序(桶排序的扩展)
|
||||
*/
|
||||
public class RadixSort {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// int[] arr= {53,3,542,748,14,214};
|
||||
// radixSort(arr);
|
||||
|
||||
//测试80000个数据进行测试
|
||||
//8千万个数:java.lang.OutOfMemoryError: Java heap space
|
||||
int[] arr =new int[80000000];
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
arr[i] = (int)(Math.random()*80000000); //生成一个[0,80000]的数
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date1Str = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:"+date1Str); //排序前的时间:2022-01-18 12:53:42
|
||||
|
||||
radixSort(arr);
|
||||
Date date2 = new Date();
|
||||
String date2Str = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:"+date2Str); //排序后的时间:2022-01-18 12:53:43
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
//基数排序的方法
|
||||
public static void radixSort(int[] arr){
|
||||
|
||||
//第一轮(针对每个元素的各位进行排序处理)
|
||||
|
||||
//定义一个二维数组,表示10个桶,每个桶就是一个一维数组
|
||||
//TODO 说明:
|
||||
// 1.二维数组包含10个一维数组
|
||||
// 2.为了防止在放入数的时候,数据溢出,则每个一维数组(桶),大小定位arr.length
|
||||
// 3.技术排序是使用空间换时间的经典算法
|
||||
|
||||
int[][] bucket = new int[10][arr.length];
|
||||
|
||||
//为了记录每个桶中,实际存放了多少个数据,定义一个一维数组来记录各个桶的每次放入的数据个数
|
||||
//bucketElementCounts[0]记录的是bucket[0]桶中放入数据个数
|
||||
int[] bucketElementCounts =new int[10];
|
||||
|
||||
//1.得到数组汇总过最大的数的位数
|
||||
int max =arr[0]; //假设第一个数就是最大的数
|
||||
for(int i = 1;i<arr.length;i++){
|
||||
if(arr[i]>max){
|
||||
max=arr[i];
|
||||
}
|
||||
}
|
||||
//得到最大数是几位数
|
||||
int maxLength = (max+"").length();
|
||||
for(int i =0, n= 1;i<maxLength;i++,n *=10){
|
||||
//第i轮(针对每个元素的各位进行排序处理)
|
||||
for(int j=0;j<arr.length;j++){
|
||||
|
||||
//取出每个元素的个位
|
||||
int digitOfElement =arr[j]/n%10;
|
||||
//放入到对应的桶中
|
||||
bucket[digitOfElement][bucketElementCounts[digitOfElement]]=arr[j];
|
||||
bucketElementCounts[digitOfElement] +=1;
|
||||
}
|
||||
//按照这个痛的顺序(一维数组的下表一次被取出数据,放入原来数组)
|
||||
int index =0;
|
||||
//遍历每一个桶,并将同种的数据,放入到原数组
|
||||
for(int k =0;k<bucketElementCounts.length;k++){
|
||||
|
||||
//如果桶中有数据,放入原数组
|
||||
if(bucketElementCounts[k] !=0 ){
|
||||
|
||||
//对应的桶中有数据,循环遍历该桶第k个桶,放入
|
||||
for(int l= 0;l<bucketElementCounts[k];l++){
|
||||
//放入arr
|
||||
arr[index] =bucket[k][l];
|
||||
index++;
|
||||
}
|
||||
}
|
||||
//每轮处理后,需要将bucket置0
|
||||
bucketElementCounts[k] =0;
|
||||
|
||||
}
|
||||
|
||||
// System.out.println("第一轮,对各位的排序处理arr="+ Arrays.toString(arr));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package com.atguigu.sort;
|
||||
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
public class SelectSort {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
// int[] arr = {3,9,-1,10,-2};
|
||||
//
|
||||
// Select(arr);
|
||||
// System.out.println(Arrays.toString(arr));
|
||||
|
||||
//测试80000个数据进行测试
|
||||
int[] arr =new int[80000];
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
arr[i] = (int)(Math.random()*80000); //生成一个[0,80000]的数
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date1Str = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:"+date1Str); //排序前的时间:2022-01-14 14:28:48
|
||||
|
||||
Select(arr);
|
||||
|
||||
Date date2 = new Date();
|
||||
String date2Str = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:"+date2Str); //排序后的时间:2022-01-14 14:28:51
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 选择排序
|
||||
*/
|
||||
public static void Select(int[] arr){
|
||||
|
||||
int flag =0;
|
||||
int count =0;
|
||||
int temp = 0;
|
||||
for (int i = 0; i < arr.length - 1; i++) {
|
||||
flag=arr[i];
|
||||
count=i;
|
||||
for (int j = i+1; j < arr.length ; j++) {
|
||||
if(flag >arr[j]){
|
||||
flag=arr[j];
|
||||
count=j;
|
||||
}
|
||||
}
|
||||
if(count !=i){
|
||||
temp =arr[i];
|
||||
arr[i]=arr[count];
|
||||
arr[count]=temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
package com.atguigu.sort;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
public class ShellSort {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// int[] arr ={8,9,1,7,2,3,5,4,6,0};
|
||||
// shellSort(arr);
|
||||
|
||||
//测试80000个数据进行测试交换法
|
||||
int[] arr = new int[80000];
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
arr[i] = (int) (Math.random() * 80000); //生成一个[0,80000]的数
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date1Str = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:" + date1Str); //排序前的时间:2022-01-14 16:22:18
|
||||
|
||||
//shellSort(arr);
|
||||
shellSort2(arr);
|
||||
|
||||
Date date2 = new Date();
|
||||
String date2Str = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:" + date2Str); //排序后的时间:排序后的时间:2022-01-14 16:22:18 //不到一秒
|
||||
//System.out.println( Arrays.toString(arr));
|
||||
|
||||
|
||||
}
|
||||
|
||||
//希尔排序交换法 -8秒左右
|
||||
public static void shellSort(int[] arr) {
|
||||
|
||||
int temp = 0;
|
||||
//希尔排序第一轮
|
||||
//第一轮10个数据分为5组
|
||||
for (int gap = arr.length; gap > 0; gap /= 2) {
|
||||
|
||||
for (int i = gap; i < arr.length; i++) {
|
||||
//遍历各组中所有元素(共gap组,每组两个arr.length/gap元素),步长gap
|
||||
for (int j = i - gap; j >= 0; j -= gap) {
|
||||
//如果当前元素大于加上步长后的那个元素,说明需要交换
|
||||
if (arr[j] > arr[j + gap]) {
|
||||
temp = arr[j];
|
||||
arr[j] = arr[j + gap];
|
||||
arr[j + gap] = temp;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//System.out.printf("希尔排序第轮的结果:%s\n", Arrays.toString(arr));
|
||||
}
|
||||
}
|
||||
|
||||
//希尔排序-移位法
|
||||
public static void shellSort2(int[] arr) {
|
||||
|
||||
//增量gap,并逐步所有增量
|
||||
for (int gap = arr.length / 2; gap > 0; gap /= 2) {
|
||||
|
||||
//从第gap个元素,诸葛对其所在的组进行直接插入排序
|
||||
for (int i = gap; i < arr.length; i++) {
|
||||
|
||||
int j = i;
|
||||
int temp = arr[j];
|
||||
if (arr[j] < arr[j - gap]) {
|
||||
while (j - gap >= 0 && temp < arr[j - gap]) {
|
||||
//移动
|
||||
arr[j] = arr[j - gap];
|
||||
j -= gap;
|
||||
}
|
||||
//当退出while后,就给temp找到了插入的位置
|
||||
arr[j] = temp;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
package com.atguigu.sort.selftry;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 冒泡排序自实现
|
||||
*/
|
||||
public class BubbleSort {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
int[] arr = {3, 9, -1, 10, 20};
|
||||
Bubble(arr);
|
||||
show(arr);
|
||||
|
||||
|
||||
//测试5000条数据
|
||||
int[] arr1 = new int[80000];
|
||||
for (int i = 0; i < arr1.length; i++) {
|
||||
arr1[i] = (int) (Math.random() * 80000);
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String time1 = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:" + time1);
|
||||
show(arr1);
|
||||
Bubble(arr1);
|
||||
System.out.println("排序后:");
|
||||
show(arr1);
|
||||
|
||||
|
||||
Date date2 = new Date();
|
||||
String time2 = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:" + time2);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void Bubble(int[] arr) {
|
||||
int temp = 0;
|
||||
boolean flag = false;
|
||||
|
||||
for (int i = 0; i < arr.length - 1; i++) {
|
||||
for (int j = 0; j < arr.length - i; j++) {
|
||||
if (j < arr.length - 1) {
|
||||
if (arr[j] > arr[j + 1]) {
|
||||
temp = arr[j];
|
||||
arr[j] = arr[j + 1];
|
||||
arr[j + 1] = temp;
|
||||
flag = true;
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if (!flag) {
|
||||
//没有交换过,结束循环
|
||||
break;
|
||||
} else {
|
||||
flag = false;
|
||||
}
|
||||
// System.out.printf("第%d次后的结果",i);
|
||||
// show(arr);
|
||||
// System.out.println();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void show(int[] arr) {
|
||||
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
System.out.printf(arr[i] + " ");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
package com.atguigu.sort.selftry;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
public class MergeSort {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// int[] arr = {8, 4, 5, 7, 1, 3, 6, 2,0,234};
|
||||
// int[] temp = new int[arr.length];
|
||||
// MergeSort(arr, 0, arr.length-1, temp);
|
||||
// System.out.println(Arrays.toString(arr));
|
||||
|
||||
//测试80000个数据进行测试
|
||||
int[] arr =new int[8000000];
|
||||
int[] temp = new int[arr.length]; //归并排序需要一个额外的空间
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
arr[i] = (int)(Math.random()*8000000); //生成一个[0,80000]的数
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date1Str = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:"+date1Str); //排序前的时间:2022-01-17 17:16:31
|
||||
|
||||
MergeSort(arr,0,arr.length-1,temp);
|
||||
Date date2 = new Date();
|
||||
String date2Str = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:"+date2Str); //排序后的时间:2022-01-17 17:16:32
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void MergeSort(int[] arr, int left, int right, int[] temp) {
|
||||
if (left < right) {
|
||||
int mid = (left + right) / 2;
|
||||
//向左递归分解
|
||||
MergeSort(arr, left, mid, temp);
|
||||
//向右递归分解
|
||||
MergeSort(arr, mid + 1, right, temp);
|
||||
//合并
|
||||
Merge(arr, left, mid, right, temp);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 将原数组分为左右两边的数组,通过比较两数组依次数组存在temp中,
|
||||
* 当某一个数组遍历完毕则将另一个数组剩下的元素存入temp中,最后让temp=arr
|
||||
*
|
||||
* @param arr
|
||||
* @param left
|
||||
* @param mid
|
||||
* @param right
|
||||
* @param temp
|
||||
*/
|
||||
public static void Merge(int[] arr, int left, int mid, int right, int[] temp) {
|
||||
int i = left;
|
||||
int j = mid + 1;
|
||||
int t = 0; //初始化temp当前索引
|
||||
|
||||
while (i <= mid && j <= right) {
|
||||
if (arr[i] < arr[j]) {
|
||||
temp[t++] = arr[i++];
|
||||
} else {
|
||||
temp[t++] = arr[j++];
|
||||
}
|
||||
}
|
||||
//左边的数组已全部放入temp
|
||||
while (j <= right) {
|
||||
temp[t++] = arr[j++];
|
||||
}
|
||||
|
||||
//右边的数组已全部放入temp
|
||||
while (i <= mid) {
|
||||
temp[t++] = arr[i++];
|
||||
}
|
||||
|
||||
|
||||
t = 0;
|
||||
int tempLeft = left;
|
||||
while (tempLeft <= right) {
|
||||
arr[tempLeft++] = temp[t++];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
package com.atguigu.sort.selftry;
|
||||
|
||||
|
||||
import com.sun.corba.se.impl.resolver.SplitLocalResolverImpl;
|
||||
|
||||
/**
|
||||
* 快排
|
||||
*/
|
||||
public class QuickSort {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
int[] arr = {2, 5, 1, 9, 6, 4, 8, 7, 0, 3};
|
||||
quickSort(arr);
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
System.out.printf(i+" ");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//数组元素之间的交换
|
||||
public static void change(int[] arr, int i, int j) {
|
||||
int temp = arr[i];
|
||||
arr[i] = arr[j];
|
||||
arr[j] = temp;
|
||||
|
||||
}
|
||||
|
||||
//对数组内元素进行排序
|
||||
public static void quickSort(int[] arr) {
|
||||
|
||||
sort(arr, 0, arr.length - 1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
//对数组内指定范围的数据进行排序
|
||||
public static void sort(int[] arr, int i, int j) {
|
||||
|
||||
if (i > j) {
|
||||
return;
|
||||
}
|
||||
//分别对i到j左子组和右子组的数据进行排序
|
||||
|
||||
int partition = partition(arr, i, j); //返回的是分界值所在的索引
|
||||
|
||||
sort(arr, i, partition - 1);
|
||||
sort(arr, partition + 1, j);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 对指定元素的数据,获取排序后的位置索引
|
||||
*
|
||||
* @param arr 数组
|
||||
* @param i 头位置
|
||||
* @param j 尾位置
|
||||
* @return
|
||||
*/
|
||||
public static int partition(int[] arr, int i, int j) {
|
||||
|
||||
int key = arr[i];
|
||||
int left = i;
|
||||
int right = j+1;
|
||||
int count =0;
|
||||
|
||||
|
||||
while (true) {
|
||||
while (arr[++left] < key){
|
||||
if(left>=j){
|
||||
break;
|
||||
}
|
||||
}
|
||||
while (arr[--right]>key){
|
||||
if(right<=i){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(left>=right){
|
||||
break;
|
||||
}else {
|
||||
change(arr, left, right);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
change(arr,i,right);
|
||||
|
||||
|
||||
return right;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
package com.atguigu.sort.selftry;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
public class QuickSort1 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// int[] arr={2,10,8,22,34,5,2,28,21,11};
|
||||
// quickSort(arr,0,arr.length-1);
|
||||
// System.out.println(Arrays.toString(arr));
|
||||
|
||||
//测试80000个数据进行测试交换法
|
||||
int[] arr = new int[20];
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
arr[i] = (int) (Math.random() * 8000000); //生成一个[0,80000]的数
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date1Str = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:" + date1Str); //排序前的时间:2022-01-14 16:22:18
|
||||
|
||||
quickSort(arr, 0, arr.length - 1);
|
||||
System.out.println(Arrays.toString(arr));
|
||||
|
||||
Date date2 = new Date();
|
||||
String date2Str = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:" + date2Str); //排序后的时间:排序后的时间:2022-01-14 16:22:18 //不到一秒
|
||||
//System.out.println( Arrays.toString(arr));
|
||||
|
||||
}
|
||||
|
||||
public static void exchange(int[] arr, int i, int j) {
|
||||
int temp = arr[j];
|
||||
arr[j] = arr[i];
|
||||
arr[i] = temp;
|
||||
|
||||
}
|
||||
|
||||
public static void quickSort(int[] arr, int i, int j) {
|
||||
|
||||
if (i > j) {
|
||||
return;
|
||||
}
|
||||
|
||||
int index = partition(arr, i, j);
|
||||
quickSort(arr, i, index - 1);
|
||||
quickSort(arr, index + 1, j);
|
||||
|
||||
}
|
||||
|
||||
public static int partition(int[] arr, int i, int j) {
|
||||
|
||||
int left = i;
|
||||
int right = j + 1;
|
||||
int key = arr[i];
|
||||
|
||||
while (true) {
|
||||
|
||||
while (left + 1 < arr.length && arr[++left] < key) {
|
||||
if (left >= j) {
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
while (arr[--right] > key) {
|
||||
if (right <= i) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (left >= right) {
|
||||
break;
|
||||
} else {
|
||||
exchange(arr, left, right);
|
||||
}
|
||||
}
|
||||
exchange(arr, i, right);
|
||||
|
||||
return right;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
package com.atguigu.sort.selftry;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class SelectSort {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
int[] arr={101,34,119,1};
|
||||
selectSort(arr);
|
||||
show(arr);
|
||||
|
||||
int[] arr1=new int[80000];
|
||||
for (int i = 0; i < arr1.length; i++) {
|
||||
arr1[i]=(int) (Math.random()*80000);
|
||||
}
|
||||
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String time1 = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:"+time1);
|
||||
|
||||
selectSort(arr1);
|
||||
|
||||
Date date2 = new Date();
|
||||
String time2 = simpleDateFormat.format(date2);
|
||||
System.out.println("排序前的时间:"+time2);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void selectSort(int[] arr){
|
||||
|
||||
int temp=0;
|
||||
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
|
||||
int key =arr[i];
|
||||
int index=i;
|
||||
|
||||
for (int j = i; j < arr.length; j++) {
|
||||
if(arr[j]<key){
|
||||
key=arr[j];
|
||||
index=j;
|
||||
|
||||
}
|
||||
}
|
||||
if(index!=i){
|
||||
temp=arr[i];
|
||||
arr[i]=arr[index];
|
||||
arr[index]=temp;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void show(int[] arr) {
|
||||
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
System.out.printf(arr[i] + " ");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
package com.atguigu.sort.selftry;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class ShellSort {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// int[] arr = {8, 9, 1, 7, 2, 3, 5, 4, 6, 0};
|
||||
// shellSort1(arr);
|
||||
// show(arr);
|
||||
|
||||
//测试80000个数据进行测试
|
||||
int[] arr = new int[8000000];
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
arr[i] = (int) (Math.random() * 8000000); //生成一个[0,80000]的数
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date1Str = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:" + date1Str); //排序前的时间:2022-01-14 15:36:45
|
||||
|
||||
//show(arr);
|
||||
shellSort1(arr);
|
||||
//show(arr);
|
||||
|
||||
Date date2 = new Date();
|
||||
String date2Str = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:" + date2Str); //排序后的时间:2022-01-14 15:36:46 //不到一秒
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 分小组的移位法,八百万数据2-3秒
|
||||
* @param arr
|
||||
*/
|
||||
public static void shellSort(int[] arr) {
|
||||
|
||||
for (int gap = arr.length / 2; gap >= 1; gap /= 2) {
|
||||
for (int i = 0; i < gap; i++) {
|
||||
for (int j = i+gap; j < arr.length; j += gap) {
|
||||
int key = arr[j];
|
||||
int flag = j;
|
||||
if(key<arr[flag-gap]){
|
||||
while (flag >= i+gap && key < arr[flag - gap]) {
|
||||
arr[flag] = arr[flag - gap];
|
||||
flag -= gap;
|
||||
}
|
||||
arr[flag]=key;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 不分小组,8百万个数据,2秒
|
||||
* @param arr
|
||||
*/
|
||||
public static void shellSort1(int[] arr) {
|
||||
|
||||
for (int gap = arr.length / 2; gap >= 1; gap /= 2) {
|
||||
|
||||
for (int j = gap; j < arr.length; j ++) {
|
||||
int key = arr[j];
|
||||
int flag = j;
|
||||
if(key<arr[flag-gap]){
|
||||
while (flag >= gap && key < arr[flag - gap]) {
|
||||
arr[flag] = arr[flag - gap];
|
||||
flag -= gap;
|
||||
}
|
||||
arr[flag]=key;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void show(int[] arr) {
|
||||
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
System.out.printf(arr[i] + " ");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
package com.atguigu.sort.selftry;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class insertSort {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// int[] arr = {17, 3, 25, 14, 20, 9};
|
||||
// insertSort(arr);
|
||||
// show(arr);
|
||||
|
||||
//测试80000个数据进行测试
|
||||
int[] arr = new int[80000];
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
arr[i] = (int) (Math.random() * 80000); //生成一个[0,80000]的数
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date1Str = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:" + date1Str); //排序前的时间:2022-01-14 15:36:45
|
||||
|
||||
insertSort(arr);
|
||||
|
||||
Date date2 = new Date();
|
||||
String date2Str = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:" + date2Str); //排序后的时间:2022-01-14 15:36:46 //不到一秒
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void insertSort(int[] arr) {
|
||||
|
||||
|
||||
|
||||
for (int i = 1; i < arr.length; i++) {
|
||||
int key = arr[i];
|
||||
int flag = i;
|
||||
while (flag > 0 && key < arr[flag - 1]) {
|
||||
arr[flag] = arr[flag-1];
|
||||
flag--;
|
||||
}
|
||||
arr[flag] = key;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void show(int[] arr) {
|
||||
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
System.out.printf(arr[i] + " ");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
package com.atguigu.sort.selftry;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
public class radixSort {
|
||||
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// int[] arr = {53, 3, 542, 748, 14, 214};
|
||||
//// radixSort(arr);
|
||||
//// System.out.println(Arrays.toString(arr));
|
||||
|
||||
int[] arr =new int[80000];
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
arr[i] = (int)(Math.random()*80000); //生成一个[0,80000]的数
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date1Str = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:"+date1Str); //排序前的时间:2022-01-18 12:53:42
|
||||
|
||||
radixSort(arr);
|
||||
Date date2 = new Date();
|
||||
String date2Str = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:"+date2Str); //排序后的时间:2022-01-18 12:53:43
|
||||
|
||||
}
|
||||
|
||||
public static void radixSort(int[] arr) {
|
||||
|
||||
int[][] tongs = new int[10][arr.length];
|
||||
int[] num = new int[10];
|
||||
int flag = arr[0];
|
||||
|
||||
for (int i = 1; i < arr.length; i++) {
|
||||
if (flag < arr[i]) {
|
||||
flag = arr[i];
|
||||
}
|
||||
}
|
||||
int length = getLength(flag + "");
|
||||
for (int i = 0, n = 1; i < length; i++, n *= 10) {
|
||||
for (int j = 0; j < arr.length ; j++) {
|
||||
int shu = arr[j] / n % 10;
|
||||
tongs[shu][num[shu]++] = arr[j];
|
||||
}
|
||||
int j = 0;
|
||||
for (int k = 0; k < 10; k++) {
|
||||
if (num[k] != 0) {
|
||||
for (int l = 0; l < num[k]; l++) {
|
||||
arr[j++] =tongs[k][l];
|
||||
}
|
||||
num[k]=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static int getLength(String flag) {
|
||||
return flag.length();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
package com.atguigu.sparsearray;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
|
||||
public class sparseArray {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//TODO 1.创建一个二维数组11*11
|
||||
//0表示没有棋子,1表示黑子,2表示会篮子
|
||||
int chessArr1[][] =new int[11][11];
|
||||
chessArr1[1][2]=1;
|
||||
chessArr1[2][3]=2;
|
||||
|
||||
//输出原始的二维数组
|
||||
System.out.println("原始的二维数组~~");
|
||||
for (int[] row : chessArr1) {
|
||||
for (int i : row) {
|
||||
System.out.printf("%d\t",i);
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
//TODO 2.将二维数组转换为稀疏数组
|
||||
//1)先遍历二维数组得到非0数据的个数
|
||||
int sum = 0;
|
||||
int col =0;
|
||||
for (int[] row : chessArr1) {
|
||||
col=row.length;
|
||||
for (int i : row) {
|
||||
if(i !=0){
|
||||
sum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//2)创建对应的稀疏数组
|
||||
int sparseArr[][] =new int[sum+1][3];
|
||||
|
||||
//3)给稀疏数组赋值
|
||||
sparseArr[0][0] =chessArr1.length;
|
||||
sparseArr[0][1] =col;
|
||||
sparseArr[0][2] =sum;
|
||||
|
||||
int k=0; //用于记录是第几个值
|
||||
//4)遍历二维数组,将非零的值存放在稀疏数组中
|
||||
for (int i = 0; i < chessArr1.length; i++) {
|
||||
for (int j = 0; j < col; j++) {
|
||||
if(chessArr1[i][j] != 0){
|
||||
k++;
|
||||
sparseArr[k][0] = i;
|
||||
sparseArr[k][1] = j;
|
||||
sparseArr[k][2] = chessArr1[i][j];
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.println("=====================================");
|
||||
System.out.println("得到的稀疏数组为~~~~~~~~");
|
||||
for (int[] row : sparseArr) {
|
||||
for (int i : row) {
|
||||
System.out.printf("%d\t",i);
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
|
||||
//TODO 3.将稀疏数组恢复成原始的二维数组
|
||||
int chessArr2[][] = new int[sparseArr[0][0]][sparseArr[0][1]];
|
||||
int z =0;
|
||||
for (int[] ints : sparseArr) {
|
||||
if(z !=0){
|
||||
chessArr2[ints[0]][ints[1]] = ints[2];
|
||||
}
|
||||
z++;
|
||||
}
|
||||
System.out.println("=====================================");
|
||||
System.out.println("恢复后的棋盘为~~~~~~~~");
|
||||
for (int[] row : chessArr2) {
|
||||
for (int i : row) {
|
||||
System.out.printf("%d\t",i);
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,114 @@
|
|||
package com.atguigu.stack;
|
||||
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class ArrayStackDemo {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//测试ArrayStack是否正确
|
||||
//先创建一个ArrayStack对象表示栈
|
||||
ArrayStack stack = new ArrayStack(4);
|
||||
String key = "";
|
||||
boolean loop =true; //控制是否退出菜单
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
|
||||
while (loop){
|
||||
|
||||
System.out.println("show: 表示显示栈");
|
||||
System.out.println("exit: 退出程序");
|
||||
System.out.println("push: 表示添加数据到栈(入栈)");
|
||||
System.out.println("pop: 表示从栈取出数据(出栈)");
|
||||
System.out.println("请输入你的选择");
|
||||
key =scanner.next();
|
||||
|
||||
if ("show".equals(key)) {
|
||||
stack.showStack();
|
||||
} else if ("push".equals(key)) {
|
||||
System.out.println("请输入一个数:");
|
||||
int value = scanner.nextInt();
|
||||
stack.push(value);
|
||||
} else if ("pop".equals(key)) {
|
||||
try {
|
||||
int res = stack.pop();
|
||||
System.out.printf("出栈的数据是%d\n", res);
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
} else if ("exit".equals(key)) {
|
||||
scanner.close();
|
||||
loop = false;
|
||||
}
|
||||
}
|
||||
System.out.println("程序退出");
|
||||
|
||||
|
||||
}
|
||||
|
||||
//定义一个栈结构
|
||||
public static class ArrayStack{
|
||||
|
||||
private int maxSize; //栈大小
|
||||
private int[] stack; //数组模拟栈,数据就放在该数组中
|
||||
private int top =-1;
|
||||
|
||||
public ArrayStack(int maxSize) {
|
||||
this.maxSize = maxSize;
|
||||
this.stack = new int[this.maxSize];
|
||||
}
|
||||
|
||||
|
||||
//栈满
|
||||
public boolean isFull(){
|
||||
return top == maxSize-1;
|
||||
}
|
||||
|
||||
//栈空
|
||||
public boolean isEmpty(){
|
||||
return top==-1;
|
||||
}
|
||||
|
||||
//入栈-push
|
||||
public void push(int value){
|
||||
|
||||
//先判断栈是否已经满了
|
||||
if(isFull()){
|
||||
System.out.println("栈满了无法放入数据");
|
||||
return;
|
||||
}
|
||||
top++;
|
||||
stack[top]=value;
|
||||
}
|
||||
|
||||
//出栈-pop,将栈顶的数据返回
|
||||
public int pop(){
|
||||
|
||||
//先判断栈是否为空
|
||||
if(isEmpty()) {
|
||||
//抛出异常
|
||||
throw new RuntimeException("栈空,没有数据");
|
||||
}
|
||||
|
||||
int value=stack[top];
|
||||
top--;
|
||||
return value;
|
||||
|
||||
}
|
||||
|
||||
//显示栈的情况[遍历],遍历时,需要从栈顶开始显示数
|
||||
public void showStack(){
|
||||
|
||||
if(isEmpty()){
|
||||
System.out.println("栈空,没有数据");
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = top; i >=0 ; i--) {
|
||||
System.out.printf("stack[%d]=%d\n",i,stack[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,212 @@
|
|||
package com.atguigu.stack;
|
||||
|
||||
import java.beans.PropertyEditorSupport;
|
||||
|
||||
/**
|
||||
* 尚且有问题
|
||||
* 如果连减就是错的70-2*6-4
|
||||
*/
|
||||
public class Calculator {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
String expression = "70+2*6-4";
|
||||
|
||||
//创建两个栈,一个数栈,一个符号栈
|
||||
ArrayStack numStack = new ArrayStack(10);
|
||||
ArrayStack operStack = new ArrayStack(10);
|
||||
|
||||
//定义需要的相关变量
|
||||
int index = 0; //用于扫描
|
||||
int num1 = 0;
|
||||
int num2 = 0;
|
||||
int oper = 0;
|
||||
int res = 0;
|
||||
char ch = ' '; //将每次扫描得到char保存到ch
|
||||
String keepNum = "";
|
||||
//喧哗扫描expression
|
||||
while (true) {
|
||||
//一次得到expression的每一个字符
|
||||
ch = expression.substring(index, index + 1).charAt(0);
|
||||
//判断ch是什么,然后做相应的处理
|
||||
if (operStack.isOper(ch)) {
|
||||
|
||||
if (!operStack.isEmpty()) {
|
||||
if (operStack.priority(ch) <= operStack.priority(operStack.peek())) {
|
||||
num1 = numStack.pop();
|
||||
num2 = numStack.pop();
|
||||
oper = operStack.pop();
|
||||
res = numStack.cal(num1, num2, oper);
|
||||
//把运算结果放入数栈
|
||||
numStack.push(res);
|
||||
//将当前操作符放入符号栈
|
||||
operStack.push(ch);
|
||||
} else {
|
||||
operStack.push(ch);
|
||||
}
|
||||
} else {
|
||||
//如果为空,直接入栈
|
||||
operStack.push(ch);
|
||||
}
|
||||
} else {
|
||||
//如果是数就入数栈
|
||||
|
||||
//思路分析:
|
||||
//1.当处理多位数时,不能发现是一个数就立即入栈,因为特可能是多位数
|
||||
//2.在处理数,需要向expression的表达式的index后再看一位,如果是数就进行扫描,如果是符号才入栈
|
||||
//3.因此需要定义一个变量用于拼接
|
||||
keepNum += ch;
|
||||
|
||||
//如果ch已经是最后一位,就直接入栈
|
||||
if(index == expression.length()-1){
|
||||
numStack.push(Integer.parseInt(keepNum));
|
||||
}else {
|
||||
if(operStack.isOper(expression.substring(index+1,index+2).charAt(0))){
|
||||
//是操作符
|
||||
numStack.push(Integer.parseInt(keepNum));
|
||||
//清空keeNum
|
||||
keepNum = "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
//让index+1,并判断是否扫描到expression的末尾
|
||||
index++;
|
||||
if (index >= expression.length()) {
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//当表达式扫描完毕,就顺序的从数栈和符号栈中pop出相应的数和符号,并运算
|
||||
while (true) {
|
||||
//如果符号栈为空,则计算到最后的结果,书展中只有一个数字【结果】
|
||||
if (operStack.isEmpty()) {
|
||||
break;
|
||||
}
|
||||
num1 = numStack.pop();
|
||||
num2 = numStack.pop();
|
||||
oper = operStack.pop();
|
||||
res = numStack.cal(num1, num2, oper);
|
||||
numStack.push(res);
|
||||
}
|
||||
System.out.printf("表达式%s = %d", expression, numStack.pop());
|
||||
|
||||
|
||||
}
|
||||
|
||||
//先创建好一个栈
|
||||
//扩展功能:判断优先级的方法
|
||||
//查看数组还是字符
|
||||
public static class ArrayStack {
|
||||
|
||||
private int maxSize; //栈大小
|
||||
private int[] stack; //数组模拟栈,数据就放在该数组中
|
||||
private int top = -1;
|
||||
|
||||
public ArrayStack(int maxSize) {
|
||||
this.maxSize = maxSize;
|
||||
this.stack = new int[this.maxSize];
|
||||
}
|
||||
|
||||
//返回当前栈顶的值,但不出栈
|
||||
public int peek() {
|
||||
return stack[top];
|
||||
}
|
||||
|
||||
//栈满
|
||||
public boolean isFull() {
|
||||
return top == maxSize - 1;
|
||||
}
|
||||
|
||||
//栈空
|
||||
public boolean isEmpty() {
|
||||
return top == -1;
|
||||
}
|
||||
|
||||
//入栈-push
|
||||
public void push(int value) {
|
||||
|
||||
//先判断栈是否已经满了
|
||||
if (isFull()) {
|
||||
System.out.println("栈满了无法放入数据");
|
||||
return;
|
||||
}
|
||||
top++;
|
||||
stack[top] = value;
|
||||
}
|
||||
|
||||
//出栈-pop,将栈顶的数据返回
|
||||
public int pop() {
|
||||
|
||||
//先判断栈是否为空
|
||||
if (isEmpty()) {
|
||||
//抛出异常
|
||||
throw new RuntimeException("栈空,没有数据");
|
||||
}
|
||||
|
||||
int value = stack[top];
|
||||
top--;
|
||||
return value;
|
||||
|
||||
}
|
||||
|
||||
//显示栈的情况[遍历],遍历时,需要从栈顶开始显示数
|
||||
public void showStack() {
|
||||
|
||||
if (isEmpty()) {
|
||||
System.out.println("栈空,没有数据");
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = top; i >= 0; i--) {
|
||||
System.out.printf("stack[%d]=%d\n", i, stack[i]);
|
||||
}
|
||||
}
|
||||
|
||||
//返回运算符的优先级,优先级使用数字表示
|
||||
//数字越大,则优先级越高
|
||||
public int priority(int oper) {
|
||||
if (oper == '*' || oper == '/') {
|
||||
return 1;
|
||||
} else if (oper == '*' || oper == '/') {
|
||||
return 0;
|
||||
} else {
|
||||
return -1; //假定只有+ - * /
|
||||
}
|
||||
}
|
||||
|
||||
//判断是不是一个运算符
|
||||
public boolean isOper(char val) {
|
||||
return val == '+' || val == '-' || val == '*' || val == '/';
|
||||
}
|
||||
|
||||
//计算方法
|
||||
public int cal(int num1, int num2, int oper) {
|
||||
int res = 0; //res 用于存放计算的结果
|
||||
|
||||
switch (oper) {
|
||||
|
||||
case '+':
|
||||
res = num1 + num2;
|
||||
break;
|
||||
case '-':
|
||||
res = num2 - num1;
|
||||
break;
|
||||
case '*':
|
||||
res = num1 * num2;
|
||||
break;
|
||||
case '/':
|
||||
res = num2 / num1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,210 @@
|
|||
package com.atguigu.stack;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Stack;
|
||||
|
||||
/**
|
||||
* 逆波兰计算器求解
|
||||
*/
|
||||
public class PolandNotation {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
/*
|
||||
TODO 完成一个将中缀表达式转成后缀表达式的功能
|
||||
说明:
|
||||
1. 1 + ( ( 2 + 3 )× 4) - 5 => 1 2 3 + 4 * + 5 -
|
||||
2.因为直接对str进行操作,不方便,因此先将1+((2+3)×4)-5 =>中缀表达式对应的list
|
||||
3.将得到的中缀表达式对应的List =>后缀表达式对应的List
|
||||
*/
|
||||
String expression = "1+((2+3)*4)-5";
|
||||
List<String> stringList = toInfixExpressionList(expression);
|
||||
System.out.println("中缀表达式对应的List="+stringList); //[1, +, (, (, 2, +, 3, ), ×, 4, ), -, 5]
|
||||
List<String> parseSuffixExpressionList = parseSuffixExpressionList(stringList);
|
||||
System.out.println("后续表达式对应的List="+parseSuffixExpressionList); //后续表达式对应的List=[1, 2, 3, +, 4, *, +, 5, -]
|
||||
System.out.printf("expression=%d",calculate(parseSuffixExpressionList)); //expression=16
|
||||
|
||||
|
||||
|
||||
// //先定义一个逆波兰表达式
|
||||
// //(30+4)×5-6 => 30 4 + 5 × 6 - =>164
|
||||
// //4*5-8+60/2 => 4 5 * 8 - 60 + 8 2 / + =>76
|
||||
// //为了方柏霓,逆波兰表达式的数字和字符使用空格隔开
|
||||
// String suffixExpression = "4 5 * 8 - 60 + 8 2 / +";
|
||||
// /*
|
||||
// TODO 思路
|
||||
// 1.现将"3 4 + 5 × 6 - " 放到ArrayList中
|
||||
// 2.将ArrayList传递给一个方法,遍历ArrayList配合栈完成计算
|
||||
// */
|
||||
//
|
||||
// //将表达式一次将数据和运算符放入ArrayList中
|
||||
// List<String> rpnList = getListString(suffixExpression);
|
||||
// System.out.println(rpnList);
|
||||
// int res = calculate(rpnList);
|
||||
// System.out.println("计算结果是=" + res);
|
||||
|
||||
|
||||
}
|
||||
public static List<String> parseSuffixExpressionList(List<String> ls){
|
||||
|
||||
//定义两个栈
|
||||
Stack<String> s1 = new Stack<String>(); //符号栈
|
||||
//s2在整个转换过程中,没有pop操作,且需要逆序输出,因此考虑用ArrayList
|
||||
ArrayList<String> s2 = new ArrayList<String>(); //存储中间结果的Lists
|
||||
|
||||
//遍历ls
|
||||
//"1+((2+3)*4)-5"
|
||||
for(String item: ls){
|
||||
|
||||
//如果是一个数,加入s2
|
||||
if(item.matches("\\d+")){
|
||||
s2.add(item);
|
||||
}else if(item.equals("(")){
|
||||
s1.push(item);
|
||||
}else if(item.equals(")")){
|
||||
|
||||
//如果是右括号")",则一次弹出s1栈顶的运算符,并压入s2,直到遇到左括号为止,此时将这一对括号丢弃
|
||||
while(!s1.peek().equals("(")){
|
||||
s2.add(s1.pop());
|
||||
}
|
||||
s1.pop(); //将s1弹出,消除小括号
|
||||
}else {
|
||||
|
||||
//当item的优先级,小于等于s1栈顶运算符,将s1栈顶的与运算符弹出并加入到s2中,再次转到4.1
|
||||
//问题:缺少一个比较优先级高低的方法
|
||||
while(s1.size() != 0 && Operation.getValue(s1.peek()) >=Operation.getValue(item)){
|
||||
s2.add(s1.pop());
|
||||
}
|
||||
//将item压入栈中
|
||||
s1.push(item);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//将s1中剩余的元素符依次弹出并加入s2
|
||||
while(s1.size() != 0){
|
||||
s2.add(s1.pop());
|
||||
}
|
||||
return s2; //逆序输出后就是后缀表达式
|
||||
|
||||
}
|
||||
|
||||
//编写一个方法,可以返回一个运算符的优先级
|
||||
public static class Operation{
|
||||
|
||||
private static int ADD =1;
|
||||
private static int SUB =1;
|
||||
private static int MUL =2;
|
||||
private static int DIV =2;
|
||||
|
||||
//写一个方法返回对应的优先级
|
||||
public static int getValue(String operation){
|
||||
|
||||
int result =0;
|
||||
if(operation.equals("+") ){
|
||||
result =ADD;
|
||||
}else if(operation.equals("-")){
|
||||
result =SUB;
|
||||
}else if(operation.equals("*")){
|
||||
result =MUL;
|
||||
}else if(operation.equals("/")){
|
||||
result =DIV;
|
||||
}else {
|
||||
System.out.println("小括号");
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//方法:将中缀表达式转成对应的List
|
||||
public static List<String> toInfixExpressionList(String s) {
|
||||
|
||||
//定义一个List,存放中中缀表达式对应的内容
|
||||
List<String> ls = new ArrayList<String>();
|
||||
|
||||
int i = 0; //用于遍历中缀表达式字符串
|
||||
String str; //对多位数的拼接
|
||||
char c; //没遍历一个数就放到c
|
||||
do {
|
||||
|
||||
if ((c = s.charAt(i)) < 48 || (c = s.charAt(i)) > 57) {
|
||||
//如果是一个非数字就加入ls
|
||||
ls.add("" + c);
|
||||
i++;
|
||||
} else {
|
||||
//如果是一个数,考虑多位数
|
||||
str = "";
|
||||
while (i < s.length() && (c = s.charAt(i)) >= 48 && (c = s.charAt(i)) <= 57) {
|
||||
str +=c;
|
||||
i++;
|
||||
}
|
||||
ls.add(str);
|
||||
}
|
||||
} while (i < s.length());
|
||||
return ls;
|
||||
}
|
||||
|
||||
|
||||
public static List<String> getListString(String suffixExpression) {
|
||||
|
||||
String[] split = suffixExpression.split(" ");
|
||||
|
||||
List<String> list = new ArrayList<String>();
|
||||
|
||||
for (String s : split) {
|
||||
list.add(s);
|
||||
}
|
||||
return list;
|
||||
|
||||
}
|
||||
|
||||
//完成对逆波兰表达式的运算
|
||||
public static int calculate(List<String> ls) {
|
||||
|
||||
//创建一个栈,只需要一个栈即可
|
||||
Stack<String> stack = new Stack<String>();
|
||||
|
||||
//遍历ls
|
||||
for (String item : ls) {
|
||||
|
||||
//使用正则表达式取出数
|
||||
if (item.matches("\\d+")) {
|
||||
//匹配的是多位数,入栈
|
||||
stack.push(item);
|
||||
|
||||
} else {
|
||||
//pop出两个数,并运算,在入栈
|
||||
int num2 = Integer.parseInt(stack.pop());
|
||||
int num1 = Integer.parseInt(stack.pop());
|
||||
int res = 0;
|
||||
if (item.equals("+")) {
|
||||
res = num1 + num2;
|
||||
} else if (item.equals("-")) {
|
||||
res = num1 - num2;
|
||||
} else if (item.equals("*")) {
|
||||
res = num1 * num2;
|
||||
} else if (item.equals("/")) {
|
||||
res = num1 / num2;
|
||||
} else {
|
||||
throw new RuntimeException("运算符有误");
|
||||
}
|
||||
//把res入栈
|
||||
stack.push("" + res);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
//最后留在stack中的数据就是运算结果
|
||||
return Integer.parseInt(stack.pop());
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,164 @@
|
|||
package com.atguigu.stack;
|
||||
|
||||
/**
|
||||
* 链表模拟栈
|
||||
*/
|
||||
public class SingleLinkedListStackTry {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//进行测试
|
||||
//先创建节点
|
||||
HeroNode hero1 = new HeroNode(1, "宋江", "及时雨");
|
||||
HeroNode hero2 = new HeroNode(2, "卢俊义", "玉麒麟");
|
||||
HeroNode hero3 = new HeroNode(3, "吴用", "智多星");
|
||||
HeroNode hero4 = new HeroNode(4, "林冲", "豹子头");
|
||||
|
||||
SingleLinkedListStack singleLinkedListStack = new SingleLinkedListStack(4);
|
||||
|
||||
singleLinkedListStack.push(hero1);
|
||||
singleLinkedListStack.push(hero2);
|
||||
singleLinkedListStack.push(hero3);
|
||||
singleLinkedListStack.push(hero4);
|
||||
singleLinkedListStack.showLinkedList();
|
||||
|
||||
HeroNode pop = singleLinkedListStack.pop();
|
||||
System.out.println("出栈的值:"+pop);
|
||||
HeroNode pop1 = singleLinkedListStack.pop();
|
||||
System.out.println("出栈的值:"+pop1);
|
||||
singleLinkedListStack.pop();
|
||||
singleLinkedListStack.pop();
|
||||
System.out.println("现在的栈:");
|
||||
singleLinkedListStack.showLinkedList();
|
||||
|
||||
|
||||
}
|
||||
|
||||
//定义一个SingleLinkedList管理我们的英雄
|
||||
public static class SingleLinkedListStack {
|
||||
//先初始化一个头节点,头节点不动,不存放具体的数据
|
||||
private HeroNode head = new HeroNode(0, "", "");
|
||||
private int maxSize;
|
||||
|
||||
public SingleLinkedListStack(int maxSize) {
|
||||
this.maxSize = maxSize;
|
||||
}
|
||||
public int getLength(){
|
||||
|
||||
HeroNode temp =head;
|
||||
int num =0;
|
||||
while (true){
|
||||
|
||||
if(temp.next==null){
|
||||
break;
|
||||
}
|
||||
num++;
|
||||
temp=temp.next;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
//链表模拟入栈
|
||||
private void push(HeroNode data){
|
||||
|
||||
if(getLength()>=maxSize){
|
||||
System.out.println("栈满,无法加入");
|
||||
return;
|
||||
}
|
||||
|
||||
HeroNode temp = head.next;
|
||||
HeroNode cur = null;
|
||||
boolean flag =false;
|
||||
|
||||
if(temp!=null){
|
||||
flag=true;
|
||||
}
|
||||
|
||||
if(flag){
|
||||
cur=temp;
|
||||
head.next=data;
|
||||
data.next=cur;
|
||||
}else {
|
||||
head.next=data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//链表模拟出栈
|
||||
public HeroNode pop(){
|
||||
|
||||
if(head.next==null){
|
||||
throw new RuntimeException("栈空,无法出栈");
|
||||
}
|
||||
|
||||
HeroNode temp =head.next;
|
||||
HeroNode cur=null;
|
||||
HeroNode value =temp;
|
||||
|
||||
cur=temp.next;
|
||||
head.next=cur;
|
||||
return temp;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 显示链表
|
||||
*/
|
||||
public void showLinkedList() {
|
||||
//判断链表是否为空
|
||||
if (head.next == null) {
|
||||
System.out.println("链表为空");
|
||||
return;
|
||||
}
|
||||
//遍历
|
||||
HeroNode temp = head.next;
|
||||
while (true) {
|
||||
//判断是否到链表的结尾
|
||||
if (temp == null) {
|
||||
break;
|
||||
}
|
||||
//输出节点信息
|
||||
System.out.println(temp);
|
||||
temp = temp.next;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//定义HeroNode,每个HeroNode对象就是一个节点
|
||||
public static class HeroNode {
|
||||
|
||||
private int no;
|
||||
private String name;
|
||||
public String nickname;
|
||||
private HeroNode next;
|
||||
|
||||
public HeroNode() {
|
||||
}
|
||||
|
||||
public HeroNode(int no, String name, String nickname) {
|
||||
this.no = no;
|
||||
this.name = name;
|
||||
this.nickname = nickname;
|
||||
}
|
||||
|
||||
public HeroNode(int no, String name, String nickname, HeroNode next) {
|
||||
this.no = no;
|
||||
this.name = name;
|
||||
this.nickname = nickname;
|
||||
this.next = next;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "HeroNode{" +
|
||||
"no=" + no +
|
||||
", name='" + name + '\'' +
|
||||
", nickname='" + nickname + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
package com.atguigu.tree;
|
||||
|
||||
/**
|
||||
* 如何将一个数组转化为一个顺序存储的满二叉树
|
||||
*/
|
||||
public class ArrBinaryTreeDemo {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
int[] arr = {1, 2, 3, 4, 5, 6, 7};
|
||||
|
||||
//创建一个ArrBinaryTree
|
||||
ArrayBinaryTree arrayBinaryTree = new ArrayBinaryTree(arr);
|
||||
arrayBinaryTree.preOrder();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//编写一个ArrayBinaryTree,实现顺序存储二叉树遍历
|
||||
class ArrayBinaryTree {
|
||||
private int[] arr;//存储数据节点的数组
|
||||
|
||||
public ArrayBinaryTree(int[] arr) {
|
||||
this.arr = arr;
|
||||
}
|
||||
|
||||
//重载preOrder
|
||||
public void preOrder(){
|
||||
this.preOrder(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编写一个方法,完成顺序存储二叉树的一个前序遍历
|
||||
* 第n个元素的左子节点为2*n+1
|
||||
* 第n个元素的右子节点为2*n+2
|
||||
* 第n个元素的父节点为(n-1)/2
|
||||
* @param index 数组的下标
|
||||
*/
|
||||
public void preOrder(int index) {
|
||||
|
||||
//如果数组为空,或者arr.length=0
|
||||
if (arr == null || arr.length == 0) {
|
||||
System.out.println("数组为空,不能按照二叉树的前序遍历");
|
||||
}
|
||||
//输出当前这个元素
|
||||
System.out.println(arr[index]);
|
||||
//向左递归调用
|
||||
if ((index * 2 + 1) < arr.length) {
|
||||
preOrder(index * 2 + 1);
|
||||
}
|
||||
//向右递归遍历
|
||||
if((index * 2 + 2) < arr.length){
|
||||
preOrder(index*2+2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,326 @@
|
|||
package com.atguigu.tree;
|
||||
|
||||
public class BinaryTreeDemo {
|
||||
|
||||
public static void main(String[] args) {
|
||||
//创建一个二叉树
|
||||
binaryTree binaryTree = new binaryTree();
|
||||
//创建节点
|
||||
HeroNode root = new HeroNode(1, "宋江");
|
||||
HeroNode heroNode2 = new HeroNode(2, "吴用");
|
||||
HeroNode heroNode3 = new HeroNode(3, "卢俊义");
|
||||
HeroNode heroNode4 = new HeroNode(4, "林冲");
|
||||
HeroNode heroNode5 = new HeroNode(5, "关胜");
|
||||
|
||||
//先手动创建二叉树,后续可以递归创建二叉树
|
||||
root.setLeft(heroNode2);
|
||||
root.setRight(heroNode3);
|
||||
heroNode3.setRight(heroNode4);
|
||||
heroNode3.setLeft(heroNode5);
|
||||
binaryTree.setRoot(root);
|
||||
|
||||
// //前序遍历
|
||||
// System.out.println("前序遍历:");
|
||||
// binaryTree.preOrder();
|
||||
//
|
||||
// //中序遍历
|
||||
// System.out.println("中序遍历:");
|
||||
// binaryTree.infixOrder();
|
||||
//
|
||||
// //后序遍历
|
||||
// System.out.println("后序遍历:");
|
||||
// binaryTree.postOrder();
|
||||
|
||||
// //前序查找
|
||||
// System.out.println("前序查找");
|
||||
// HeroNode heroNode = binaryTree.preOrderSearch(4);
|
||||
// System.out.println(heroNode);
|
||||
|
||||
//删除节点
|
||||
System.out.println("删除前的前序遍历");
|
||||
binaryTree.preOrder(); //1 2 3 5 4
|
||||
binaryTree.delNode(5);
|
||||
System.out.println("删除后的前序遍历");
|
||||
binaryTree.preOrder();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//创建一个二叉树
|
||||
class binaryTree {
|
||||
private HeroNode root;
|
||||
|
||||
public void setRoot(HeroNode root) {
|
||||
this.root = root;
|
||||
}
|
||||
|
||||
//前序遍历
|
||||
public void preOrder() {
|
||||
this.root.preOrder();
|
||||
}
|
||||
|
||||
//中序遍历
|
||||
public void infixOrder() {
|
||||
this.root.infixOrder();
|
||||
}
|
||||
|
||||
//前序遍历
|
||||
public void postOrder() {
|
||||
this.root.postOrder();
|
||||
}
|
||||
|
||||
public HeroNode preOrderSearch(int no) {
|
||||
HeroNode heroNode = root.preOrderSearch(no);
|
||||
if (heroNode == null) {
|
||||
System.out.println("未找到节点");
|
||||
}
|
||||
return heroNode;
|
||||
|
||||
}
|
||||
|
||||
public HeroNode infixOrderSearch(int no) {
|
||||
HeroNode heroNode = root.infixOrderSearch(no);
|
||||
if (heroNode == null) {
|
||||
System.out.println("未找到节点");
|
||||
}
|
||||
return heroNode;
|
||||
|
||||
}
|
||||
|
||||
public HeroNode postOrderSearch(int no) {
|
||||
HeroNode heroNode = root.postOrderSearch(no);
|
||||
if (heroNode == null) {
|
||||
System.out.println("未找到节点");
|
||||
}
|
||||
return heroNode;
|
||||
}
|
||||
|
||||
public Boolean delNode(int no) {
|
||||
if (root == null) {
|
||||
System.out.println("该子树目前为空,无法删除");
|
||||
return false;
|
||||
} else {
|
||||
if (root.getNo() == no) {
|
||||
root = null;
|
||||
return true;
|
||||
}
|
||||
return root.delNode(no);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//创建HeroNode节点
|
||||
class HeroNode {
|
||||
private int no;
|
||||
private String name;
|
||||
private HeroNode left; //默认为null
|
||||
private HeroNode right; //默认为null
|
||||
|
||||
public HeroNode(int no, String name) {
|
||||
this.no = no;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public int getNo() {
|
||||
return no;
|
||||
}
|
||||
|
||||
public void setNo(int no) {
|
||||
this.no = no;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public HeroNode getLeft() {
|
||||
return left;
|
||||
}
|
||||
|
||||
public void setLeft(HeroNode left) {
|
||||
this.left = left;
|
||||
}
|
||||
|
||||
public HeroNode getRight() {
|
||||
return right;
|
||||
}
|
||||
|
||||
public void setRight(HeroNode right) {
|
||||
this.right = right;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "HeroNode{" +
|
||||
"no=" + no +
|
||||
", name='" + name + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
//前序遍历
|
||||
public void preOrder() {
|
||||
if (this != null) {
|
||||
System.out.println(this);
|
||||
if (this.left != null) {
|
||||
this.left.preOrder();
|
||||
}
|
||||
if (this.right != null) {
|
||||
this.right.preOrder();
|
||||
}
|
||||
} else {
|
||||
System.out.println("当前二叉树为空");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//中序遍历
|
||||
public void infixOrder() {
|
||||
if (this != null) {
|
||||
|
||||
if (this.left != null) {
|
||||
this.left.infixOrder();
|
||||
}
|
||||
System.out.println(this);
|
||||
if (this.right != null) {
|
||||
this.right.infixOrder();
|
||||
}
|
||||
} else {
|
||||
System.out.println("当前二叉树为空");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//后序遍历
|
||||
public void postOrder() {
|
||||
if (this != null) {
|
||||
|
||||
if (this.left != null) {
|
||||
this.left.postOrder();
|
||||
}
|
||||
if (this.right != null) {
|
||||
this.right.postOrder();
|
||||
}
|
||||
System.out.println(this);
|
||||
} else {
|
||||
System.out.println("当前二叉树为空");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//前序查找
|
||||
public HeroNode preOrderSearch(int no) {
|
||||
|
||||
if (this == null) {
|
||||
System.out.println("当前子节点为空");
|
||||
return null;
|
||||
} else {
|
||||
if (this.no == no) {
|
||||
return this;
|
||||
}
|
||||
HeroNode resNode = null;
|
||||
if (this.left != null) {
|
||||
resNode = this.left.preOrderSearch(no);
|
||||
}
|
||||
if (resNode == null) {
|
||||
if (this.right != null) {
|
||||
resNode = this.right.preOrderSearch(no);
|
||||
}
|
||||
}
|
||||
|
||||
return resNode;
|
||||
}
|
||||
}
|
||||
|
||||
//中序查找
|
||||
public HeroNode infixOrderSearch(int no) {
|
||||
|
||||
if (this == null) {
|
||||
System.out.println("当前子节点为空");
|
||||
return null;
|
||||
} else {
|
||||
|
||||
HeroNode resNode = null;
|
||||
if (this.left != null) {
|
||||
resNode = this.left.preOrderSearch(no);
|
||||
}
|
||||
|
||||
|
||||
if (resNode == null) {
|
||||
if (this.no == no) {
|
||||
return this;
|
||||
}
|
||||
if (this.right != null) {
|
||||
resNode = this.right.preOrderSearch(no);
|
||||
}
|
||||
}
|
||||
return resNode;
|
||||
}
|
||||
}
|
||||
|
||||
//后序查找
|
||||
public HeroNode postOrderSearch(int no) {
|
||||
|
||||
if (this == null) {
|
||||
System.out.println("当前子节点为空");
|
||||
return null;
|
||||
} else {
|
||||
|
||||
HeroNode resNode = null;
|
||||
if (this.left != null) {
|
||||
resNode = this.left.preOrderSearch(no);
|
||||
}
|
||||
if (resNode == null) {
|
||||
if (this.right != null) {
|
||||
resNode = this.right.preOrderSearch(no);
|
||||
}
|
||||
if (resNode == null) {
|
||||
if (this.no == no) {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
return resNode;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归删除节点:
|
||||
* 1.如果删除的节点是叶子结点,就删除该节点
|
||||
* 2.如果删除的节点是非叶子节点,则删除该子树
|
||||
*
|
||||
* @param no 要删除的节点编号
|
||||
*/
|
||||
public Boolean delNode(int no) {
|
||||
|
||||
if (this.left != null && this.left.no == no) {
|
||||
this.left = null;
|
||||
return true;
|
||||
}
|
||||
if (this.right != null && this.right.no == no) {
|
||||
this.right = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
Boolean flag = false;
|
||||
if (this.left != null) {
|
||||
flag = this.left.delNode(no);
|
||||
}
|
||||
if (!flag) {
|
||||
if (this.right != null) {
|
||||
flag = this.right.delNode(no);
|
||||
}
|
||||
}
|
||||
|
||||
return flag;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
package com.atguigu.tree;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 堆排序
|
||||
*/
|
||||
public class HeapSort {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// int[] arr = {20, 50, 45, 40, 35,10,30,15,25};
|
||||
// //要求将数组按升序排列
|
||||
// heapSort(arr);
|
||||
// System.out.println(Arrays.toString(arr));
|
||||
|
||||
//测试80000个数据进行测试
|
||||
int[] arr =new int[8000000];
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
arr[i] = (int)(Math.random()*8000000); //生成一个[0,80000]的数
|
||||
}
|
||||
Date date1 = new Date();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date1Str = simpleDateFormat.format(date1);
|
||||
System.out.println("排序前的时间:"+date1Str); //排序前的时间:2022-02-15 21:19:36
|
||||
|
||||
heapSort(arr);
|
||||
Date date2 = new Date();
|
||||
String date2Str = simpleDateFormat.format(date2);
|
||||
System.out.println("排序后的时间:"+date2Str); //排序后的时间:2022-02-15 21:19:40
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 编写一个堆排序的方法
|
||||
*/
|
||||
public static void heapSort(int[] arr) {
|
||||
|
||||
//TODO (1)将无序序列构建成一个堆,根据升序降序需求选择大顶堆或者小顶堆
|
||||
//arr.length/2-1求出来的是完全二叉树的最后一个非叶子节点
|
||||
for (int i = arr.length/2-1; i >= 0; i--) {
|
||||
adjustHeap(arr,i,arr.length);
|
||||
}
|
||||
|
||||
|
||||
int temp=0;
|
||||
//TODO (2)将顶对元素与末尾元素交换,将最大元素放置在数组末尾
|
||||
//TODO (3)重新调整结构,使其满足堆定义,然后继续交换对顶元素与当前末尾元素,贩毒执行调整+交换步骤,直到整个序列有序
|
||||
for (int i = arr.length-1; i >0; i--) {
|
||||
//交换
|
||||
temp=arr[i];
|
||||
arr[i]=arr[0];
|
||||
arr[0]=temp;
|
||||
adjustHeap(arr,0,i);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 前提:该节点的所有子节点都已经是大顶堆了
|
||||
* 将以第i个位置为根节点时以下树,调整成一个大顶堆
|
||||
*
|
||||
* @param arr 待调整的数组
|
||||
* @param i 表示非叶子节点在数组的中的索引
|
||||
* @param length 表示对多少各位元素继续调整,length是在逐渐地减小的
|
||||
*/
|
||||
public static void adjustHeap(int[] arr, int i, int length) {
|
||||
|
||||
int temp = arr[i];//将当前数组的元素值,保存在临时变量
|
||||
|
||||
//开始调整
|
||||
//说明:j = i * 2 + 1 ;这里k就是i节点的左子节点
|
||||
for (int j = i * 2 + 1; j < length; j = j * 2 + 1) {
|
||||
if (j + 1 < length && arr[j] < arr[j + 1]) {
|
||||
//左子节点的值小于右子节点的值
|
||||
j++; //j指向右子节点
|
||||
}
|
||||
if (arr[j] > temp) {
|
||||
//如果子节点大于父节点
|
||||
arr[i] = arr[j];//把较大的值赋给当前节点
|
||||
i = j; //将i指向j,继续循环比较
|
||||
}else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
//当for循环结束后,我们已经将以i为父节点的树的最大值,放在了i的位置
|
||||
arr[i]=temp; //将temp值放在调整后的位置
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.atguigu.tree;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Test {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//以ArrayList底层为例,看看底层是如何实现扩容的
|
||||
//底层:transient Object[] elementData;维护了一个可扩容的Object数组
|
||||
//当数组需要扩容时会调用grow方法进行扩容
|
||||
ArrayList<Object> objects = new ArrayList<Object>();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,416 @@
|
|||
package com.atguigu.tree.Threadedbinarytree;
|
||||
|
||||
public class ThreadedBinaryTreeDemo {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//测试中序线索化二叉树的功能
|
||||
HeroNode root = new HeroNode(1, "tom");
|
||||
HeroNode node2 = new HeroNode(3, "jack");
|
||||
HeroNode node3 = new HeroNode(6, "smith");
|
||||
HeroNode node4 = new HeroNode(8, "mary");
|
||||
HeroNode node5 = new HeroNode(10, "king");
|
||||
HeroNode node6 = new HeroNode(14, "dim");
|
||||
|
||||
//二叉树,后面我们要递归创建,现在简单处理使用手动创建
|
||||
root.setLeft(node2);
|
||||
root.setRight(node3);
|
||||
node2.setLeft(node4);
|
||||
node2.setRight(node5);
|
||||
node3.setLeft(node6);
|
||||
|
||||
//测试中序线索化
|
||||
ThreadedBinaryTree threadedBinaryTree = new ThreadedBinaryTree();
|
||||
threadedBinaryTree.setRoot(root);
|
||||
threadedBinaryTree.threadedNodes();
|
||||
|
||||
//测试:以10号节点进行测试
|
||||
HeroNode leftNode = node5.getLeft();
|
||||
HeroNode rightNode = node5.getRight();
|
||||
System.out.println("10号节点的前驱结点是:"+leftNode); //3
|
||||
System.out.println("10号节点的后继结点是:"+rightNode); //1
|
||||
|
||||
//当线索化二叉树后,不能再使用以前的遍历方法了
|
||||
System.out.println("使用线索化的方式遍历线索化二叉树:");
|
||||
threadedBinaryTree.threadedList(); //8,3,10,1,14,6
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//定义ThreadedBinaryTree实现了线索化功能二叉树
|
||||
class ThreadedBinaryTree {
|
||||
private HeroNode root;
|
||||
|
||||
//为了实现线索化,需要创建要给指向当前节点的前驱结点的指针
|
||||
//在递归进行线索化时,pre总是保留前一个节点
|
||||
private HeroNode pre = null;
|
||||
|
||||
|
||||
public void setRoot(HeroNode root) {
|
||||
this.root = root;
|
||||
}
|
||||
|
||||
//重载threadedNodes方法
|
||||
public void threadedNodes(){
|
||||
this.threadedNodes(root);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 遍历线索化二叉树的方法
|
||||
*
|
||||
*/
|
||||
public void threadedList(){
|
||||
//定义一个变量,存储当前遍历的节点,从root开始
|
||||
HeroNode node =root;
|
||||
while(node !=null){
|
||||
//循环找到leftType == 1,第一个找到的就是8节点
|
||||
//当leftType==1.说明该节点是按照线索化处理后的有效节点
|
||||
while(node.getLeftType()==0){
|
||||
node=node.getLeft();
|
||||
}
|
||||
//打印当前及诶单
|
||||
System.out.println(node);
|
||||
//如果当前节点的右节点指向的是后稷街店,就一直输出
|
||||
while(node.getRightType() ==1){
|
||||
node=node.getRight();
|
||||
System.out.println(node);
|
||||
}
|
||||
//替换这个遍历的节点
|
||||
node=node.getRight();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 编写对二叉树进行中序线索化的方法
|
||||
*
|
||||
* @param node 当前需要线索化的节点
|
||||
*/
|
||||
public void threadedNodes(HeroNode node) {
|
||||
|
||||
if (node == null) {
|
||||
//无法线索化
|
||||
return;
|
||||
}
|
||||
|
||||
//TODO (一)先线索化左子树
|
||||
threadedNodes(node.getLeft());
|
||||
|
||||
|
||||
//TODO (二)线索化当前节点
|
||||
|
||||
//处理当前节点的前驱节点
|
||||
if (node.getLeft() == null) {
|
||||
//让当前节点的左指针指向前驱结点
|
||||
node.setLeft(pre);
|
||||
//修改当前节点的左指针的类型,指向前驱结点
|
||||
node.setLeftType(1);
|
||||
}
|
||||
//处理的当前节点的后继节点
|
||||
if (pre != null && pre.getRight() == null) {
|
||||
//让前驱结点的有指针指向当前节点
|
||||
pre.setRight(node);
|
||||
//修改前驱结点的右指针类型
|
||||
pre.setRightType(1);
|
||||
}
|
||||
//每处理一个节点后,让当前节点是下一个节点的前驱节点
|
||||
pre=node;
|
||||
|
||||
|
||||
//TODO (三)线索化右子数
|
||||
threadedNodes(node.getRight());
|
||||
|
||||
}
|
||||
|
||||
//前序遍历
|
||||
public void preOrder() {
|
||||
this.root.preOrder();
|
||||
}
|
||||
|
||||
//中序遍历
|
||||
public void infixOrder() {
|
||||
this.root.infixOrder();
|
||||
}
|
||||
|
||||
//前序遍历
|
||||
public void postOrder() {
|
||||
this.root.postOrder();
|
||||
}
|
||||
|
||||
public HeroNode preOrderSearch(int no) {
|
||||
HeroNode heroNode = root.preOrderSearch(no);
|
||||
if (heroNode == null) {
|
||||
System.out.println("未找到节点");
|
||||
}
|
||||
return heroNode;
|
||||
|
||||
}
|
||||
|
||||
public HeroNode infixOrderSearch(int no) {
|
||||
HeroNode heroNode = root.infixOrderSearch(no);
|
||||
if (heroNode == null) {
|
||||
System.out.println("未找到节点");
|
||||
}
|
||||
return heroNode;
|
||||
|
||||
}
|
||||
|
||||
public HeroNode postOrderSearch(int no) {
|
||||
HeroNode heroNode = root.postOrderSearch(no);
|
||||
if (heroNode == null) {
|
||||
System.out.println("未找到节点");
|
||||
}
|
||||
return heroNode;
|
||||
}
|
||||
|
||||
public Boolean delNode(int no) {
|
||||
if (root == null) {
|
||||
System.out.println("该子树目前为空,无法删除");
|
||||
return false;
|
||||
} else {
|
||||
if (root.getNo() == no) {
|
||||
root = null;
|
||||
return true;
|
||||
}
|
||||
return root.delNode(no);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//创建HeroNode
|
||||
class HeroNode {
|
||||
private int no;
|
||||
private String name;
|
||||
private HeroNode left; //默认为null
|
||||
private HeroNode right; //默认为null
|
||||
|
||||
//说明:
|
||||
//1.如果leftType==0表示指向的是左子树,如果是1则表示前驱节点
|
||||
//1.如果rightType==0表示指向的是右子树,如果是1则表示后继节点
|
||||
private int leftType;
|
||||
private int rightType;
|
||||
|
||||
public int getLeftType() {
|
||||
return leftType;
|
||||
}
|
||||
|
||||
public void setLeftType(int leftType) {
|
||||
this.leftType = leftType;
|
||||
}
|
||||
|
||||
public int getRightType() {
|
||||
return rightType;
|
||||
}
|
||||
|
||||
public void setRightType(int rightType) {
|
||||
this.rightType = rightType;
|
||||
}
|
||||
|
||||
public HeroNode(int no, String name) {
|
||||
this.no = no;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public int getNo() {
|
||||
return no;
|
||||
}
|
||||
|
||||
public void setNo(int no) {
|
||||
this.no = no;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public HeroNode getLeft() {
|
||||
return left;
|
||||
}
|
||||
|
||||
public void setLeft(HeroNode left) {
|
||||
this.left = left;
|
||||
}
|
||||
|
||||
public HeroNode getRight() {
|
||||
return right;
|
||||
}
|
||||
|
||||
public void setRight(HeroNode right) {
|
||||
this.right = right;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "HeroNode{" +
|
||||
"no=" + no +
|
||||
", name='" + name + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
//前序遍历
|
||||
public void preOrder() {
|
||||
if (this != null) {
|
||||
System.out.println(this);
|
||||
if (this.left != null) {
|
||||
this.left.preOrder();
|
||||
}
|
||||
if (this.right != null) {
|
||||
this.right.preOrder();
|
||||
}
|
||||
} else {
|
||||
System.out.println("当前二叉树为空");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//中序遍历
|
||||
public void infixOrder() {
|
||||
if (this != null) {
|
||||
|
||||
if (this.left != null) {
|
||||
this.left.infixOrder();
|
||||
}
|
||||
System.out.println(this);
|
||||
if (this.right != null) {
|
||||
this.right.infixOrder();
|
||||
}
|
||||
} else {
|
||||
System.out.println("当前二叉树为空");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//后序遍历
|
||||
public void postOrder() {
|
||||
if (this != null) {
|
||||
|
||||
if (this.left != null) {
|
||||
this.left.postOrder();
|
||||
}
|
||||
if (this.right != null) {
|
||||
this.right.postOrder();
|
||||
}
|
||||
System.out.println(this);
|
||||
} else {
|
||||
System.out.println("当前二叉树为空");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//前序查找
|
||||
public HeroNode preOrderSearch(int no) {
|
||||
|
||||
if (this == null) {
|
||||
System.out.println("当前子节点为空");
|
||||
return null;
|
||||
} else {
|
||||
if (this.no == no) {
|
||||
return this;
|
||||
}
|
||||
HeroNode resNode = null;
|
||||
if (this.left != null) {
|
||||
resNode = this.left.preOrderSearch(no);
|
||||
}
|
||||
if (resNode == null) {
|
||||
if (this.right != null) {
|
||||
resNode = this.right.preOrderSearch(no);
|
||||
}
|
||||
}
|
||||
|
||||
return resNode;
|
||||
}
|
||||
}
|
||||
|
||||
//中序查找
|
||||
public HeroNode infixOrderSearch(int no) {
|
||||
|
||||
if (this == null) {
|
||||
System.out.println("当前子节点为空");
|
||||
return null;
|
||||
} else {
|
||||
|
||||
HeroNode resNode = null;
|
||||
if (this.left != null) {
|
||||
resNode = this.left.preOrderSearch(no);
|
||||
}
|
||||
|
||||
|
||||
if (resNode == null) {
|
||||
if (this.no == no) {
|
||||
return this;
|
||||
}
|
||||
if (this.right != null) {
|
||||
resNode = this.right.preOrderSearch(no);
|
||||
}
|
||||
}
|
||||
return resNode;
|
||||
}
|
||||
}
|
||||
|
||||
//后序查找
|
||||
public HeroNode postOrderSearch(int no) {
|
||||
|
||||
if (this == null) {
|
||||
System.out.println("当前子节点为空");
|
||||
return null;
|
||||
} else {
|
||||
|
||||
HeroNode resNode = null;
|
||||
if (this.left != null) {
|
||||
resNode = this.left.preOrderSearch(no);
|
||||
}
|
||||
if (resNode == null) {
|
||||
if (this.right != null) {
|
||||
resNode = this.right.preOrderSearch(no);
|
||||
}
|
||||
if (resNode == null) {
|
||||
if (this.no == no) {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
return resNode;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归删除节点:
|
||||
* 1.如果删除的节点是叶子结点,就删除该节点
|
||||
* 2.如果删除的节点是非叶子节点,则删除该子树
|
||||
*
|
||||
* @param no 要删除的节点编号
|
||||
*/
|
||||
public Boolean delNode(int no) {
|
||||
|
||||
if (this.left != null && this.left.no == no) {
|
||||
this.left = null;
|
||||
return true;
|
||||
}
|
||||
if (this.right != null && this.right.no == no) {
|
||||
this.right = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
Boolean flag = false;
|
||||
if (this.left != null) {
|
||||
flag = this.left.delNode(no);
|
||||
}
|
||||
if (!flag) {
|
||||
if (this.right != null) {
|
||||
flag = this.right.delNode(no);
|
||||
}
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?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">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.atguigu.DataStructures_Algorithm</groupId>
|
||||
<artifactId>DataStructures_Algorithm</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<modules>
|
||||
<module>DataStructures</module>
|
||||
</modules>
|
||||
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?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">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>Leecode</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>RELEASE</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
package listnode;
|
||||
/**
|
||||
* Definition for singly-linked list.
|
||||
* public class ListNode {
|
||||
* int val;
|
||||
* ListNode next;
|
||||
* ListNode() {}
|
||||
* ListNode(int val) { this.val = val; }
|
||||
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
|
||||
* }
|
||||
*/
|
||||
|
||||
import com.sun.corba.se.impl.resolver.SplitLocalResolverImpl;
|
||||
|
||||
/**
|
||||
* 2.两数相加
|
||||
*/
|
||||
public class addTwoNumbers {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
ListNode l1 = new ListNode(9);
|
||||
// l1.next=new ListNode(4);
|
||||
// l1.next.next=new ListNode(3);
|
||||
|
||||
ListNode l2 = new ListNode(1);
|
||||
l2.next = new ListNode(9);
|
||||
l2.next.next = new ListNode(9);
|
||||
l2.next.next.next = new ListNode(9);
|
||||
l2.next.next.next.next = new ListNode(9);
|
||||
l2.next.next.next.next.next = new ListNode(9);
|
||||
l2.next.next.next.next.next.next = new ListNode(9);
|
||||
l2.next.next.next.next.next.next.next = new ListNode(9);
|
||||
l2.next.next.next.next.next.next.next.next = new ListNode(9);
|
||||
l2.next.next.next.next.next.next.next.next.next = new ListNode(9);
|
||||
addTwoNums(l1, l2);
|
||||
|
||||
|
||||
}
|
||||
|
||||
//两非空链表
|
||||
public static ListNode addTwoNums(ListNode l1, ListNode l2) {
|
||||
|
||||
ListNode head = null;
|
||||
ListNode tail = null;
|
||||
|
||||
int carry = 0;
|
||||
|
||||
while (l1 != null || l2 != null) {
|
||||
|
||||
int num1 = l1 == null ? 0 : l1.val;
|
||||
int num2 = l2 == null ? 0 : l2.val;
|
||||
carry = num1 + num2 + carry;
|
||||
|
||||
if (head == null) {
|
||||
head = tail = new ListNode(carry % 10);
|
||||
} else {
|
||||
tail.next = new ListNode(carry % 10);
|
||||
tail = tail.next;
|
||||
}
|
||||
carry /= 10;
|
||||
|
||||
if (l1 != null) {
|
||||
l1 = l1.next;
|
||||
}
|
||||
if (l2 != null) {
|
||||
l2 = l2.next;
|
||||
}
|
||||
}
|
||||
|
||||
if (carry != 0) {
|
||||
tail.next = new ListNode(carry);
|
||||
}
|
||||
|
||||
return head;
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static class ListNode {
|
||||
int val;
|
||||
ListNode next;
|
||||
|
||||
ListNode() {
|
||||
}
|
||||
|
||||
ListNode(int val) {
|
||||
this.val = val;
|
||||
}
|
||||
|
||||
ListNode(int val, ListNode next) {
|
||||
this.val = val;
|
||||
this.next = next;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
package listnode;
|
||||
|
||||
public class mergeKLists {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
ListNode[] lists=new ListNode[1];
|
||||
|
||||
ListNode l0 = new ListNode();
|
||||
// l0.next=new ListNode(4);
|
||||
// l0.next.next=new ListNode(5);
|
||||
|
||||
ListNode l1 = new ListNode(1);
|
||||
l1.next=new ListNode(3);
|
||||
l1.next.next=new ListNode(4);
|
||||
|
||||
|
||||
ListNode l2 = new ListNode(2);
|
||||
// l2.next = new ListNode(2);
|
||||
l2.next = new ListNode(6);
|
||||
// l2.next.next =new ListNode(4);
|
||||
|
||||
lists[0]=l0;
|
||||
// lists[1]=l1;
|
||||
// lists[2]=l2;
|
||||
|
||||
ListNode listNode = mergeKLists(lists);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 分治算法思路求解
|
||||
* @param lists
|
||||
* @return
|
||||
*/
|
||||
public static ListNode mergeKLists(ListNode[] lists){
|
||||
|
||||
int k=lists.length;
|
||||
|
||||
return mergeLists(lists,0,k-1);
|
||||
|
||||
}
|
||||
public static ListNode mergeLists(ListNode[] list,int head,int tail){
|
||||
|
||||
if(head==tail){
|
||||
return list[head];
|
||||
}
|
||||
if(head>tail){
|
||||
return null;
|
||||
}
|
||||
int mid=(head+tail)/2;
|
||||
ListNode listNode1 = mergeLists(list, head, mid);
|
||||
ListNode listNode2 = mergeLists(list, mid + 1, tail);
|
||||
|
||||
return mergeTwoLists(listNode1,listNode2);
|
||||
}
|
||||
|
||||
public static ListNode mergeTwoLists(ListNode listNode1,ListNode listNode2){
|
||||
if(listNode1==null){
|
||||
return listNode2;
|
||||
}else if(listNode2==null){
|
||||
return listNode1;
|
||||
}else if(listNode1.val<listNode2.val){
|
||||
listNode1.next=mergeTwoLists(listNode1.next,listNode2);
|
||||
return listNode1;
|
||||
}else {
|
||||
listNode2.next=mergeTwoLists(listNode1,listNode2.next);
|
||||
return listNode2;
|
||||
}
|
||||
}
|
||||
|
||||
public static Boolean isEmpty(ListNode[] lists){
|
||||
|
||||
for (int i = 0; i < lists.length; i++) {
|
||||
if(lists[i]!=null){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static class ListNode {
|
||||
int val;
|
||||
ListNode next;
|
||||
|
||||
ListNode() {
|
||||
}
|
||||
|
||||
ListNode(int val) {
|
||||
this.val = val;
|
||||
}
|
||||
|
||||
ListNode(int val, ListNode next) {
|
||||
this.val = val;
|
||||
this.next = next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
package listnode;
|
||||
|
||||
public class mergeTwoLists {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
ListNode l1 = new ListNode(1);
|
||||
l1.next=new ListNode(2);
|
||||
l1.next.next=new ListNode(4);
|
||||
|
||||
|
||||
ListNode l2 = new ListNode(1);
|
||||
// l2.next = new ListNode(2);
|
||||
l2.next = new ListNode(3);
|
||||
l2.next.next =new ListNode(4);
|
||||
|
||||
ListNode listNode = mergeTwoLists1(l1, l2);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归法,判断完之后调用较小链表的下一个
|
||||
* @param list1
|
||||
* @param list2
|
||||
* @return
|
||||
*/
|
||||
public static ListNode mergeTwoLists(ListNode list1, ListNode list2) {
|
||||
if(list1==null){
|
||||
return list2;
|
||||
}else if(list2==null){
|
||||
return list1;
|
||||
}else if(list1.val<list2.val){
|
||||
list1.next=mergeTwoLists(list1.next,list2);
|
||||
return list1;
|
||||
}else {
|
||||
list2.next=mergeTwoLists(list1,list2.next);
|
||||
return list2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 指针判断法
|
||||
* @param list1
|
||||
* @param list2
|
||||
* @return
|
||||
*/
|
||||
public static ListNode mergeTwoLists1(ListNode list1, ListNode list2) {
|
||||
ListNode preHead=new ListNode(-1);
|
||||
ListNode pre=preHead;
|
||||
|
||||
while (list1!=null&&list2!=null){
|
||||
|
||||
if(list1.val<list2.val){
|
||||
pre.next=list1;
|
||||
list1=list1.next;
|
||||
}else {
|
||||
pre.next=list2;
|
||||
list2=list2.next;
|
||||
}
|
||||
pre=pre.next;
|
||||
|
||||
|
||||
}
|
||||
|
||||
pre.next= list1==null? list2:list1;
|
||||
return preHead.next;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static class ListNode {
|
||||
int val;
|
||||
ListNode next;
|
||||
|
||||
ListNode() {
|
||||
}
|
||||
|
||||
ListNode(int val) {
|
||||
this.val = val;
|
||||
}
|
||||
|
||||
ListNode(int val, ListNode next) {
|
||||
this.val = val;
|
||||
this.next = next;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,146 @@
|
|||
package listnode;
|
||||
|
||||
/**
|
||||
* 删除链表的倒数第N个节点
|
||||
*/
|
||||
public class removeNthFromEnd {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
ListNode l2 = new ListNode(1);
|
||||
// l2.next = new ListNode(2);
|
||||
// l2.next.next = new ListNode(3);
|
||||
// l2.next.next.next =new ListNode(4);
|
||||
// l2.next.next.next.next =new ListNode(5);
|
||||
// l2.next.next.next.next.next = new ListNode(9);
|
||||
// l2.next.next.next.next.next.next =new ListNode(9);
|
||||
// l2.next.next.next.next.next.next.next = new ListNode(9);
|
||||
// l2.next.next.next.next.next.next.next.next =new ListNode(9);
|
||||
// l2.next.next.next.next.next.next.next.next.next =new ListNode(9);
|
||||
removeNthFromEnd3(l2, 1);
|
||||
|
||||
getLength(l2);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取长度length之后,遍历到第length-n的位置删除
|
||||
*
|
||||
* @param head
|
||||
* @param n
|
||||
* @return
|
||||
*/
|
||||
public static ListNode removeNthFromEnd1(ListNode head, int n) {
|
||||
|
||||
//添加头节点
|
||||
ListNode dust = new ListNode(0, head);
|
||||
int length = getLength(head);
|
||||
|
||||
if (n == length) {
|
||||
return head.next;
|
||||
}
|
||||
for (int i = n; i < length - 1; i++) {
|
||||
head = head.next;
|
||||
}
|
||||
|
||||
head.next = head.next.next;
|
||||
return dust.next;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 快慢指针
|
||||
* 使用一个快指针比慢指针快n,当快指针到达尾部的时候,慢指针刚好到倒数第N个位置
|
||||
* @param head
|
||||
* @param n
|
||||
* @return
|
||||
*/
|
||||
public static ListNode removeNthFromEnd2(ListNode head,int n){
|
||||
|
||||
//添加头节点
|
||||
ListNode dust =new ListNode(0,head);
|
||||
|
||||
ListNode fast=head;
|
||||
ListNode slow=dust;
|
||||
|
||||
//快指针先走n步
|
||||
for (int i = 0; i < n; i++) {
|
||||
fast=fast.next;
|
||||
}
|
||||
|
||||
//快指针走到头,慢指针走到倒数第n-1个
|
||||
while(fast !=null){
|
||||
fast=fast.next;
|
||||
slow=slow.next;
|
||||
}
|
||||
slow.next=slow.next.next;
|
||||
|
||||
return dust.next;
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归法,递归找到链表的尾,回溯时n+1
|
||||
* @param head
|
||||
* @param n
|
||||
* @return
|
||||
*/
|
||||
public static ListNode removeNthFromEnd3(ListNode head,int n){
|
||||
|
||||
int sum = traverse(head, n);
|
||||
if(sum==n){
|
||||
return head.next;
|
||||
}
|
||||
|
||||
return head;
|
||||
|
||||
}
|
||||
|
||||
private static int traverse(ListNode node, int n) {
|
||||
if(node ==null){
|
||||
return 0;
|
||||
}
|
||||
int sum=traverse(node.next,n);
|
||||
if(sum==n){
|
||||
node.next=node.next.next;
|
||||
}
|
||||
return sum+1;
|
||||
|
||||
}
|
||||
|
||||
public static int getLength(ListNode head) {
|
||||
|
||||
ListNode temp = head;
|
||||
int count = 0;
|
||||
while (temp != null) {
|
||||
count++;
|
||||
temp = temp.next;
|
||||
}
|
||||
|
||||
return count;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static class ListNode {
|
||||
int val;
|
||||
ListNode next;
|
||||
|
||||
ListNode() {
|
||||
}
|
||||
|
||||
ListNode(int val) {
|
||||
this.val = val;
|
||||
}
|
||||
|
||||
ListNode(int val, ListNode next) {
|
||||
this.val = val;
|
||||
this.next = next;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
package listnode.selftry;
|
||||
|
||||
import listnode.mergeTwoLists;
|
||||
|
||||
public class mergeKLists {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
ListNode[] lists=null;
|
||||
|
||||
ListNode l0 = new ListNode();
|
||||
// l0.next=new ListNode(4);
|
||||
// l0.next.next=new ListNode(5);
|
||||
|
||||
ListNode l1 = new ListNode(1);
|
||||
l1.next=new ListNode(3);
|
||||
l1.next.next=new ListNode(4);
|
||||
|
||||
|
||||
ListNode l2 = new ListNode(2);
|
||||
// l2.next = new ListNode(2);
|
||||
l2.next = new ListNode(6);
|
||||
// l2.next.next =new ListNode(4);
|
||||
|
||||
// lists[0]=l0;
|
||||
// lists[1]=l1;
|
||||
// lists[2]=l2;
|
||||
|
||||
ListNode listNode = mergeKLists(lists);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static ListNode mergeKLists(ListNode[] lists){
|
||||
|
||||
ListNode head=new ListNode();
|
||||
ListNode dust=new ListNode(1,head);
|
||||
if(lists==null){
|
||||
return null;
|
||||
}
|
||||
if(isEmpty(lists)){
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
while (!isEmpty(lists)){
|
||||
int min=0;
|
||||
int flag=0;
|
||||
for (int i = 0; i < lists.length; i++) {
|
||||
if(lists[i]!=null){
|
||||
min=lists[i].val;
|
||||
flag=i;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < lists.length; i++) {
|
||||
if(lists[i]!=null){
|
||||
if(min>lists[i].val){
|
||||
min=lists[i].val;
|
||||
flag=i;
|
||||
}
|
||||
}
|
||||
}
|
||||
head.next=lists[flag];
|
||||
head=head.next;
|
||||
lists[flag]=lists[flag].next;
|
||||
}
|
||||
|
||||
|
||||
return dust.next.next;
|
||||
|
||||
}
|
||||
public static Boolean isEmpty(ListNode[] lists){
|
||||
|
||||
for (int i = 0; i < lists.length; i++) {
|
||||
if(lists[i]!=null){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static class ListNode {
|
||||
int val;
|
||||
ListNode next;
|
||||
|
||||
ListNode() {
|
||||
}
|
||||
|
||||
ListNode(int val) {
|
||||
this.val = val;
|
||||
}
|
||||
|
||||
ListNode(int val, ListNode next) {
|
||||
this.val = val;
|
||||
this.next = next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
package listnode.selftry;
|
||||
|
||||
import listnode.addTwoNumbers;
|
||||
import listnode.removeNthFromEnd;
|
||||
|
||||
public class mergeTwoLists {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
ListNode l1 = new ListNode();
|
||||
// l1.next=new ListNode(2);
|
||||
// l1.next.next=new ListNode(4);
|
||||
|
||||
|
||||
ListNode l2 = new ListNode(0);
|
||||
// l2.next = new ListNode(2);
|
||||
// l2.next = new ListNode(3);
|
||||
// l2.next.next =new ListNode(4);
|
||||
|
||||
ListNode listNode = mergeTwoLists(l1, l2);
|
||||
|
||||
}
|
||||
|
||||
public static ListNode mergeTwoLists(ListNode list1, ListNode list2) {
|
||||
if(list1==null){
|
||||
return list2;
|
||||
}
|
||||
if(list2==null){
|
||||
return list1;
|
||||
}
|
||||
ListNode head=new ListNode();
|
||||
ListNode dust=new ListNode(0,head);
|
||||
|
||||
while (list1!=null&&list2!=null){
|
||||
|
||||
if(list1.val<list2.val){
|
||||
head.next=new ListNode(list1.val);
|
||||
list1=list1.next;
|
||||
head=head.next;
|
||||
}else {
|
||||
head.next=new ListNode(list2.val);
|
||||
list2=list2.next;
|
||||
head=head.next;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
while (list1!=null){
|
||||
head.next=new ListNode(list1.val);
|
||||
list1=list1.next;
|
||||
head=head.next;
|
||||
}
|
||||
while (list2!=null){
|
||||
head.next=new ListNode(list2.val);
|
||||
list2=list2.next;
|
||||
head=head.next;
|
||||
}
|
||||
|
||||
|
||||
return dust.next.next;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static class ListNode {
|
||||
int val;
|
||||
ListNode next;
|
||||
|
||||
ListNode() {
|
||||
}
|
||||
|
||||
ListNode(int val) {
|
||||
this.val = val;
|
||||
}
|
||||
|
||||
ListNode(int val, ListNode next) {
|
||||
this.val = val;
|
||||
this.next = next;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
package listnode.selftry;
|
||||
|
||||
/**
|
||||
* 删除链表的倒数第N个节点
|
||||
*/
|
||||
public class removeNthFromEnd {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
ListNode l2 = new ListNode(1);
|
||||
// l2.next = new ListNode(2);
|
||||
// l2.next.next = new ListNode(3);
|
||||
// l2.next.next.next =new ListNode(4);
|
||||
// l2.next.next.next.next =new ListNode(5);
|
||||
// l2.next.next.next.next.next = new ListNode(9);
|
||||
// l2.next.next.next.next.next.next =new ListNode(9);
|
||||
// l2.next.next.next.next.next.next.next = new ListNode(9);
|
||||
// l2.next.next.next.next.next.next.next.next =new ListNode(9);
|
||||
// l2.next.next.next.next.next.next.next.next.next =new ListNode(9);
|
||||
removeNthFromEnd(l2,1);
|
||||
|
||||
getLength(l2);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static ListNode removeNthFromEnd(ListNode head, int n) {
|
||||
|
||||
int length = getLength(head);
|
||||
ListNode temp=head;
|
||||
|
||||
boolean flag=false;
|
||||
for (int i = n; i < length-1; i++) {
|
||||
temp=temp.next;
|
||||
if(!flag){
|
||||
flag=true;
|
||||
}
|
||||
}
|
||||
if(!flag){
|
||||
if(n==length){
|
||||
if(temp.next==null){
|
||||
temp=null;
|
||||
head=null;
|
||||
}else {
|
||||
temp=temp.next;
|
||||
head=head.next;
|
||||
}
|
||||
}else {
|
||||
temp.next=temp.next.next;
|
||||
}
|
||||
|
||||
}else {
|
||||
temp.next=temp.next.next;
|
||||
}
|
||||
|
||||
return head;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
public static int getLength(ListNode head){
|
||||
|
||||
ListNode temp =head;
|
||||
int count=0;
|
||||
while(temp!=null){
|
||||
count++;
|
||||
temp=temp.next;
|
||||
}
|
||||
System.out.println(count);
|
||||
return count;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static class ListNode {
|
||||
int val;
|
||||
ListNode next;
|
||||
|
||||
ListNode() {
|
||||
}
|
||||
|
||||
ListNode(int val) {
|
||||
this.val = val;
|
||||
}
|
||||
|
||||
ListNode(int val, ListNode next) {
|
||||
this.val = val;
|
||||
this.next = next;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package listnode.selftry;
|
||||
|
||||
import listnode.swapPairs;
|
||||
|
||||
public class reverseKGroup {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
public ListNode reverseKGroup(ListNode head, int k) {
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
public static class ListNode {
|
||||
int val;
|
||||
swapPairs.ListNode next;
|
||||
|
||||
ListNode() {
|
||||
}
|
||||
|
||||
ListNode(int val) {
|
||||
this.val = val;
|
||||
}
|
||||
|
||||
ListNode(int val, swapPairs.ListNode next) {
|
||||
this.val = val;
|
||||
this.next = next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
package listnode.selftry;
|
||||
|
||||
|
||||
|
||||
public class swapPairs {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
ListNode l1 = new ListNode(1);
|
||||
//l1.next=new ListNode(2);
|
||||
//l1.next.next=new ListNode(3);
|
||||
//l1.next.next.next=new ListNode(4);
|
||||
|
||||
ListNode listNode = swapPairs(l1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static ListNode swapPairs(ListNode head) {
|
||||
if(head==null){
|
||||
return null;
|
||||
}
|
||||
ListNode dust=head;
|
||||
ListNode swap=head.next;
|
||||
int temp=0;
|
||||
while (swap!=null){
|
||||
temp=swap.val;
|
||||
swap.val=head.val;
|
||||
head.val=temp;
|
||||
|
||||
if(swap.next!=null){
|
||||
if(swap.next.next!=null){
|
||||
swap=swap.next.next;
|
||||
head=head.next.next;
|
||||
}else {
|
||||
break;
|
||||
}
|
||||
|
||||
}else {
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
return dust;
|
||||
}
|
||||
|
||||
public static class ListNode {
|
||||
int val;
|
||||
ListNode next;
|
||||
|
||||
ListNode() {
|
||||
}
|
||||
|
||||
ListNode(int val) {
|
||||
this.val = val;
|
||||
}
|
||||
|
||||
ListNode(int val, ListNode next) {
|
||||
this.val = val;
|
||||
this.next = next;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
package listnode;
|
||||
|
||||
|
||||
|
||||
public class swapPairs {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
ListNode l1 = new ListNode(1);
|
||||
l1.next=new ListNode(2);
|
||||
l1.next.next=new ListNode(3);
|
||||
l1.next.next.next=new ListNode(4);
|
||||
|
||||
ListNode listNode = swapPairs(l1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归方式实现
|
||||
* @param head
|
||||
* @return
|
||||
*/
|
||||
public static ListNode swapPairs(ListNode head) {
|
||||
|
||||
if(head ==null||head.next==null){
|
||||
return head;
|
||||
}
|
||||
|
||||
ListNode newHead=head.next;
|
||||
head.next=swapPairs(newHead.next);
|
||||
newHead.next=head;
|
||||
|
||||
return newHead;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 迭代方式实现
|
||||
* @param head
|
||||
* @return
|
||||
*/
|
||||
public static ListNode swapPairs1(ListNode head) {
|
||||
|
||||
ListNode dummyHead = new ListNode(0);
|
||||
dummyHead.next = head;
|
||||
ListNode temp = dummyHead;
|
||||
while (temp.next != null && temp.next.next != null) {
|
||||
ListNode node1 = temp.next;
|
||||
ListNode node2 = temp.next.next;
|
||||
temp.next = node2;
|
||||
node1.next = node2.next;
|
||||
node2.next = node1;
|
||||
temp = node1;
|
||||
}
|
||||
return dummyHead.next;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static class ListNode {
|
||||
int val;
|
||||
ListNode next;
|
||||
|
||||
ListNode() {
|
||||
}
|
||||
|
||||
ListNode(int val) {
|
||||
this.val = val;
|
||||
}
|
||||
|
||||
ListNode(int val, ListNode next) {
|
||||
this.val = val;
|
||||
this.next = next;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
package tree;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static tree.InorderTraversal.inorderTraversal1;
|
||||
|
||||
|
||||
|
||||
public class DeleteNode {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
TreeNode root = new TreeNode(4);
|
||||
TreeNode TreeNode2 = new TreeNode(2);
|
||||
TreeNode TreeNode3 = new TreeNode(6);
|
||||
TreeNode TreeNode4 = new TreeNode(1);
|
||||
TreeNode TreeNode5 = new TreeNode(3);
|
||||
TreeNode TreeNode6 = new TreeNode(5);
|
||||
|
||||
root.setLeft(TreeNode2);
|
||||
root.setRight(TreeNode3);
|
||||
TreeNode2.setLeft(TreeNode4);
|
||||
TreeNode2.setRight(TreeNode5);
|
||||
TreeNode3.setLeft(TreeNode6);
|
||||
|
||||
deleteNode(root,5);
|
||||
|
||||
List<Integer> integers = inorderTraversal1(root);
|
||||
|
||||
System.out.println(integers);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void deleteNode(TreeNode root,int value){
|
||||
|
||||
//删除的是有左右两个子树的节点
|
||||
TreeNode p =root;
|
||||
//记录当前节点的父节点
|
||||
TreeNode pp = null;
|
||||
|
||||
//寻找到要删除的节点和他的父节点
|
||||
while(p != null && p.val !=value){
|
||||
pp=p;
|
||||
if(p.val < value){
|
||||
p=p.right;
|
||||
}else if(p.val>value){
|
||||
p=p.left;
|
||||
}
|
||||
}
|
||||
|
||||
//判断是根据那个条件出来的
|
||||
if(p == null){
|
||||
System.out.println("未找到要删除的节点的值...");
|
||||
return;
|
||||
}else if(p.val == value){
|
||||
|
||||
//p是要删除的节点,pp是他的父节点,如果pp=null,删除的就是root
|
||||
|
||||
//判断删除的节点有几个子树
|
||||
if (p.left !=null &&p.right !=null){
|
||||
//左右子树都有,将找到右子树最小的节点,将他的值付给p,然后变成删除这个最小的数
|
||||
TreeNode min=p.right;
|
||||
//记录他的父节点
|
||||
TreeNode flag=p;
|
||||
while (min.left !=null){
|
||||
flag=min;
|
||||
min=min.left;
|
||||
}
|
||||
p.val=min.val;
|
||||
p=min;
|
||||
pp=flag;
|
||||
|
||||
}
|
||||
|
||||
//现在要删除的节点最多只有一个子树
|
||||
TreeNode child =null;
|
||||
if(p.left !=null){
|
||||
child=p.left;
|
||||
}else if (p.right !=null){
|
||||
child=p.right;
|
||||
}
|
||||
|
||||
if(pp ==null){
|
||||
//要删除的是根节点
|
||||
root=child;
|
||||
}else if(pp.left == p)pp.left=child;
|
||||
else pp.right=child;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,133 @@
|
|||
package tree;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class InorderTraversal {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
TreeNode root = new TreeNode(4);
|
||||
TreeNode TreeNode2 = new TreeNode(2);
|
||||
TreeNode TreeNode3 = new TreeNode(6);
|
||||
TreeNode TreeNode4 = new TreeNode(1);
|
||||
TreeNode TreeNode5 = new TreeNode(3);
|
||||
TreeNode TreeNode6 = new TreeNode(5);
|
||||
|
||||
root.setLeft(TreeNode2);
|
||||
root.setRight(TreeNode3);
|
||||
TreeNode2.setLeft(TreeNode4);
|
||||
TreeNode2.setRight(TreeNode5);
|
||||
TreeNode3.setLeft(TreeNode6);
|
||||
|
||||
List<Integer> integers = inorderTraversal1(root);
|
||||
|
||||
System.out.println(integers);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static List<TreeNode> list =new ArrayList<TreeNode>();
|
||||
public static List<Integer> list2 =new ArrayList<Integer>();
|
||||
|
||||
|
||||
/**
|
||||
* 递归法:中序遍历
|
||||
* @param root
|
||||
*/
|
||||
public static void inorderTraversal(TreeNode root){
|
||||
|
||||
if(root == null){
|
||||
return;
|
||||
}
|
||||
if(root.left !=null){
|
||||
inorderTraversal(root.left);
|
||||
|
||||
}
|
||||
list.add(root);
|
||||
|
||||
if(root.right !=null){
|
||||
inorderTraversal(root.right);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归法原题:中序遍历 => O(n)
|
||||
* @param root
|
||||
*/
|
||||
public static List<Integer> inorderTraversal2(TreeNode root){
|
||||
|
||||
if(root == null){
|
||||
return null;
|
||||
}
|
||||
if(root.left !=null){
|
||||
inorderTraversal2(root.left);
|
||||
|
||||
}
|
||||
list2.add(root.val);
|
||||
|
||||
if(root.right !=null){
|
||||
inorderTraversal2(root.right);
|
||||
}
|
||||
return list2;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 非递归法:中序遍历(题解第三种方法) ->空间复杂度 O(1)Morris 中序遍历
|
||||
* 循环:
|
||||
* 寻找当前节点的左子树:
|
||||
* 如果左子树为空:将当前节点加入list,将当前节点右移
|
||||
* 如果不为空:
|
||||
* 寻找当前节点的左子树最右节点flag,判断flag的右子节点是否为空:
|
||||
* 如果为空:当前节点左移,设置flag的右子节点为当前节点
|
||||
* 如果不为空:说明已经遍历完当前节点的左子树,将flag的右子节点为置空,将当前节点加入list,当前节点右移
|
||||
* @param root
|
||||
*/
|
||||
public static List<Integer> inorderTraversal1(TreeNode root){
|
||||
|
||||
List<Integer> list1 =new ArrayList<Integer>();
|
||||
|
||||
while (root != null){
|
||||
if(root.left ==null){
|
||||
//如果左子树为空
|
||||
list1.add(root.val);
|
||||
root=root.right;
|
||||
}else {
|
||||
//如果左子树不为空:
|
||||
|
||||
//记录左子树最右节点
|
||||
TreeNode p=root.left;
|
||||
//寻找flag
|
||||
while (p.right !=null &&p.right != root){
|
||||
p=p.right;
|
||||
}
|
||||
TreeNode flag=p;
|
||||
|
||||
//判断flag是根据什么条件出来的,是flag.right ==null还是p.right != root
|
||||
if(flag.right == null){
|
||||
//flag无右子节点,第一次遍历
|
||||
flag.right =root;
|
||||
root=root.left;
|
||||
}else if(flag.right == root){
|
||||
//flag已经被加载过了,即当前节点的左子树已经被遍历完了
|
||||
flag.right =null;
|
||||
list1.add(root.val);
|
||||
root=root.right;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return list1;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
package tree;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class TreeNode {
|
||||
|
||||
int val;
|
||||
TreeNode left;
|
||||
TreeNode right;
|
||||
|
||||
TreeNode() {
|
||||
}
|
||||
|
||||
TreeNode(int val) {
|
||||
this.val = val;
|
||||
}
|
||||
|
||||
TreeNode(int val, TreeNode left, TreeNode right) {
|
||||
this.val = val;
|
||||
this.left = left;
|
||||
this.right = right;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TreeNode{" +
|
||||
"val=" + val +
|
||||
", left=" + left +
|
||||
", right=" + right +
|
||||
'}';
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
HELP.md
|
||||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
!**/src/main/**/target/
|
||||
!**/src/test/**/target/
|
||||
|
||||
### STS ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
build/
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
|||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.zip
|
||||
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?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>common</artifactId>
|
||||
<groupId>com.atguigu</groupId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>common_utils</artifactId>
|
||||
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
package com.atguigu.commonutils;
|
||||
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
//TODO 同一结果返回类
|
||||
/*
|
||||
返回结果类型:
|
||||
{
|
||||
"success": 布尔, //响应是否成功
|
||||
"code": 数字, //响应码
|
||||
"message": 字符串, //返回消息
|
||||
"data": HashMap //返回数据,放在键值对中
|
||||
}
|
||||
|
||||
*/
|
||||
@Data
|
||||
public class R {
|
||||
|
||||
@ApiModelProperty(value = "是否成功")
|
||||
private Boolean success;
|
||||
@ApiModelProperty(value = "返回码")
|
||||
private Integer code;
|
||||
@ApiModelProperty(value = "返回消息")
|
||||
private String message;
|
||||
@ApiModelProperty(value = "返回数据")
|
||||
private Map<String, Object> data = new HashMap<String, Object>();
|
||||
|
||||
|
||||
//构造方法私有
|
||||
private R() {
|
||||
}
|
||||
|
||||
//成功静态方法
|
||||
public static R ok() {
|
||||
R r = new R();
|
||||
r.setSuccess(true);
|
||||
r.setCode(ResultCode.SUCCESS);
|
||||
r.setMessage("成功");
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
//失败静态方法
|
||||
public static R error() {
|
||||
R r = new R();
|
||||
r.setSuccess(false);
|
||||
r.setCode(ResultCode.ERROR);
|
||||
r.setMessage("失败");
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
public R success(Boolean success) {
|
||||
this.setSuccess(success);
|
||||
return this;
|
||||
}
|
||||
|
||||
public R message(String message) {
|
||||
this.setMessage(message);
|
||||
return this;
|
||||
}
|
||||
|
||||
public R code(Integer code) {
|
||||
this.setCode(code);
|
||||
return this;
|
||||
}
|
||||
|
||||
public R data(String key, Object value) {
|
||||
this.data.put(key, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public R data(Map<String, Object> map) {
|
||||
this.setData(map);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.atguigu.commonutils;
|
||||
|
||||
|
||||
import org.omg.CORBA.PUBLIC_MEMBER;
|
||||
import org.omg.PortableInterceptor.Interceptor;
|
||||
|
||||
//TODO 定义返回的状态码信息
|
||||
public interface ResultCode {
|
||||
|
||||
public static Integer SUCCESS=20000; //操作成功
|
||||
public static Integer ERROR=20001; //操作失败
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
<?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>guli_parent</artifactId>
|
||||
<groupId>com.atguigu</groupId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>common</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<modules>
|
||||
<module>service_base</module>
|
||||
<module>common_utils</module>
|
||||
</modules>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!--mybatis-plus-->
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!--lombok用来简化实体类:需要安装lombok插件-->
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!--swagger-->
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-swagger2</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-swagger-ui</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!-- redis -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||
</dependency>
|
||||
<!-- spring2.X集成redis所需common-pool2-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.apache.commons</groupId>-->
|
||||
<!-- <artifactId>commons-pool2</artifactId>-->
|
||||
<!-- <version>2.6.0</version>-->
|
||||
<!-- </dependency>-->
|
||||
</dependencies>
|
||||
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?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>common</artifactId>
|
||||
<groupId>com.atguigu</groupId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>service_base</artifactId>
|
||||
|
||||
<!-- 由于要使用R对象,引入common包-->
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.atguigu</groupId>
|
||||
<artifactId>common_utils</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
package com.atguigu.servicebase;
|
||||
|
||||
|
||||
import com.google.common.base.Predicates;
|
||||
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.service.ApiInfo;
|
||||
import springfox.documentation.service.Contact;
|
||||
import springfox.documentation.spi.DocumentationType;
|
||||
import springfox.documentation.spring.web.plugins.Docket;
|
||||
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
||||
|
||||
@Configuration //配置类
|
||||
@EnableSwagger2 //swagger注解
|
||||
public class SwaggerConfig {
|
||||
|
||||
@Bean //配置swagger插件
|
||||
public Docket webApiConfig(){
|
||||
return new Docket(DocumentationType.SWAGGER_2)
|
||||
.groupName("webApi")
|
||||
.apiInfo(webApiInfo())
|
||||
.select()
|
||||
.paths(Predicates.not(PathSelectors.regex("/admin/.*")))
|
||||
.paths(Predicates.not(PathSelectors.regex("/error.*")))
|
||||
.build();
|
||||
}
|
||||
|
||||
private ApiInfo webApiInfo(){
|
||||
return new ApiInfoBuilder()
|
||||
.title("网站-课程中心API文档")
|
||||
.description("本文档描述了课程中心微服务接口定义")
|
||||
.version("1.0")
|
||||
.contact(new Contact("Ding", "http://atguigu.com",
|
||||
"55317332@qq.com"))
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
package com.atguigu.servicebase.exceptionhandler;
|
||||
|
||||
|
||||
import com.atguigu.commonutils.R;
|
||||
import com.atguigu.servicebase.utils.ExceptionUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
|
||||
//统一异常处理
|
||||
@ControllerAdvice
|
||||
@Slf4j //使得错误输出可以写到文件中去
|
||||
public class GlobalExceptionHandler {
|
||||
|
||||
|
||||
//指定出现了什么异常执行这个方法
|
||||
@ExceptionHandler(Exception.class)
|
||||
@ResponseBody //为了能够返回数据
|
||||
public R error(Exception e){
|
||||
e.printStackTrace();
|
||||
return R.error().message("执行了全局异常处理");
|
||||
|
||||
}
|
||||
|
||||
//特定异常
|
||||
@ExceptionHandler(ArithmeticException.class)
|
||||
@ResponseBody //为了能够返回数据
|
||||
public R error(ArithmeticException e){
|
||||
e.printStackTrace();
|
||||
return R.error().message("执行了ArithmeticException异常处理");
|
||||
|
||||
}
|
||||
|
||||
//自定义异常处理 ,但是这种方式没办法自动抛出,需要手动抛出
|
||||
@ExceptionHandler(GuliException.class)
|
||||
@ResponseBody //为了能够返回数据
|
||||
public R error(GuliException e){
|
||||
//将异常信息输出到文件中去
|
||||
log.error(ExceptionUtil.getMessage(e));
|
||||
|
||||
e.printStackTrace();
|
||||
return R.error().code(e.getCode()).message(e.getMsg());
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
package com.atguigu.servicebase.exceptionhandler;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class GuliException extends RuntimeException {
|
||||
|
||||
private Integer code;//状态码
|
||||
|
||||
private String msg; //异常信息
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package com.atguigu.servicebase.handler;
|
||||
|
||||
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||
import org.apache.ibatis.reflection.MetaObject;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 默认填充类:设置添加和修改的时候的方法
|
||||
*/
|
||||
@Component
|
||||
public class MyMetaObjectHandler implements MetaObjectHandler {
|
||||
@Override
|
||||
public void insertFill(MetaObject metaObject) {
|
||||
//传的是属性名称,不是字段名称
|
||||
this.setFieldValByName("gmtCreate",new Date(),metaObject);
|
||||
this.setFieldValByName("gmtModified",new Date(),metaObject);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateFill(MetaObject metaObject) {
|
||||
this.setFieldValByName("gmtModified",new Date(),metaObject);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package com.atguigu.servicebase.utils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
|
||||
public class ExceptionUtil {
|
||||
|
||||
public static String getMessage(Exception e) {
|
||||
StringWriter sw = null;
|
||||
PrintWriter pw = null;
|
||||
try {
|
||||
sw = new StringWriter();
|
||||
pw = new PrintWriter(sw);
|
||||
// 将出错的栈信息输出到printWriter中
|
||||
e.printStackTrace(pw);
|
||||
pw.flush();
|
||||
sw.flush();
|
||||
} finally {
|
||||
if (sw != null) {
|
||||
try {
|
||||
sw.close();
|
||||
} catch (IOException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (pw != null) {
|
||||
pw.close();
|
||||
}
|
||||
}
|
||||
return sw.toString();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,316 @@
|
|||
#!/bin/sh
|
||||
# ----------------------------------------------------------------------------
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Maven Start Up Batch script
|
||||
#
|
||||
# Required ENV vars:
|
||||
# ------------------
|
||||
# JAVA_HOME - location of a JDK home dir
|
||||
#
|
||||
# Optional ENV vars
|
||||
# -----------------
|
||||
# M2_HOME - location of maven2's installed home dir
|
||||
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||
# e.g. to debug Maven itself, use
|
||||
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
if [ -z "$MAVEN_SKIP_RC" ] ; then
|
||||
|
||||
if [ -f /usr/local/etc/mavenrc ] ; then
|
||||
. /usr/local/etc/mavenrc
|
||||
fi
|
||||
|
||||
if [ -f /etc/mavenrc ] ; then
|
||||
. /etc/mavenrc
|
||||
fi
|
||||
|
||||
if [ -f "$HOME/.mavenrc" ] ; then
|
||||
. "$HOME/.mavenrc"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# OS specific support. $var _must_ be set to either true or false.
|
||||
cygwin=false;
|
||||
darwin=false;
|
||||
mingw=false
|
||||
case "`uname`" in
|
||||
CYGWIN*) cygwin=true ;;
|
||||
MINGW*) mingw=true;;
|
||||
Darwin*) darwin=true
|
||||
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
|
||||
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
if [ -x "/usr/libexec/java_home" ]; then
|
||||
export JAVA_HOME="`/usr/libexec/java_home`"
|
||||
else
|
||||
export JAVA_HOME="/Library/Java/Home"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
if [ -r /etc/gentoo-release ] ; then
|
||||
JAVA_HOME=`java-config --jre-home`
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$M2_HOME" ] ; then
|
||||
## resolve links - $0 may be a link to maven's home
|
||||
PRG="$0"
|
||||
|
||||
# need this for relative symlinks
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG="`dirname "$PRG"`/$link"
|
||||
fi
|
||||
done
|
||||
|
||||
saveddir=`pwd`
|
||||
|
||||
M2_HOME=`dirname "$PRG"`/..
|
||||
|
||||
# make it fully qualified
|
||||
M2_HOME=`cd "$M2_HOME" && pwd`
|
||||
|
||||
cd "$saveddir"
|
||||
# echo Using m2 at $M2_HOME
|
||||
fi
|
||||
|
||||
# For Cygwin, ensure paths are in UNIX format before anything is touched
|
||||
if $cygwin ; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME=`cygpath --unix "$M2_HOME"`
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||
[ -n "$CLASSPATH" ] &&
|
||||
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
|
||||
fi
|
||||
|
||||
# For Mingw, ensure paths are in UNIX format before anything is touched
|
||||
if $mingw ; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME="`(cd "$M2_HOME"; pwd)`"
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
javaExecutable="`which javac`"
|
||||
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
|
||||
# readlink(1) is not available as standard on Solaris 10.
|
||||
readLink=`which readlink`
|
||||
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
|
||||
if $darwin ; then
|
||||
javaHome="`dirname \"$javaExecutable\"`"
|
||||
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
|
||||
else
|
||||
javaExecutable="`readlink -f \"$javaExecutable\"`"
|
||||
fi
|
||||
javaHome="`dirname \"$javaExecutable\"`"
|
||||
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
|
||||
JAVA_HOME="$javaHome"
|
||||
export JAVA_HOME
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$JAVACMD" ] ; then
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
else
|
||||
JAVACMD="`\\unset -f command; \\command -v java`"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
echo "Error: JAVA_HOME is not defined correctly." >&2
|
||||
echo " We cannot execute $JAVACMD" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
echo "Warning: JAVA_HOME environment variable is not set."
|
||||
fi
|
||||
|
||||
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
|
||||
|
||||
# traverses directory structure from process work directory to filesystem root
|
||||
# first directory with .mvn subdirectory is considered project base directory
|
||||
find_maven_basedir() {
|
||||
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
echo "Path not specified to find_maven_basedir"
|
||||
return 1
|
||||
fi
|
||||
|
||||
basedir="$1"
|
||||
wdir="$1"
|
||||
while [ "$wdir" != '/' ] ; do
|
||||
if [ -d "$wdir"/.mvn ] ; then
|
||||
basedir=$wdir
|
||||
break
|
||||
fi
|
||||
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
|
||||
if [ -d "${wdir}" ]; then
|
||||
wdir=`cd "$wdir/.."; pwd`
|
||||
fi
|
||||
# end of workaround
|
||||
done
|
||||
echo "${basedir}"
|
||||
}
|
||||
|
||||
# concatenates all lines of a file
|
||||
concat_lines() {
|
||||
if [ -f "$1" ]; then
|
||||
echo "$(tr -s '\n' ' ' < "$1")"
|
||||
fi
|
||||
}
|
||||
|
||||
BASE_DIR=`find_maven_basedir "$(pwd)"`
|
||||
if [ -z "$BASE_DIR" ]; then
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
##########################################################################################
|
||||
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
||||
# This allows using the maven wrapper in projects that prohibit checking in binary data.
|
||||
##########################################################################################
|
||||
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found .mvn/wrapper/maven-wrapper.jar"
|
||||
fi
|
||||
else
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
|
||||
fi
|
||||
if [ -n "$MVNW_REPOURL" ]; then
|
||||
jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
||||
else
|
||||
jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
||||
fi
|
||||
while IFS="=" read key value; do
|
||||
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
|
||||
esac
|
||||
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Downloading from: $jarUrl"
|
||||
fi
|
||||
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
|
||||
if $cygwin; then
|
||||
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
|
||||
fi
|
||||
|
||||
if command -v wget > /dev/null; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found wget ... using wget"
|
||||
fi
|
||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
||||
wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
|
||||
else
|
||||
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
|
||||
fi
|
||||
elif command -v curl > /dev/null; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found curl ... using curl"
|
||||
fi
|
||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
||||
curl -o "$wrapperJarPath" "$jarUrl" -f
|
||||
else
|
||||
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
|
||||
fi
|
||||
|
||||
else
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Falling back to using Java to download"
|
||||
fi
|
||||
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
|
||||
# For Cygwin, switch paths to Windows format before running javac
|
||||
if $cygwin; then
|
||||
javaClass=`cygpath --path --windows "$javaClass"`
|
||||
fi
|
||||
if [ -e "$javaClass" ]; then
|
||||
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo " - Compiling MavenWrapperDownloader.java ..."
|
||||
fi
|
||||
# Compiling the Java class
|
||||
("$JAVA_HOME/bin/javac" "$javaClass")
|
||||
fi
|
||||
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
||||
# Running the downloader
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo " - Running MavenWrapperDownloader.java ..."
|
||||
fi
|
||||
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
##########################################################################################
|
||||
# End of extension
|
||||
##########################################################################################
|
||||
|
||||
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo $MAVEN_PROJECTBASEDIR
|
||||
fi
|
||||
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME=`cygpath --path --windows "$M2_HOME"`
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
|
||||
[ -n "$CLASSPATH" ] &&
|
||||
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
|
||||
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
|
||||
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
|
||||
fi
|
||||
|
||||
# Provide a "standardized" way to retrieve the CLI args that will
|
||||
# work with both Windows and non-Windows executions.
|
||||
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
|
||||
export MAVEN_CMD_LINE_ARGS
|
||||
|
||||
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||
|
||||
exec "$JAVACMD" \
|
||||
$MAVEN_OPTS \
|
||||
$MAVEN_DEBUG_OPTS \
|
||||
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
|
||||
"-Dmaven.home=${M2_HOME}" \
|
||||
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
|
||||
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
|
||||
|
|
@ -0,0 +1,188 @@
|
|||
@REM ----------------------------------------------------------------------------
|
||||
@REM Licensed to the Apache Software Foundation (ASF) under one
|
||||
@REM or more contributor license agreements. See the NOTICE file
|
||||
@REM distributed with this work for additional information
|
||||
@REM regarding copyright ownership. The ASF licenses this file
|
||||
@REM to you under the Apache License, Version 2.0 (the
|
||||
@REM "License"); you may not use this file except in compliance
|
||||
@REM with the License. You may obtain a copy of the License at
|
||||
@REM
|
||||
@REM https://www.apache.org/licenses/LICENSE-2.0
|
||||
@REM
|
||||
@REM Unless required by applicable law or agreed to in writing,
|
||||
@REM software distributed under the License is distributed on an
|
||||
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@REM KIND, either express or implied. See the License for the
|
||||
@REM specific language governing permissions and limitations
|
||||
@REM under the License.
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM ----------------------------------------------------------------------------
|
||||
@REM Maven Start Up Batch script
|
||||
@REM
|
||||
@REM Required ENV vars:
|
||||
@REM JAVA_HOME - location of a JDK home dir
|
||||
@REM
|
||||
@REM Optional ENV vars
|
||||
@REM M2_HOME - location of maven2's installed home dir
|
||||
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
|
||||
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
|
||||
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||
@REM e.g. to debug Maven itself, use
|
||||
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
|
||||
@echo off
|
||||
@REM set title of command window
|
||||
title %0
|
||||
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
|
||||
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
|
||||
|
||||
@REM set %HOME% to equivalent of $HOME
|
||||
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
|
||||
|
||||
@REM Execute a user defined script before this one
|
||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
|
||||
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
|
||||
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
|
||||
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
|
||||
:skipRcPre
|
||||
|
||||
@setlocal
|
||||
|
||||
set ERROR_CODE=0
|
||||
|
||||
@REM To isolate internal variables from possible post scripts, we use another setlocal
|
||||
@setlocal
|
||||
|
||||
@REM ==== START VALIDATION ====
|
||||
if not "%JAVA_HOME%" == "" goto OkJHome
|
||||
|
||||
echo.
|
||||
echo Error: JAVA_HOME not found in your environment. >&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||
echo location of your Java installation. >&2
|
||||
echo.
|
||||
goto error
|
||||
|
||||
:OkJHome
|
||||
if exist "%JAVA_HOME%\bin\java.exe" goto init
|
||||
|
||||
echo.
|
||||
echo Error: JAVA_HOME is set to an invalid directory. >&2
|
||||
echo JAVA_HOME = "%JAVA_HOME%" >&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||
echo location of your Java installation. >&2
|
||||
echo.
|
||||
goto error
|
||||
|
||||
@REM ==== END VALIDATION ====
|
||||
|
||||
:init
|
||||
|
||||
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
|
||||
@REM Fallback to current working directory if not found.
|
||||
|
||||
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
|
||||
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
|
||||
|
||||
set EXEC_DIR=%CD%
|
||||
set WDIR=%EXEC_DIR%
|
||||
:findBaseDir
|
||||
IF EXIST "%WDIR%"\.mvn goto baseDirFound
|
||||
cd ..
|
||||
IF "%WDIR%"=="%CD%" goto baseDirNotFound
|
||||
set WDIR=%CD%
|
||||
goto findBaseDir
|
||||
|
||||
:baseDirFound
|
||||
set MAVEN_PROJECTBASEDIR=%WDIR%
|
||||
cd "%EXEC_DIR%"
|
||||
goto endDetectBaseDir
|
||||
|
||||
:baseDirNotFound
|
||||
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
|
||||
cd "%EXEC_DIR%"
|
||||
|
||||
:endDetectBaseDir
|
||||
|
||||
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
|
||||
|
||||
@setlocal EnableExtensions EnableDelayedExpansion
|
||||
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
|
||||
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
|
||||
|
||||
:endReadAdditionalConfig
|
||||
|
||||
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
|
||||
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
|
||||
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||
|
||||
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
||||
|
||||
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
|
||||
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
|
||||
)
|
||||
|
||||
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
||||
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
|
||||
if exist %WRAPPER_JAR% (
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Found %WRAPPER_JAR%
|
||||
)
|
||||
) else (
|
||||
if not "%MVNW_REPOURL%" == "" (
|
||||
SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
||||
)
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Couldn't find %WRAPPER_JAR%, downloading it ...
|
||||
echo Downloading from: %DOWNLOAD_URL%
|
||||
)
|
||||
|
||||
powershell -Command "&{"^
|
||||
"$webclient = new-object System.Net.WebClient;"^
|
||||
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
|
||||
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
|
||||
"}"^
|
||||
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
|
||||
"}"
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Finished downloading %WRAPPER_JAR%
|
||||
)
|
||||
)
|
||||
@REM End of extension
|
||||
|
||||
@REM Provide a "standardized" way to retrieve the CLI args that will
|
||||
@REM work with both Windows and non-Windows executions.
|
||||
set MAVEN_CMD_LINE_ARGS=%*
|
||||
|
||||
%MAVEN_JAVA_EXE% ^
|
||||
%JVM_CONFIG_MAVEN_PROPS% ^
|
||||
%MAVEN_OPTS% ^
|
||||
%MAVEN_DEBUG_OPTS% ^
|
||||
-classpath %WRAPPER_JAR% ^
|
||||
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
|
||||
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
|
||||
if ERRORLEVEL 1 goto error
|
||||
goto end
|
||||
|
||||
:error
|
||||
set ERROR_CODE=1
|
||||
|
||||
:end
|
||||
@endlocal & set ERROR_CODE=%ERROR_CODE%
|
||||
|
||||
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
|
||||
@REM check for post script, once with legacy .bat ending and once with .cmd ending
|
||||
if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
|
||||
if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
|
||||
:skipRcPost
|
||||
|
||||
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
|
||||
if "%MAVEN_BATCH_PAUSE%"=="on" pause
|
||||
|
||||
if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
|
||||
|
||||
cmd /C exit /B %ERROR_CODE%
|
||||
|
|
@ -0,0 +1,204 @@
|
|||
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<modules>
|
||||
<module>service</module>
|
||||
<module>common</module>
|
||||
</modules>
|
||||
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.2.1.RELEASE</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
<groupId>com.atguigu</groupId>
|
||||
<artifactId>guli_parent</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>guli_parent</name>
|
||||
<description>Demo project for Spring Boot</description>
|
||||
<!--父工程仅做版本管理-->
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
<guli.version>0.0.1-SNAPSHOT</guli.version>
|
||||
<mybatis-plus.version>3.0.5</mybatis-plus.version>
|
||||
<velocity.version>2.0</velocity.version>
|
||||
<swagger.version>2.7.0</swagger.version>
|
||||
<aliyun.oss.version>2.8.3</aliyun.oss.version>
|
||||
<jodatime.version>2.10.1</jodatime.version>
|
||||
<poi.version>3.17</poi.version>
|
||||
<commons-fileupload.version>1.3.1</commons-fileupload.version>
|
||||
<commons-io.version>2.6</commons-io.version>
|
||||
<httpclient.version>4.5.1</httpclient.version>
|
||||
<jwt.version>0.7.0</jwt.version>
|
||||
<aliyun-java-sdk-core.version>4.3.3</aliyun-java-sdk-core.version>
|
||||
<aliyun-sdk-oss.version>3.1.0</aliyun-sdk-oss.version>
|
||||
<aliyun-java-sdk-vod.version>2.15.2</aliyun-java-sdk-vod.version>
|
||||
<aliyun-java-vod-upload.version>1.4.11</aliyun-java-vod-upload.version>
|
||||
<aliyun-sdk-vod-upload.version>1.4.11</aliyun-sdk-vod-upload.version>
|
||||
<fastjson.version>1.2.28</fastjson.version>
|
||||
<gson.version>2.8.2</gson.version>
|
||||
<json.version>20170516</json.version>
|
||||
<commons-dbutils.version>1.7</commons-dbutils.version>
|
||||
<canal.client.version>1.1.0</canal.client.version>
|
||||
<docker.image.prefix>zx</docker.image.prefix>
|
||||
<cloud-alibaba.version>0.2.2.RELEASE</cloud-alibaba.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<!--Spring Cloud-->
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-dependencies</artifactId>
|
||||
<version>Hoxton.RELEASE</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
|
||||
<version>${cloud-alibaba.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
<!--mybatis-plus 持久层-->
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>${mybatis-plus.version}</version>
|
||||
</dependency>
|
||||
<!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.velocity</groupId>
|
||||
<artifactId>velocity-engine-core</artifactId>
|
||||
<version>${velocity.version}</version>
|
||||
</dependency>
|
||||
<!--swagger-->
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-swagger2</artifactId>
|
||||
<version>${swagger.version}</version>
|
||||
</dependency>
|
||||
<!--swagger ui-->
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-swagger-ui</artifactId>
|
||||
<version>${swagger.version}</version>
|
||||
</dependency>
|
||||
<!--aliyunOSS-->
|
||||
<dependency>
|
||||
<groupId>com.aliyun.oss</groupId>
|
||||
<artifactId>aliyun-sdk-oss</artifactId>
|
||||
<version>${aliyun.oss.version}</version>
|
||||
</dependency>
|
||||
<!--日期时间工具-->
|
||||
<dependency>
|
||||
<groupId>joda-time</groupId>
|
||||
<artifactId>joda-time</artifactId>
|
||||
<version>${jodatime.version}</version>
|
||||
</dependency>
|
||||
<!--xls-->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi</artifactId>
|
||||
<version>${poi.version}</version>
|
||||
</dependency>
|
||||
<!--xlsx-->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>${poi.version}</version>
|
||||
</dependency>
|
||||
<!--文件上传-->
|
||||
<dependency>
|
||||
<groupId>commons-fileupload</groupId>
|
||||
<artifactId>commons-fileupload</artifactId>
|
||||
<version>${commons-fileupload.version}</version>
|
||||
</dependency>
|
||||
<!--commons-io-->
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons-io.version}</version>
|
||||
</dependency>
|
||||
<!--httpclient-->
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>${httpclient.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<version>${gson.version}</version>
|
||||
</dependency>
|
||||
<!-- JWT -->
|
||||
<dependency>
|
||||
<groupId>io.jsonwebtoken</groupId>
|
||||
<artifactId>jjwt</artifactId>
|
||||
<version>${jwt.version}</version>
|
||||
</dependency>
|
||||
<!--aliyun-->
|
||||
<dependency>
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>aliyun-java-sdk-core</artifactId>
|
||||
<version>${aliyun-java-sdk-core.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.aliyun.oss</groupId>
|
||||
<artifactId>aliyun-sdk-oss</artifactId>
|
||||
<version>${aliyun-sdk-oss.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>aliyun-java-sdk-vod</artifactId>
|
||||
<version>${aliyun-java-sdk-vod.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>aliyun-java-vod-upload</artifactId>
|
||||
<version>${aliyun-java-vod-upload.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>aliyun-sdk-vod-upload</artifactId>
|
||||
<version>${aliyun-sdk-vod-upload.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<version>${fastjson.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.json</groupId>
|
||||
<artifactId>json</artifactId>
|
||||
<version>${json.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-dbutils</groupId>
|
||||
<artifactId>commons-dbutils</artifactId>
|
||||
<version>${commons-dbutils.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba.otter</groupId>
|
||||
<artifactId>canal.client</artifactId>
|
||||
<version>${canal.client.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,141 @@
|
|||
<?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>guli_parent</artifactId>
|
||||
<groupId>com.atguigu</groupId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>service</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<modules>
|
||||
<module>service_edu</module>
|
||||
<module>service_oss</module>
|
||||
<module>service_vod</module>
|
||||
</modules>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.springframework.cloud</groupId>-->
|
||||
<!-- <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
<!--hystrix依赖,主要是用 @HystrixCommand -->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.springframework.cloud</groupId>-->
|
||||
<!-- <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
<!--服务注册-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.springframework.cloud</groupId>-->
|
||||
<!-- <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
<!--服务调用-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.springframework.cloud</groupId>-->
|
||||
<!-- <artifactId>spring-cloud-starter-openfeign</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<!-- 引入自己配置的swagger依赖-->
|
||||
<dependency>
|
||||
<groupId>com.atguigu</groupId>
|
||||
<artifactId>service_base</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<!--service_base中已经引入了common_utils类 -->
|
||||
<!-- <!–引入common_utils类–>-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.atguigu</groupId>-->
|
||||
<!-- <artifactId>common_utils</artifactId>-->
|
||||
<!-- <version>0.0.1-SNAPSHOT</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<!--mybatis-plus-->
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<!--mysql-->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<!-- <version>5.1.47</version>-->
|
||||
</dependency>
|
||||
<!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.velocity</groupId>
|
||||
<artifactId>velocity-engine-core</artifactId>
|
||||
</dependency>
|
||||
<!--swagger-->
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-swagger2</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-swagger-ui</artifactId>
|
||||
</dependency>
|
||||
<!--lombok用来简化实体类:需要安装lombok插件-->
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
<!--xls-->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-fileupload</groupId>
|
||||
<artifactId>commons-fileupload</artifactId>
|
||||
</dependency>
|
||||
<!--httpclient-->
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
</dependency>
|
||||
<!--commons-io-->
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
</dependency>
|
||||
<!--gson-->
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.12</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
<!-- 项目打包时会将java目录中的*.xml文件也进行打包 -->
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
<include>**/*.xml</include>
|
||||
</includes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1 @@
|
|||
2022-04-21 21:01:02.160 [http-nio-8001-exec-7] ERROR c.a.s.exceptionhandler.GlobalExceptionHandler - null
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
2022-04-21 20:57:35.548 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 5196 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-21 20:57:35.553 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-21 20:57:36.508 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-21 20:57:36.510 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-21 20:57:36.533 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 7ms. Found 0 repository interfaces.
|
||||
2022-04-21 20:57:36.764 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-21 20:57:36.938 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-21 20:57:36.943 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-21 20:57:36.943 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-21 20:57:36.944 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-21 20:57:37.019 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-21 20:57:37.019 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1353 ms
|
||||
2022-04-21 20:57:37.161 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-21 20:57:37.324 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-21 20:57:37.654 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-21 20:57:37.727 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-21 20:57:38.052 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-21 20:57:38.061 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-21 20:57:38.081 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-21 20:57:38.219 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-21 20:57:38.233 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-21 20:57:38.237 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 3.206 seconds (JVM running for 3.756)
|
||||
2022-04-21 21:00:50.190 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 13652 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-21 21:00:50.199 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-21 21:00:52.508 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-21 21:00:52.516 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-21 21:00:52.568 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 20ms. Found 0 repository interfaces.
|
||||
2022-04-21 21:00:53.129 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-21 21:00:53.618 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-21 21:00:53.629 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-21 21:00:53.630 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-21 21:00:53.630 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-21 21:00:53.729 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-21 21:00:53.730 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3274 ms
|
||||
2022-04-21 21:00:54.055 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-21 21:00:54.422 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-21 21:00:56.417 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-21 21:00:56.889 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-21 21:00:57.741 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-21 21:00:57.754 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-21 21:00:57.793 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-21 21:00:58.213 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-21 21:00:58.241 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-21 21:00:58.252 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 9.336 seconds (JVM running for 10.483)
|
||||
2022-04-21 21:00:58.352 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-21 21:00:58.353 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-21 21:00:58.359 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 6 ms
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
2022-04-22 16:11:06.739 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 20396 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-22 16:11:06.837 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-22 16:11:13.525 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-22 16:11:13.537 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-22 16:11:13.685 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 58ms. Found 0 repository interfaces.
|
||||
2022-04-22 16:11:15.522 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-22 16:11:16.719 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-22 16:11:16.754 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 16:11:16.756 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-22 16:11:16.757 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-22 16:11:17.087 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-22 16:11:17.087 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 9841 ms
|
||||
2022-04-22 16:11:17.840 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-22 16:11:18.575 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-22 16:11:21.470 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-22 16:11:22.045 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-22 16:11:25.314 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-22 16:11:25.428 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-22 16:11:25.719 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-22 16:11:27.234 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 16:11:27.362 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-22 16:11:27.381 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 24.506 seconds (JVM running for 29.474)
|
||||
2022-04-22 16:14:26.591 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-22 16:14:26.593 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-22 16:14:26.628 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 34 ms
|
||||
2022-04-22 16:22:20.475 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 8784 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-22 16:22:20.550 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-22 16:22:27.173 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-22 16:22:27.206 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-22 16:22:27.436 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 121ms. Found 0 repository interfaces.
|
||||
2022-04-22 16:22:28.692 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-22 16:22:29.427 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-22 16:22:29.459 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 16:22:29.462 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-22 16:22:29.465 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-22 16:22:29.780 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-22 16:22:29.780 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 8769 ms
|
||||
2022-04-22 16:22:30.430 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-22 16:22:30.973 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-22 16:22:32.463 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-22 16:22:32.862 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-22 16:22:34.567 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-22 16:22:34.633 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-22 16:22:34.741 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-22 16:22:35.434 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 16:22:35.515 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-22 16:22:35.523 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 18.867 seconds (JVM running for 24.372)
|
||||
2022-04-22 16:22:41.283 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-22 16:22:41.284 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-22 16:22:41.308 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 24 ms
|
||||
2022-04-22 17:22:51.944 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 15372 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-22 17:22:51.974 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-22 17:22:58.495 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-22 17:22:58.520 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-22 17:22:58.628 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 35ms. Found 0 repository interfaces.
|
||||
2022-04-22 17:22:59.987 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-22 17:23:01.087 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-22 17:23:01.145 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 17:23:01.153 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-22 17:23:01.157 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-22 17:23:01.519 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-22 17:23:01.520 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 9275 ms
|
||||
2022-04-22 17:23:02.694 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-22 17:23:03.530 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-22 17:23:06.183 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-22 17:23:06.582 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-22 17:23:08.306 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-22 17:23:08.379 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-22 17:23:08.504 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-22 17:23:09.102 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 17:23:09.216 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-22 17:23:09.229 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 21.399 seconds (JVM running for 29.843)
|
||||
2022-04-22 17:23:20.928 [http-nio-8001-exec-2] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-22 17:23:20.932 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-22 17:23:20.957 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 22 ms
|
||||
2022-04-22 19:50:55.720 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 17936 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-22 19:50:55.766 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-22 19:51:01.696 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-22 19:51:01.708 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-22 19:51:01.795 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 28ms. Found 0 repository interfaces.
|
||||
2022-04-22 19:51:03.105 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-22 19:51:04.347 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-22 19:51:04.396 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 19:51:04.399 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-22 19:51:04.400 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-22 19:51:04.731 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-22 19:51:04.732 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 8476 ms
|
||||
2022-04-22 19:51:05.201 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-22 19:51:05.761 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-22 19:51:08.772 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-22 19:51:09.359 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-22 19:51:12.004 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-22 19:51:12.098 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-22 19:51:12.325 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-22 19:51:13.449 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 19:51:13.553 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-22 19:51:13.572 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 20.848 seconds (JVM running for 25.253)
|
||||
2022-04-22 19:51:45.842 [http-nio-8001-exec-2] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-22 19:51:45.844 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-22 19:51:45.870 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 26 ms
|
||||
2022-04-22 21:02:14.650 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 19980 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-22 21:02:14.668 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-22 21:02:21.283 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-22 21:02:21.294 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-22 21:02:21.516 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 105ms. Found 0 repository interfaces.
|
||||
2022-04-22 21:02:23.671 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-22 21:02:25.184 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-22 21:02:25.241 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 21:02:25.245 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-22 21:02:25.245 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-22 21:02:25.610 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-22 21:02:25.611 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 10704 ms
|
||||
2022-04-22 21:02:26.969 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-22 21:02:27.766 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-22 21:02:30.335 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-22 21:02:30.884 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-22 21:02:32.685 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-22 21:02:32.733 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-22 21:02:32.879 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-22 21:02:33.548 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 21:02:33.611 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-22 21:02:33.618 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 21.724 seconds (JVM running for 26.735)
|
||||
2022-04-22 21:03:27.873 [http-nio-8001-exec-3] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-22 21:03:27.878 [http-nio-8001-exec-3] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-22 21:03:27.894 [http-nio-8001-exec-3] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 15 ms
|
||||
2022-04-22 21:09:29.287 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 11768 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-22 21:09:29.295 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-22 21:09:35.789 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-22 21:09:35.801 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-22 21:09:35.863 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 18ms. Found 0 repository interfaces.
|
||||
2022-04-22 21:09:36.783 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-22 21:09:37.727 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-22 21:09:37.750 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 21:09:37.751 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-22 21:09:37.752 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-22 21:09:37.997 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-22 21:09:37.997 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 8441 ms
|
||||
2022-04-22 21:09:38.591 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-22 21:09:39.120 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-22 21:09:40.639 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-22 21:09:41.132 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-22 21:09:42.654 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-22 21:09:42.715 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-22 21:09:42.840 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-22 21:09:43.505 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 21:09:43.575 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-22 21:09:43.588 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 16.638 seconds (JVM running for 19.034)
|
||||
2022-04-22 21:09:52.962 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-22 21:09:52.965 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-22 21:09:52.998 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 31 ms
|
||||
2022-04-22 21:28:43.865 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 7476 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-22 21:28:43.878 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-22 21:28:47.458 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-22 21:28:47.469 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-22 21:28:47.569 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 35ms. Found 0 repository interfaces.
|
||||
2022-04-22 21:28:48.765 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-22 21:28:49.714 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-22 21:28:49.754 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 21:28:49.758 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-22 21:28:49.759 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-22 21:28:49.990 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-22 21:28:49.996 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 5798 ms
|
||||
2022-04-22 21:28:50.621 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-22 21:28:51.164 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-22 21:28:52.918 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-22 21:28:53.533 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-22 21:28:55.146 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-22 21:28:55.204 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-22 21:28:55.335 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-22 21:28:55.994 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 21:28:56.069 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-22 21:28:56.097 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 14.049 seconds (JVM running for 16.394)
|
||||
2022-04-22 21:29:35.486 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-22 21:29:35.487 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-22 21:29:35.567 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 79 ms
|
||||
2022-04-22 21:32:40.555 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 4320 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-22 21:32:40.563 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-22 21:32:44.431 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-22 21:32:44.447 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-22 21:32:44.596 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 39ms. Found 0 repository interfaces.
|
||||
2022-04-22 21:32:45.933 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-22 21:32:47.021 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-22 21:32:47.040 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 21:32:47.044 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-22 21:32:47.047 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-22 21:32:47.328 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-22 21:32:47.329 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 6500 ms
|
||||
2022-04-22 21:32:48.019 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-22 21:32:48.994 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-22 21:32:50.604 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-22 21:32:50.959 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-22 21:32:52.480 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-22 21:32:52.547 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-22 21:32:52.687 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-22 21:32:53.849 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-22 21:32:54.051 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-22 21:32:54.069 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 15.9 seconds (JVM running for 18.414)
|
||||
2022-04-22 21:32:54.397 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-22 21:32:54.398 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-22 21:32:54.494 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 94 ms
|
||||
|
|
@ -0,0 +1,444 @@
|
|||
2022-04-24 11:11:43.893 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 20472 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 11:11:43.920 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 11:11:50.817 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 11:11:50.831 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 11:11:50.983 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 40ms. Found 0 repository interfaces.
|
||||
2022-04-24 11:11:52.407 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 11:11:53.612 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 11:11:53.654 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 11:11:53.658 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 11:11:53.661 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 11:11:54.226 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 11:11:54.227 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 9958 ms
|
||||
2022-04-24 11:11:55.334 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 11:11:56.295 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 11:11:58.593 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 11:11:59.244 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 11:12:01.643 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 11:12:01.717 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 11:12:01.958 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 11:12:02.955 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 11:12:03.046 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 11:12:03.059 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 23.702 seconds (JVM running for 28.285)
|
||||
2022-04-24 11:12:14.122 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 11:12:14.128 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 11:12:14.162 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 32 ms
|
||||
2022-04-24 15:09:04.077 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 1292 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 15:09:04.097 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 15:09:06.194 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 15:09:06.202 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 15:09:06.245 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 25ms. Found 0 repository interfaces.
|
||||
2022-04-24 15:09:07.347 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 15:09:07.937 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 15:09:07.951 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 15:09:07.956 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 15:09:07.958 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 15:09:08.100 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 15:09:08.103 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3697 ms
|
||||
2022-04-24 15:09:08.402 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 15:09:08.844 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 15:09:09.960 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 15:09:10.481 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 15:09:12.056 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 15:09:12.134 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 15:09:12.412 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 15:09:13.680 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 15:09:13.804 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 15:09:13.820 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 11.145 seconds (JVM running for 12.285)
|
||||
2022-04-24 15:10:39.846 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 15:10:39.846 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 15:10:39.857 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 11 ms
|
||||
2022-04-24 17:40:58.128 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 10652 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 17:40:58.166 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 17:41:01.970 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 17:41:01.984 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 17:41:02.074 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 49ms. Found 0 repository interfaces.
|
||||
2022-04-24 17:41:02.950 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 17:41:03.407 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 17:41:03.414 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 17:41:03.415 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 17:41:03.415 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 17:41:03.556 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 17:41:03.557 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 4739 ms
|
||||
2022-04-24 17:41:03.879 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 17:41:04.161 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 17:41:05.031 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 17:41:05.209 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 17:41:06.066 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 17:41:06.087 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 17:41:06.153 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 17:41:06.622 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 17:41:06.674 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 17:41:06.676 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 11.775 seconds (JVM running for 14.112)
|
||||
2022-04-24 17:42:36.246 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 17:42:36.246 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 17:42:36.250 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 4 ms
|
||||
2022-04-24 18:14:30.676 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 13252 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 18:14:30.709 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 18:14:32.764 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 18:14:32.767 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 18:14:32.784 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 8ms. Found 0 repository interfaces.
|
||||
2022-04-24 18:14:33.006 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 18:14:33.169 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 18:14:33.175 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 18:14:33.176 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 18:14:33.176 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 18:14:33.236 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 18:14:33.236 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 2205 ms
|
||||
2022-04-24 18:14:33.355 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 18:14:33.468 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 18:14:33.795 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 18:14:33.862 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 18:14:34.160 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 18:14:34.170 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 18:14:34.205 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 18:14:34.329 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 18:14:34.343 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 18:14:34.345 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 5.978 seconds (JVM running for 7.868)
|
||||
2022-04-24 18:15:10.211 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 18:15:10.214 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 18:15:10.257 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 42 ms
|
||||
2022-04-24 18:16:23.862 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 10992 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 18:16:23.881 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 18:16:26.215 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 18:16:26.218 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 18:16:26.284 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 25ms. Found 0 repository interfaces.
|
||||
2022-04-24 18:16:26.749 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 18:16:27.155 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 18:16:27.161 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 18:16:27.162 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 18:16:27.162 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 18:16:27.320 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 18:16:27.322 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3293 ms
|
||||
2022-04-24 18:16:27.749 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 18:16:27.987 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 18:16:28.807 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 18:16:28.973 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 18:16:29.757 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 18:16:29.799 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 18:16:29.863 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 18:16:30.225 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 18:16:30.281 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 18:16:30.283 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 8.212 seconds (JVM running for 9.61)
|
||||
2022-04-24 18:17:04.765 [http-nio-8001-exec-3] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 18:17:04.766 [http-nio-8001-exec-3] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 18:17:04.814 [http-nio-8001-exec-3] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 46 ms
|
||||
2022-04-24 18:19:36.859 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 7632 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 18:19:36.877 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 18:19:39.709 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 18:19:39.723 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 18:19:39.802 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 35ms. Found 0 repository interfaces.
|
||||
2022-04-24 18:19:40.476 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 18:19:40.898 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 18:19:40.927 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 18:19:40.928 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 18:19:40.928 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 18:19:41.065 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 18:19:41.065 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3906 ms
|
||||
2022-04-24 18:19:41.442 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 18:19:41.746 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 18:19:42.663 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 18:19:42.865 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 18:19:43.711 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 18:19:43.741 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 18:19:43.802 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 18:19:44.249 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 18:19:44.286 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 18:19:44.293 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 9.147 seconds (JVM running for 11.554)
|
||||
2022-04-24 18:21:11.262 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 18:21:11.263 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 18:21:11.285 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 22 ms
|
||||
2022-04-24 18:23:32.309 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 12460 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 18:23:32.312 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 18:23:33.221 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 18:23:33.224 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 18:23:33.254 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12ms. Found 0 repository interfaces.
|
||||
2022-04-24 18:23:33.479 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 18:23:33.638 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 18:23:33.646 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 18:23:33.646 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 18:23:33.647 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 18:23:33.709 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 18:23:33.709 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1298 ms
|
||||
2022-04-24 18:23:33.835 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 18:23:33.963 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 18:23:34.291 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 18:23:34.362 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 18:23:34.654 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 18:23:34.664 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 18:23:34.688 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 18:23:34.809 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 18:23:34.823 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 18:23:34.825 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 2.928 seconds (JVM running for 3.386)
|
||||
2022-04-24 18:24:23.672 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 19008 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 18:24:23.675 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 18:24:24.343 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 18:24:24.345 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 18:24:24.361 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 6ms. Found 0 repository interfaces.
|
||||
2022-04-24 18:24:24.545 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 18:24:24.702 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 18:24:24.708 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 18:24:24.708 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 18:24:24.708 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 18:24:24.769 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 18:24:24.769 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1039 ms
|
||||
2022-04-24 18:24:24.897 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 18:24:25.007 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 18:24:25.348 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 18:24:25.422 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 18:24:25.726 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 18:24:25.737 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 18:24:25.760 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 18:24:25.894 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 18:24:25.950 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 18:24:25.953 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 2.791 seconds (JVM running for 3.527)
|
||||
2022-04-24 18:24:41.094 [http-nio-8001-exec-3] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 18:24:41.095 [http-nio-8001-exec-3] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 18:24:41.101 [http-nio-8001-exec-3] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 6 ms
|
||||
2022-04-24 18:31:38.469 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 8608 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 18:31:38.480 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 18:31:41.826 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 18:31:41.837 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 18:31:41.923 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 37ms. Found 0 repository interfaces.
|
||||
2022-04-24 18:31:42.902 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 18:31:43.572 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 18:31:43.598 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 18:31:43.601 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 18:31:43.602 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 18:31:43.877 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 18:31:43.878 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 4958 ms
|
||||
2022-04-24 18:31:44.470 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 18:31:45.124 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 18:31:46.753 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 18:31:47.141 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 18:31:48.402 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 18:31:48.449 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 18:31:48.544 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 18:31:49.112 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 18:31:49.213 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 18:31:49.225 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 15.499 seconds (JVM running for 20.352)
|
||||
2022-04-24 18:32:30.533 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 18:32:30.538 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 18:32:30.574 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 33 ms
|
||||
2022-04-24 19:38:00.372 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 4264 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 19:38:00.395 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 19:38:04.068 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 19:38:04.068 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 19:38:04.183 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 40ms. Found 0 repository interfaces.
|
||||
2022-04-24 19:38:04.841 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 19:38:05.528 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 19:38:05.538 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 19:38:05.538 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 19:38:05.538 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 19:38:05.829 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 19:38:05.829 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 5091 ms
|
||||
2022-04-24 19:38:06.468 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 19:38:06.958 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 19:38:08.048 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 19:38:08.318 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 19:38:09.478 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 19:38:09.498 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 19:38:09.578 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 19:38:10.008 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 19:38:10.057 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 19:38:10.057 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 12.742 seconds (JVM running for 16.533)
|
||||
2022-04-24 19:40:17.457 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 16024 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 19:40:17.457 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 19:40:18.292 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 19:40:18.292 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 19:40:18.312 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 8ms. Found 0 repository interfaces.
|
||||
2022-04-24 19:40:18.587 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 19:40:18.757 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 19:40:18.762 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 19:40:18.767 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 19:40:18.767 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 19:40:18.827 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 19:40:18.827 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1289 ms
|
||||
2022-04-24 19:40:18.977 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 19:40:19.107 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 19:40:19.457 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 19:40:19.532 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 19:40:19.857 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 19:40:19.865 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 19:40:19.887 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 19:40:20.007 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 19:40:20.033 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 19:40:20.036 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 3.004 seconds (JVM running for 3.605)
|
||||
2022-04-24 19:40:45.866 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 19:40:45.867 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 19:40:45.873 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 6 ms
|
||||
2022-04-24 20:28:10.446 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 15048 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 20:28:10.478 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 20:28:16.933 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 20:28:16.947 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 20:28:17.087 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 57ms. Found 0 repository interfaces.
|
||||
2022-04-24 20:28:18.713 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 20:28:19.982 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 20:28:20.068 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:28:20.072 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 20:28:20.078 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 20:28:20.472 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 20:28:20.473 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 9651 ms
|
||||
2022-04-24 20:28:21.337 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 20:28:21.989 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 20:28:24.298 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 20:28:24.796 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 20:28:26.741 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 20:28:26.803 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 20:28:26.962 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 20:28:28.119 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:28:28.230 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 20:28:28.255 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 22.08 seconds (JVM running for 25.494)
|
||||
2022-04-24 20:28:46.660 [http-nio-8001-exec-2] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 20:28:46.661 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 20:28:46.668 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 7 ms
|
||||
2022-04-24 20:29:32.313 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 1788 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 20:29:32.340 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 20:29:34.862 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 20:29:34.864 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 20:29:34.916 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 34ms. Found 0 repository interfaces.
|
||||
2022-04-24 20:29:35.537 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 20:29:35.922 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 20:29:35.936 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:29:35.936 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 20:29:35.937 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 20:29:36.079 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 20:29:36.081 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3334 ms
|
||||
2022-04-24 20:29:36.545 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 20:29:36.909 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 20:29:37.830 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 20:29:38.165 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 20:29:39.286 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 20:29:39.315 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 20:29:39.370 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 20:29:39.654 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:29:39.691 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 20:29:39.703 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 9.074 seconds (JVM running for 10.721)
|
||||
2022-04-24 20:29:55.430 [http-nio-8001-exec-2] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 20:29:55.431 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 20:29:55.459 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 25 ms
|
||||
2022-04-24 20:31:08.056 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 1728 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 20:31:08.074 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 20:31:11.555 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 20:31:11.563 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 20:31:11.630 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 15ms. Found 0 repository interfaces.
|
||||
2022-04-24 20:31:12.355 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 20:31:12.753 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 20:31:12.764 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:31:12.767 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 20:31:12.769 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 20:31:12.897 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 20:31:12.899 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 4535 ms
|
||||
2022-04-24 20:31:13.263 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 20:31:13.518 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 20:31:14.332 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 20:31:14.491 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 20:31:15.223 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 20:31:15.265 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 20:31:15.300 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 20:31:15.611 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:31:15.628 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 20:31:15.639 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 9.283 seconds (JVM running for 11.25)
|
||||
2022-04-24 20:31:27.575 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 20:31:27.576 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 20:31:27.601 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 25 ms
|
||||
2022-04-24 20:32:33.005 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 13060 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 20:32:33.123 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 20:32:35.259 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 20:32:35.261 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 20:32:35.319 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 48ms. Found 0 repository interfaces.
|
||||
2022-04-24 20:32:35.920 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 20:32:36.295 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 20:32:36.316 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:32:36.317 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 20:32:36.317 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 20:32:36.450 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 20:32:36.450 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3175 ms
|
||||
2022-04-24 20:32:36.871 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 20:32:37.200 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 20:32:38.069 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 20:32:38.262 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 20:32:39.053 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 20:32:39.071 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 20:32:39.140 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 20:32:39.537 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:32:39.592 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 20:32:39.604 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 8.293 seconds (JVM running for 9.959)
|
||||
2022-04-24 20:32:44.459 [http-nio-8001-exec-3] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 20:32:44.463 [http-nio-8001-exec-3] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 20:32:44.495 [http-nio-8001-exec-3] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 30 ms
|
||||
2022-04-24 20:33:57.452 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 15836 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 20:33:57.618 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 20:34:00.419 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 20:34:00.441 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 20:34:00.585 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 46ms. Found 0 repository interfaces.
|
||||
2022-04-24 20:34:01.452 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 20:34:01.964 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 20:34:01.970 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:34:01.970 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 20:34:01.970 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 20:34:02.162 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 20:34:02.162 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 4315 ms
|
||||
2022-04-24 20:34:02.664 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 20:34:03.040 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 20:34:04.181 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 20:34:04.384 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 20:34:05.122 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 20:34:05.160 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 20:34:05.206 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 20:34:05.556 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:34:05.579 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 20:34:05.582 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 9.748 seconds (JVM running for 11.416)
|
||||
2022-04-24 20:35:05.035 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 20:35:05.036 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 20:35:05.040 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 4 ms
|
||||
2022-04-24 20:37:15.506 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 4980 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 20:37:15.521 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 20:37:18.304 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 20:37:18.313 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 20:37:18.347 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13ms. Found 0 repository interfaces.
|
||||
2022-04-24 20:37:18.981 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 20:37:19.369 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 20:37:19.382 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:37:19.383 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 20:37:19.383 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 20:37:19.506 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 20:37:19.508 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3699 ms
|
||||
2022-04-24 20:37:19.822 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 20:37:20.134 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 20:37:21.116 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 20:37:21.275 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 20:37:21.986 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 20:37:22.005 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 20:37:22.068 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 20:37:22.377 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:37:22.403 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 20:37:22.405 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 8.472 seconds (JVM running for 10.023)
|
||||
2022-04-24 20:37:34.812 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 20:37:34.813 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 20:37:34.839 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 26 ms
|
||||
2022-04-24 20:38:09.069 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 10216 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-24 20:38:09.080 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-24 20:38:11.570 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-24 20:38:11.572 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-24 20:38:11.623 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 32ms. Found 0 repository interfaces.
|
||||
2022-04-24 20:38:12.325 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-24 20:38:12.719 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-24 20:38:12.744 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:38:12.746 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-24 20:38:12.748 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-24 20:38:12.874 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-24 20:38:12.874 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3531 ms
|
||||
2022-04-24 20:38:13.200 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-24 20:38:13.462 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-24 20:38:14.361 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-24 20:38:14.518 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-24 20:38:15.291 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-24 20:38:15.300 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-24 20:38:15.362 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-24 20:38:15.652 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-24 20:38:15.695 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-24 20:38:15.697 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 8.379 seconds (JVM running for 10.235)
|
||||
2022-04-24 20:38:19.835 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-24 20:38:19.836 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-24 20:38:19.850 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 13 ms
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
2022-04-25 10:55:47.916 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 6060 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-25 10:55:47.921 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-25 10:55:50.907 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-25 10:55:50.909 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-25 10:55:50.982 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 33ms. Found 0 repository interfaces.
|
||||
2022-04-25 10:55:51.396 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-25 10:55:51.874 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-25 10:55:51.906 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 10:55:51.906 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-25 10:55:51.906 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-25 10:55:52.048 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-25 10:55:52.049 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3866 ms
|
||||
2022-04-25 10:55:52.448 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-25 10:55:52.657 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-25 10:55:53.661 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-25 10:55:53.801 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-25 10:55:54.651 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-25 10:55:54.663 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-25 10:55:54.722 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-25 10:55:55.000 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 10:55:55.047 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-25 10:55:55.052 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 9.125 seconds (JVM running for 11.296)
|
||||
2022-04-25 10:56:29.975 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-25 10:56:29.977 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-25 10:56:29.996 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 18 ms
|
||||
2022-04-25 11:55:14.432 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 8096 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-25 11:55:14.435 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-25 11:55:16.999 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-25 11:55:17.003 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-25 11:55:17.095 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 40ms. Found 0 repository interfaces.
|
||||
2022-04-25 11:55:17.613 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-25 11:55:18.009 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-25 11:55:18.015 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 11:55:18.018 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-25 11:55:18.019 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-25 11:55:18.361 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-25 11:55:18.361 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3763 ms
|
||||
2022-04-25 11:55:18.695 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-25 11:55:19.039 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-25 11:55:20.165 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-25 11:55:20.340 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-25 11:55:20.988 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-25 11:55:21.023 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-25 11:55:21.069 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-25 11:55:21.406 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 11:55:21.426 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-25 11:55:21.428 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 9.584 seconds (JVM running for 12.722)
|
||||
2022-04-25 11:56:12.089 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-25 11:56:12.089 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-25 11:56:12.098 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 9 ms
|
||||
2022-04-25 11:59:23.301 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 6836 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-25 11:59:23.323 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-25 11:59:29.258 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-25 11:59:29.259 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-25 11:59:29.283 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 14ms. Found 0 repository interfaces.
|
||||
2022-04-25 11:59:29.845 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-25 11:59:30.474 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-25 11:59:30.483 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 11:59:30.484 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-25 11:59:30.484 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-25 11:59:30.621 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-25 11:59:30.622 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 6908 ms
|
||||
2022-04-25 11:59:30.968 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-25 11:59:31.221 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-25 11:59:32.223 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-25 11:59:32.417 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-25 11:59:33.023 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-25 11:59:33.035 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-25 11:59:33.092 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-25 11:59:33.376 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 11:59:33.415 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-25 11:59:33.417 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 13.949 seconds (JVM running for 18.534)
|
||||
2022-04-25 11:59:34.890 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-25 11:59:34.890 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-25 11:59:34.914 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 23 ms
|
||||
2022-04-25 12:01:40.333 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 3804 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-25 12:01:40.403 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-25 12:01:42.726 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-25 12:01:42.728 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-25 12:01:42.798 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11ms. Found 0 repository interfaces.
|
||||
2022-04-25 12:01:43.430 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-25 12:01:43.801 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-25 12:01:43.829 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 12:01:43.833 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-25 12:01:43.834 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-25 12:01:43.952 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-25 12:01:43.954 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3429 ms
|
||||
2022-04-25 12:01:44.307 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-25 12:01:44.536 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-25 12:01:45.603 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-25 12:01:45.799 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-25 12:01:46.514 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-25 12:01:46.530 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-25 12:01:46.582 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-25 12:01:46.865 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 12:01:46.910 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-25 12:01:46.912 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 8.617 seconds (JVM running for 12.716)
|
||||
2022-04-25 12:01:51.334 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-25 12:01:51.334 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-25 12:01:51.346 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 12 ms
|
||||
2022-04-25 12:03:38.422 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 4976 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-25 12:03:38.437 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-25 12:03:40.592 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-25 12:03:40.594 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-25 12:03:40.656 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 10ms. Found 0 repository interfaces.
|
||||
2022-04-25 12:03:41.190 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-25 12:03:41.523 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-25 12:03:41.530 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 12:03:41.530 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-25 12:03:41.531 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-25 12:03:41.667 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-25 12:03:41.668 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 2782 ms
|
||||
2022-04-25 12:03:41.970 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-25 12:03:42.194 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-25 12:03:43.194 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-25 12:03:43.386 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-25 12:03:44.194 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-25 12:03:44.221 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-25 12:03:44.270 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-25 12:03:44.810 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 12:03:44.891 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-25 12:03:44.904 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 8.126 seconds (JVM running for 9.781)
|
||||
2022-04-25 12:03:48.246 [http-nio-8001-exec-2] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-25 12:03:48.247 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-25 12:03:48.272 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 24 ms
|
||||
2022-04-25 12:05:36.662 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 4432 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-25 12:05:36.693 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-25 12:05:39.522 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-25 12:05:39.535 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-25 12:05:39.603 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 38ms. Found 0 repository interfaces.
|
||||
2022-04-25 12:05:40.148 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-25 12:05:40.589 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-25 12:05:40.599 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 12:05:40.602 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-25 12:05:40.603 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-25 12:05:40.739 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-25 12:05:40.739 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3617 ms
|
||||
2022-04-25 12:05:41.141 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-25 12:05:41.473 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-25 12:05:42.476 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-25 12:05:42.651 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-25 12:05:43.412 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-25 12:05:43.455 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-25 12:05:43.517 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-25 12:05:43.861 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 12:05:43.891 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-25 12:05:43.901 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 9.607 seconds (JVM running for 12.458)
|
||||
2022-04-25 12:05:52.260 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-25 12:05:52.261 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-25 12:05:52.267 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 5 ms
|
||||
2022-04-25 12:07:16.304 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 604 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-25 12:07:16.334 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-25 12:07:17.131 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-25 12:07:17.133 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-25 12:07:17.159 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12ms. Found 0 repository interfaces.
|
||||
2022-04-25 12:07:17.402 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-25 12:07:17.573 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-25 12:07:17.579 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 12:07:17.580 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-25 12:07:17.580 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-25 12:07:17.645 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-25 12:07:17.645 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1284 ms
|
||||
2022-04-25 12:07:17.766 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-25 12:07:17.889 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-25 12:07:18.463 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-25 12:07:18.543 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-25 12:07:18.871 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-25 12:07:18.881 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-25 12:07:18.903 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-25 12:07:19.030 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 12:07:19.045 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-25 12:07:19.047 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 3.142 seconds (JVM running for 3.633)
|
||||
2022-04-25 12:07:20.759 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-25 12:07:20.759 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-25 12:07:20.766 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 6 ms
|
||||
2022-04-25 12:12:48.641 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 2676 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-25 12:12:48.664 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-25 12:12:53.923 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-25 12:12:53.942 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-25 12:12:54.077 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 60ms. Found 0 repository interfaces.
|
||||
2022-04-25 12:12:55.405 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-25 12:12:56.446 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-25 12:12:56.483 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 12:12:56.486 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-25 12:12:56.490 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-25 12:12:56.869 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-25 12:12:56.870 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 8023 ms
|
||||
2022-04-25 12:12:57.857 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-25 12:12:58.648 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-25 12:13:01.757 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-25 12:13:02.229 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-25 12:13:04.382 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-25 12:13:04.468 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-25 12:13:04.682 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-25 12:13:06.135 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-25 12:13:06.235 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-25 12:13:06.254 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 21.55 seconds (JVM running for 25.839)
|
||||
2022-04-25 12:13:08.606 [http-nio-8001-exec-3] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-25 12:13:08.606 [http-nio-8001-exec-3] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-25 12:13:08.611 [http-nio-8001-exec-3] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 5 ms
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
2022-04-27 13:37:36.533 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 12832 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-27 13:37:36.538 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-27 13:37:38.522 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-27 13:37:38.523 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-27 13:37:38.570 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 33ms. Found 0 repository interfaces.
|
||||
2022-04-27 13:37:38.990 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-27 13:37:39.391 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-27 13:37:39.400 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-27 13:37:39.400 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-27 13:37:39.400 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-27 13:37:39.536 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-27 13:37:39.536 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 2838 ms
|
||||
2022-04-27 13:37:39.915 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-27 13:37:40.522 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-27 13:37:43.505 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-27 13:37:44.212 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-27 13:37:46.297 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-27 13:37:46.350 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-27 13:37:46.495 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-27 13:37:46.944 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-27 13:37:46.964 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-27 13:37:46.966 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 11.822 seconds (JVM running for 13.597)
|
||||
2022-04-27 13:37:49.095 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-27 13:37:49.096 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-27 13:37:49.101 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 5 ms
|
||||
2022-04-27 13:40:14.385 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 13328 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-27 13:40:14.389 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-27 13:40:17.223 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-27 13:40:17.224 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-27 13:40:17.272 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 35ms. Found 0 repository interfaces.
|
||||
2022-04-27 13:40:17.623 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-27 13:40:17.969 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-27 13:40:17.980 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-27 13:40:17.983 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-27 13:40:17.986 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-27 13:40:18.175 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-27 13:40:18.175 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3603 ms
|
||||
2022-04-27 13:40:18.485 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-27 13:40:18.682 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-27 13:40:19.568 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-27 13:40:19.716 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-27 13:40:20.285 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-27 13:40:20.297 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-27 13:40:20.354 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-27 13:40:20.642 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-27 13:40:20.691 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-27 13:40:20.693 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 7.445 seconds (JVM running for 8.662)
|
||||
2022-04-27 13:40:30.313 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 12844 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-04-27 13:40:30.316 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-04-27 13:40:32.809 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-04-27 13:40:32.817 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-04-27 13:40:32.853 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 17ms. Found 0 repository interfaces.
|
||||
2022-04-27 13:40:33.525 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-04-27 13:40:33.888 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-04-27 13:40:33.898 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-27 13:40:33.899 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-04-27 13:40:33.899 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-04-27 13:40:34.094 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-04-27 13:40:34.095 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3460 ms
|
||||
2022-04-27 13:40:34.421 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-04-27 13:40:34.644 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-04-27 13:40:35.501 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-04-27 13:40:35.631 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-04-27 13:40:36.289 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-04-27 13:40:36.304 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-04-27 13:40:36.365 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-04-27 13:40:36.611 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-04-27 13:40:36.636 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-04-27 13:40:36.637 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 7.623 seconds (JVM running for 9.067)
|
||||
2022-04-27 13:41:03.686 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-04-27 13:41:03.687 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-04-27 13:41:03.691 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 4 ms
|
||||
|
|
@ -0,0 +1,397 @@
|
|||
2022-05-05 11:37:05.920 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 12264 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 11:37:05.923 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 11:37:12.890 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 11:37:12.910 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 11:37:13.275 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 113ms. Found 0 repository interfaces.
|
||||
2022-05-05 11:37:14.935 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 11:37:16.315 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 11:37:16.325 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 11:37:16.329 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 11:37:16.330 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 11:37:17.177 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 11:37:17.178 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 10926 ms
|
||||
2022-05-05 11:37:18.227 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 11:37:19.132 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 11:37:22.267 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 11:37:22.652 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 11:37:25.649 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 11:37:25.806 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 11:37:25.978 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 11:37:26.597 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 11:37:26.680 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 11:37:26.696 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 25.243 seconds (JVM running for 30.823)
|
||||
2022-05-05 11:38:03.043 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 11:38:03.044 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 11:38:03.058 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 14 ms
|
||||
2022-05-05 13:22:29.735 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 9428 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 13:22:29.744 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 13:22:31.522 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 13:22:31.524 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 13:22:31.559 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 21ms. Found 0 repository interfaces.
|
||||
2022-05-05 13:22:32.053 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 13:22:32.452 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 13:22:32.459 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 13:22:32.460 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 13:22:32.460 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 13:22:32.606 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 13:22:32.607 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 2682 ms
|
||||
2022-05-05 13:22:32.993 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 13:22:33.264 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 13:22:34.604 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 13:22:34.782 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 13:22:35.546 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 13:22:35.580 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 13:22:35.618 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 13:22:35.950 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 13:22:35.992 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 13:22:35.994 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 7.669 seconds (JVM running for 9.004)
|
||||
2022-05-05 13:22:52.702 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 13:22:52.702 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 13:22:52.713 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 10 ms
|
||||
2022-05-05 13:36:22.598 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 13772 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 13:36:22.608 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 13:36:24.731 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 13:36:24.733 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 13:36:24.791 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12ms. Found 0 repository interfaces.
|
||||
2022-05-05 13:36:25.249 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 13:36:25.592 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 13:36:25.597 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 13:36:25.597 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 13:36:25.597 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 13:36:25.716 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 13:36:25.717 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 2924 ms
|
||||
2022-05-05 13:36:26.062 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 13:36:26.330 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 13:36:27.262 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 13:36:27.400 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 13:36:28.032 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 13:36:28.050 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 13:36:28.106 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 13:36:28.341 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 13:36:28.381 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 13:36:28.383 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 7.257 seconds (JVM running for 8.57)
|
||||
2022-05-05 13:36:40.353 [http-nio-8001-exec-3] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 13:36:40.354 [http-nio-8001-exec-3] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 13:36:40.388 [http-nio-8001-exec-3] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 32 ms
|
||||
2022-05-05 14:11:14.309 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 5836 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 14:11:14.445 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 14:11:16.661 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 14:11:16.668 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 14:11:16.724 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 16ms. Found 0 repository interfaces.
|
||||
2022-05-05 14:11:17.269 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 14:11:17.700 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 14:11:17.710 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 14:11:17.711 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 14:11:17.711 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 14:11:17.834 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 14:11:17.834 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3191 ms
|
||||
2022-05-05 14:11:18.239 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 14:11:18.523 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 14:11:19.645 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 14:11:19.825 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 14:11:20.716 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 14:11:20.758 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 14:11:20.801 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 14:11:21.174 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 14:11:21.219 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 14:11:21.229 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 8.743 seconds (JVM running for 10.445)
|
||||
2022-05-05 14:11:31.954 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 14:11:31.954 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 14:11:31.979 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 25 ms
|
||||
2022-05-05 15:22:58.929 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 9984 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 15:22:58.932 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 15:23:00.230 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 15:23:00.233 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 15:23:00.267 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 15ms. Found 0 repository interfaces.
|
||||
2022-05-05 15:23:00.617 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 15:23:00.864 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 15:23:00.871 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 15:23:00.872 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 15:23:00.872 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 15:23:00.965 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 15:23:00.966 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1947 ms
|
||||
2022-05-05 15:23:01.167 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 15:23:01.337 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 15:23:02.032 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 15:23:02.149 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 15:23:02.621 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 15:23:02.635 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 15:23:02.669 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 15:23:02.853 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 15:23:02.881 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 15:23:02.884 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 4.67 seconds (JVM running for 5.534)
|
||||
2022-05-05 15:49:02.980 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 12536 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 15:49:02.994 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 15:49:05.628 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 15:49:05.639 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 15:49:05.724 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 36ms. Found 0 repository interfaces.
|
||||
2022-05-05 15:49:06.471 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 15:49:06.744 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 15:49:06.760 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 15:49:06.761 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 15:49:06.761 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 15:49:06.895 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 15:49:06.896 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3523 ms
|
||||
2022-05-05 15:49:07.233 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 15:49:07.453 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 15:49:08.194 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 15:49:08.309 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 15:49:08.806 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 15:49:08.823 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 15:49:08.858 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 15:49:09.106 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 15:49:09.142 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 15:49:09.144 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 7.706 seconds (JVM running for 8.389)
|
||||
2022-05-05 15:49:50.605 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 15:49:50.607 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 15:49:50.664 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 55 ms
|
||||
2022-05-05 15:55:49.141 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 14736 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 15:55:49.156 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 15:55:52.390 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 15:55:52.391 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 15:55:52.456 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 25ms. Found 0 repository interfaces.
|
||||
2022-05-05 15:55:52.973 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 15:55:53.386 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 15:55:53.394 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 15:55:53.394 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 15:55:53.395 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 15:55:53.594 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 15:55:53.595 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 4295 ms
|
||||
2022-05-05 15:55:53.989 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 15:55:54.324 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 15:55:55.350 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 15:55:55.520 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 15:55:56.301 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 15:55:56.314 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 15:55:56.378 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 15:55:56.714 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 15:55:56.757 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 15:55:56.768 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 10.365 seconds (JVM running for 11.843)
|
||||
2022-05-05 15:56:02.252 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 15:56:02.257 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 15:56:02.301 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 38 ms
|
||||
2022-05-05 16:12:47.776 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 13736 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 16:12:47.797 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 16:12:52.857 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 16:12:52.865 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 16:12:52.987 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 66ms. Found 0 repository interfaces.
|
||||
2022-05-05 16:12:53.784 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 16:12:54.241 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 16:12:54.247 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 16:12:54.248 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 16:12:54.248 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 16:12:54.423 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 16:12:54.426 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 5946 ms
|
||||
2022-05-05 16:12:54.794 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 16:12:55.213 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 16:12:56.451 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 16:12:56.743 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 16:12:57.505 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 16:12:57.522 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 16:12:57.586 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 16:12:57.931 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 16:12:57.984 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 16:12:57.986 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 13.464 seconds (JVM running for 16.296)
|
||||
2022-05-05 16:13:03.247 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 16:13:03.248 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 16:13:03.273 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 25 ms
|
||||
2022-05-05 16:58:38.826 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 4376 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 16:58:38.859 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 16:58:42.600 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 16:58:42.611 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 16:58:42.695 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 32ms. Found 0 repository interfaces.
|
||||
2022-05-05 16:58:43.341 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 16:58:43.883 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 16:58:43.901 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 16:58:43.905 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 16:58:43.907 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 16:58:44.076 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 16:58:44.076 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 4834 ms
|
||||
2022-05-05 16:58:44.469 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 16:58:44.762 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 16:58:46.050 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 16:58:46.275 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 16:58:47.109 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 16:58:47.149 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 16:58:47.213 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 16:58:47.556 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 16:58:47.612 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 16:58:47.614 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 10.738 seconds (JVM running for 12.437)
|
||||
2022-05-05 16:58:54.217 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 16:58:54.219 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 16:58:54.247 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 27 ms
|
||||
2022-05-05 20:00:33.084 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 15060 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 20:00:33.110 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 20:00:41.457 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 20:00:41.475 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 20:00:41.638 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 70ms. Found 0 repository interfaces.
|
||||
2022-05-05 20:00:43.209 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 20:00:44.781 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 20:00:44.835 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 20:00:44.844 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 20:00:44.851 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 20:00:45.462 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 20:00:45.467 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 11700 ms
|
||||
2022-05-05 20:00:46.502 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 20:00:47.264 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 20:00:51.236 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 20:00:52.004 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 20:00:54.825 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 20:00:54.910 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 20:00:55.118 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 20:00:56.493 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 20:00:56.646 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 20:00:56.668 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 28.414 seconds (JVM running for 32.336)
|
||||
2022-05-05 20:01:02.509 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 20:01:02.511 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 20:01:02.547 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 35 ms
|
||||
2022-05-05 20:04:49.617 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 11192 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 20:04:49.630 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 20:04:53.450 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 20:04:53.452 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 20:04:53.519 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11ms. Found 0 repository interfaces.
|
||||
2022-05-05 20:04:54.317 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 20:04:54.966 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 20:04:54.985 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 20:04:54.986 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 20:04:54.986 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 20:04:55.265 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 20:04:55.270 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 5558 ms
|
||||
2022-05-05 20:04:55.855 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 20:04:56.469 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 20:04:57.818 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 20:04:58.069 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 20:04:59.105 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 20:04:59.122 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 20:04:59.190 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 20:04:59.637 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 20:04:59.657 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 20:04:59.670 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 12.286 seconds (JVM running for 15.079)
|
||||
2022-05-05 20:05:36.833 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 20:05:36.833 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 20:05:36.864 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 30 ms
|
||||
2022-05-05 20:12:47.949 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 9780 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 20:12:47.964 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 20:12:51.922 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 20:12:51.933 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 20:12:52.079 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 66ms. Found 0 repository interfaces.
|
||||
2022-05-05 20:12:52.871 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 20:12:53.295 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 20:12:53.328 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 20:12:53.331 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 20:12:53.332 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 20:12:53.477 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 20:12:53.477 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 5137 ms
|
||||
2022-05-05 20:12:53.860 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 20:12:54.156 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 20:12:55.428 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 20:12:55.618 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 20:12:56.411 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 20:12:56.423 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 20:12:56.491 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 20:12:56.874 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 20:12:56.892 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 20:12:56.895 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 10.955 seconds (JVM running for 14.384)
|
||||
2022-05-05 20:13:01.959 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 20:13:01.960 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 20:13:01.991 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 31 ms
|
||||
2022-05-05 20:26:48.368 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 2440 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 20:26:48.381 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 20:26:51.185 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 20:26:51.192 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 20:26:51.242 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 20ms. Found 0 repository interfaces.
|
||||
2022-05-05 20:26:51.883 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 20:26:52.347 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 20:26:52.352 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 20:26:52.353 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 20:26:52.353 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 20:26:52.474 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 20:26:52.475 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3879 ms
|
||||
2022-05-05 20:26:52.823 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 20:26:53.172 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 20:26:54.622 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 20:26:54.810 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 20:26:55.560 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 20:26:55.596 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 20:26:55.662 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 20:26:56.026 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 20:26:56.076 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 20:26:56.084 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 9.152 seconds (JVM running for 11.319)
|
||||
2022-05-05 20:27:05.937 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 20:27:05.940 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 20:27:05.974 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 32 ms
|
||||
2022-05-05 21:54:44.143 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 5988 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 21:54:44.158 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 21:54:49.356 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 21:54:49.367 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 21:54:49.460 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 39ms. Found 0 repository interfaces.
|
||||
2022-05-05 21:54:50.625 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 21:54:52.161 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 21:54:52.199 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 21:54:52.202 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 21:54:52.203 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 21:54:52.726 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 21:54:52.727 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 8247 ms
|
||||
2022-05-05 21:54:53.813 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 21:54:55.835 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 21:55:00.308 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 21:55:00.705 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 21:55:03.171 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 21:55:03.243 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 21:55:03.463 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 21:55:04.635 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 21:55:04.791 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 21:55:04.804 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 26.684 seconds (JVM running for 32.374)
|
||||
2022-05-05 21:55:06.286 [http-nio-8001-exec-2] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 21:55:06.288 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 21:55:06.332 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 43 ms
|
||||
2022-05-05 21:58:14.043 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 11572 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 21:58:14.068 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 21:58:17.062 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 21:58:17.079 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 21:58:17.185 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 42ms. Found 0 repository interfaces.
|
||||
2022-05-05 21:58:18.261 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 21:58:18.851 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 21:58:18.865 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 21:58:18.870 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 21:58:18.871 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 21:58:19.047 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 21:58:19.047 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 4884 ms
|
||||
2022-05-05 21:58:19.449 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 21:58:19.778 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 21:58:21.351 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 21:58:21.560 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 21:58:22.293 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 21:58:22.308 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 21:58:22.365 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 21:58:22.767 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 21:58:22.789 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 21:58:22.800 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 10.623 seconds (JVM running for 12.117)
|
||||
2022-05-05 21:58:37.323 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 21:58:37.323 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 21:58:37.327 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 4 ms
|
||||
2022-05-05 21:59:44.960 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 13024 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-05 21:59:44.979 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-05 21:59:49.624 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-05 21:59:49.633 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-05 21:59:49.718 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 40ms. Found 0 repository interfaces.
|
||||
2022-05-05 21:59:50.455 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-05 21:59:50.950 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-05 21:59:50.984 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 21:59:50.985 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-05 21:59:50.986 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-05 21:59:51.187 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-05 21:59:51.187 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 5753 ms
|
||||
2022-05-05 21:59:51.646 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-05 21:59:52.237 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-05 21:59:53.849 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-05 21:59:54.079 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-05 21:59:55.110 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-05 21:59:55.124 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-05 21:59:55.189 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-05 21:59:55.653 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-05 21:59:55.676 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-05 21:59:55.687 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 13.226 seconds (JVM running for 16.838)
|
||||
2022-05-05 22:00:07.033 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-05 22:00:07.034 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-05 22:00:07.067 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 32 ms
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
2022-05-05 13:35:38.424 [http-nio-8001-exec-10] ERROR c.a.s.exceptionhandler.GlobalExceptionHandler - GuliException(code=20001, msg=执行了自定义异常处理...)
|
||||
at com.atguigu.eduservice.controller.EduTeacherController.findAllTeacher(EduTeacherController.java:54)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
|
||||
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
|
||||
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
|
||||
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
|
||||
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
|
||||
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
|
||||
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
|
||||
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
|
||||
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
|
||||
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579)
|
||||
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:748)
|
||||
|
||||
2022-05-05 13:35:46.902 [http-nio-8001-exec-6] ERROR c.a.s.exceptionhandler.GlobalExceptionHandler - GuliException(code=20001, msg=执行了自定义异常处理...)
|
||||
at com.atguigu.eduservice.controller.EduTeacherController.findAllTeacher(EduTeacherController.java:54)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
|
||||
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
|
||||
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
|
||||
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
|
||||
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
|
||||
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
|
||||
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
|
||||
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
|
||||
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
|
||||
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579)
|
||||
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:748)
|
||||
|
||||
|
|
@ -0,0 +1,172 @@
|
|||
2022-05-06 09:52:35.727 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 15204 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-06 09:52:35.895 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-06 09:52:40.103 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-06 09:52:40.112 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-06 09:52:40.230 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 47ms. Found 0 repository interfaces.
|
||||
2022-05-06 09:52:40.848 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-06 09:52:41.357 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-06 09:52:41.371 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 09:52:41.372 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-06 09:52:41.372 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-06 09:52:41.514 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-06 09:52:41.515 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 5147 ms
|
||||
2022-05-06 09:52:41.986 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-06 09:52:42.365 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-06 09:52:43.652 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-06 09:52:43.906 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-06 09:52:44.986 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-06 09:52:45.020 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-06 09:52:45.065 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-06 09:52:45.511 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 09:52:45.533 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-06 09:52:45.536 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 13.212 seconds (JVM running for 15.645)
|
||||
2022-05-06 09:53:56.118 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-06 09:53:56.118 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-06 09:53:56.148 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 30 ms
|
||||
2022-05-06 10:57:01.474 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 12332 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-06 10:57:01.531 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-06 10:57:08.139 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-06 10:57:08.164 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-06 10:57:08.457 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 154ms. Found 0 repository interfaces.
|
||||
2022-05-06 10:57:10.323 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-06 10:57:11.494 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-06 10:57:11.541 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 10:57:11.543 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-06 10:57:11.546 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-06 10:57:11.963 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-06 10:57:11.964 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 9710 ms
|
||||
2022-05-06 10:57:12.883 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-06 10:57:13.569 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-06 10:57:16.737 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-06 10:57:17.184 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-06 10:57:19.150 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-06 10:57:19.209 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-06 10:57:19.303 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-06 10:57:20.172 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 10:57:20.220 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-06 10:57:20.238 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 23.142 seconds (JVM running for 26.723)
|
||||
2022-05-06 11:08:35.770 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 13764 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-06 11:08:35.790 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-06 11:08:42.862 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-06 11:08:42.914 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-06 11:08:43.151 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 92ms. Found 0 repository interfaces.
|
||||
2022-05-06 11:08:45.479 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-06 11:08:47.255 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-06 11:08:47.341 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 11:08:47.346 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-06 11:08:47.362 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-06 11:08:48.160 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-06 11:08:48.168 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 12056 ms
|
||||
2022-05-06 11:08:49.566 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-06 11:08:50.610 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-06 11:08:54.309 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-06 11:08:54.972 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-06 11:08:57.158 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-06 11:08:57.254 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-06 11:08:57.443 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-06 11:08:58.668 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 11:08:58.749 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-06 11:08:58.770 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 26.387 seconds (JVM running for 29.882)
|
||||
2022-05-06 11:09:05.928 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-06 11:09:05.931 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-06 11:09:05.965 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 31 ms
|
||||
2022-05-06 11:11:22.419 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 14116 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-06 11:11:22.423 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-06 11:11:24.227 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-06 11:11:24.228 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-06 11:11:24.315 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 24ms. Found 0 repository interfaces.
|
||||
2022-05-06 11:11:24.877 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-06 11:11:25.223 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-06 11:11:25.229 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 11:11:25.230 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-06 11:11:25.230 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-06 11:11:25.362 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-06 11:11:25.363 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 2671 ms
|
||||
2022-05-06 11:11:25.631 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-06 11:11:25.828 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-06 11:11:27.023 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-06 11:11:27.268 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-06 11:11:27.873 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-06 11:11:27.882 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-06 11:11:27.926 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-06 11:11:28.213 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 11:11:28.233 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-06 11:11:28.235 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 7.039 seconds (JVM running for 8.971)
|
||||
2022-05-06 11:11:32.024 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-06 11:11:32.026 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-06 11:11:32.033 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 5 ms
|
||||
2022-05-06 11:14:30.219 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 11988 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-06 11:14:30.235 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-06 11:14:32.096 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-06 11:14:32.098 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-06 11:14:32.122 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 15ms. Found 0 repository interfaces.
|
||||
2022-05-06 11:14:32.506 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-06 11:14:32.813 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-06 11:14:32.832 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 11:14:32.832 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-06 11:14:32.833 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-06 11:14:32.925 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-06 11:14:32.925 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 2594 ms
|
||||
2022-05-06 11:14:33.236 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-06 11:14:33.448 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-06 11:14:34.377 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-06 11:14:34.519 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-06 11:14:35.107 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-06 11:14:35.116 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-06 11:14:35.171 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-06 11:14:35.483 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 11:14:35.510 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-06 11:14:35.512 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 6.722 seconds (JVM running for 7.686)
|
||||
2022-05-06 11:14:40.991 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-06 11:14:40.992 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-06 11:14:41.010 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 18 ms
|
||||
2022-05-06 11:17:35.715 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 8296 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-06 11:17:35.718 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-06 11:17:37.702 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-06 11:17:37.704 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-06 11:17:37.767 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 9ms. Found 0 repository interfaces.
|
||||
2022-05-06 11:17:38.298 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-06 11:17:38.631 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-06 11:17:38.636 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 11:17:38.637 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-06 11:17:38.637 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-06 11:17:38.759 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-06 11:17:38.760 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 2849 ms
|
||||
2022-05-06 11:17:39.045 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-06 11:17:39.303 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-06 11:17:40.176 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-06 11:17:40.307 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-06 11:17:40.969 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-06 11:17:40.978 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-06 11:17:41.041 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-06 11:17:41.421 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 11:17:41.442 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-06 11:17:41.444 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 6.944 seconds (JVM running for 8.254)
|
||||
2022-05-06 11:17:48.500 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-06 11:17:48.501 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-06 11:17:48.509 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 8 ms
|
||||
2022-05-06 11:18:43.986 [main] INFO com.atguigu.eduservice.EduApplication - Starting EduApplication on SKY-20201118IYZ with PID 15180 (E:\self_example\guli_parent\service\service_edu\target\classes started by Administrator in E:\self_example\guli_parent)
|
||||
2022-05-06 11:18:43.989 [main] INFO com.atguigu.eduservice.EduApplication - The following profiles are active: dev
|
||||
2022-05-06 11:18:46.183 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
|
||||
2022-05-06 11:18:46.185 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
|
||||
2022-05-06 11:18:46.223 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 19ms. Found 0 repository interfaces.
|
||||
2022-05-06 11:18:46.792 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||
2022-05-06 11:18:47.210 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8001 (http)
|
||||
2022-05-06 11:18:47.250 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 11:18:47.251 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2022-05-06 11:18:47.251 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.27]
|
||||
2022-05-06 11:18:47.390 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2022-05-06 11:18:47.390 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3257 ms
|
||||
2022-05-06 11:18:47.787 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2022-05-06 11:18:48.020 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2022-05-06 11:18:48.934 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
|
||||
2022-05-06 11:18:49.072 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
|
||||
2022-05-06 11:18:49.781 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
|
||||
2022-05-06 11:18:49.790 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
|
||||
2022-05-06 11:18:49.849 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
|
||||
2022-05-06 11:18:50.136 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
|
||||
2022-05-06 11:18:50.176 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8001 (http) with context path ''
|
||||
2022-05-06 11:18:50.182 [main] INFO com.atguigu.eduservice.EduApplication - Started EduApplication in 7.938 seconds (JVM running for 10.394)
|
||||
2022-05-06 11:18:54.742 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2022-05-06 11:18:54.742 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2022-05-06 11:18:54.773 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 31 ms
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?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>service</artifactId>
|
||||
<groupId>com.atguigu</groupId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>service_edu</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
|
||||
<!--easyExcel工具,还需要poi依赖3.1.1版本,这里在他的父工程中已经引过了-->
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>easyexcel</artifactId>
|
||||
<version>2.1.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
package com.atguigu.eduservice;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
|
||||
@SpringBootApplication
|
||||
@ComponentScan(basePackages = {"com.atguigu"})
|
||||
public class EduApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
SpringApplication.run(EduApplication.class,args);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package com.atguigu.eduservice.config;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
|
||||
import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
|
||||
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
@MapperScan("com.atguigu.eduservice.mapper")
|
||||
public class EduConfig {
|
||||
|
||||
//插件配置逻辑删除
|
||||
@Bean
|
||||
public ISqlInjector sqlInjector() {
|
||||
return new LogicSqlInjector();
|
||||
}
|
||||
|
||||
//分页插件
|
||||
@Bean
|
||||
public PaginationInterceptor paginationInterceptor() {
|
||||
return new PaginationInterceptor();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
package com.atguigu.eduservice.controller;
|
||||
|
||||
|
||||
import com.atguigu.commonutils.R;
|
||||
import com.atguigu.eduservice.entity.EduChapter;
|
||||
import com.atguigu.eduservice.entity.chapter.ChapterVo;
|
||||
import com.atguigu.eduservice.service.EduChapterService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.web.ConditionalOnEnabledResourceChain;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 课程 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author Ding
|
||||
* @since 2022-04-25
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/eduservice/edu-chapter")
|
||||
@CrossOrigin
|
||||
public class EduChapterController {
|
||||
|
||||
@Autowired
|
||||
private EduChapterService chapterService;
|
||||
|
||||
//课程大纲列表,根据课程id进行查询
|
||||
@GetMapping("getChapterVideo/{courseId}")
|
||||
public R getChapterVideo(@PathVariable String courseId){
|
||||
|
||||
List<ChapterVo> list=chapterService.getChapterVideoByCourseId(courseId);
|
||||
|
||||
|
||||
return R.ok().data("list",list);
|
||||
|
||||
}
|
||||
|
||||
//添加章节
|
||||
@PostMapping("addChapter")
|
||||
public R addChapter(@RequestBody EduChapter chapter){
|
||||
chapterService.save(chapter);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
//根据章节id查询
|
||||
@GetMapping("getChapter/{chapterId}")
|
||||
public R getChapter(@PathVariable String chapterId){
|
||||
|
||||
EduChapter chapter = chapterService.getById(chapterId);
|
||||
|
||||
return R.ok().data("chapter",chapter);
|
||||
|
||||
}
|
||||
|
||||
//修改
|
||||
@PostMapping("updateChapter")
|
||||
public R updateChapter(@RequestBody EduChapter chapter){
|
||||
chapterService.updateById(chapter);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
//删除
|
||||
@DeleteMapping("{chapterId}")
|
||||
public R deleteChapter(@PathVariable String chapterId){
|
||||
|
||||
boolean flag=chapterService.deleteChapter(chapterId);
|
||||
if(flag){
|
||||
return R.ok();
|
||||
}else {
|
||||
return R.error();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.atguigu.eduservice.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 课程收藏 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author Ding
|
||||
* @since 2022-04-25
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/eduservice/edu-course-collect")
|
||||
public class EduCourseCollectController {
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
package com.atguigu.eduservice.controller;
|
||||
|
||||
|
||||
import com.atguigu.commonutils.R;
|
||||
import com.atguigu.eduservice.entity.EduCourse;
|
||||
import com.atguigu.eduservice.entity.vo.CourseInfoVo;
|
||||
import com.atguigu.eduservice.entity.vo.CoursePublishVo;
|
||||
import com.atguigu.eduservice.entity.vo.CourseQuery;
|
||||
import com.atguigu.eduservice.service.EduCourseService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.logging.log4j.util.Strings;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 课程 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author Ding
|
||||
* @since 2022-04-25
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/eduservice/edu-course")
|
||||
@CrossOrigin
|
||||
public class EduCourseController {
|
||||
|
||||
@Autowired
|
||||
private EduCourseService courseService;
|
||||
|
||||
//课程列表 TODO
|
||||
//完善条件查询;带分页功能
|
||||
@PostMapping("pageCourseCondition/{current}/{limit}")
|
||||
public R pageCourseCondition(@PathVariable int current,@PathVariable int limit,@RequestBody(required = false) CourseQuery courseQuery){
|
||||
|
||||
Page<EduCourse> page=new Page<>(current,limit);
|
||||
QueryWrapper<EduCourse> wrapper=new QueryWrapper<>();
|
||||
|
||||
String title = courseQuery.getTitle();
|
||||
String status = courseQuery.getStatus();
|
||||
|
||||
if(!Strings.isEmpty(title)){
|
||||
wrapper.like("title",title);
|
||||
}
|
||||
|
||||
if(!Strings.isEmpty(status)){
|
||||
wrapper.eq("status",status);
|
||||
}
|
||||
|
||||
courseService.page(page,wrapper);
|
||||
long total = page.getTotal();
|
||||
List<EduCourse> records = page.getRecords();
|
||||
|
||||
return R.ok().data("total",total).data("records",records);
|
||||
}
|
||||
|
||||
|
||||
//添加客户才能基本信息的方法
|
||||
@PostMapping("addCourseInfo")
|
||||
public R addCourseInfo(@RequestBody CourseInfoVo courseInfoVo){
|
||||
|
||||
//返回添加之后课程id,为了后面添加大纲使用
|
||||
String cid=courseService.saveCourseInfo(courseInfoVo);
|
||||
|
||||
|
||||
return R.ok().data("courseId",cid);
|
||||
}
|
||||
|
||||
//根据课程id查询课程的基本信息
|
||||
@GetMapping("getCourseInfo/{courseId}")
|
||||
public R getCourseIndo(@PathVariable String courseId){
|
||||
CourseInfoVo courseInfoVo=courseService.getCourseInfo(courseId);
|
||||
|
||||
return R.ok().data("courseInfoVo",courseInfoVo);
|
||||
}
|
||||
|
||||
//修改课程信息
|
||||
@PostMapping("updateCourseInfo")
|
||||
public R updateCourseInfo(@RequestBody CourseInfoVo courseInfoVo){
|
||||
courseService.updateCourseInfo(courseInfoVo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
//根据课程id查询课程确认信息
|
||||
@GetMapping("getPublishCourseInfo/{courseId}")
|
||||
public R getPublishCourseInfo(@PathVariable String courseId){
|
||||
CoursePublishVo coursePublishVo=courseService.publishCourseInfo(courseId);
|
||||
|
||||
return R.ok().data("coursePublishVo",coursePublishVo);
|
||||
}
|
||||
|
||||
//课程的最终发布
|
||||
//修改课程状态
|
||||
@PostMapping("publishCourse/{courseId}")
|
||||
public R publishCourse(@PathVariable String courseId){
|
||||
EduCourse eduCourse=new EduCourse();
|
||||
eduCourse.setId(courseId);
|
||||
eduCourse.setStatus("Normal"); //设置课程为发布状态
|
||||
courseService.updateById(eduCourse);
|
||||
|
||||
return R.ok();
|
||||
|
||||
}
|
||||
|
||||
//删除课程信息
|
||||
@DeleteMapping("{courseId}")
|
||||
public R deleteCourseById(@PathVariable String courseId){
|
||||
|
||||
courseService.removeCourse(courseId);
|
||||
|
||||
|
||||
return R.ok();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package com.atguigu.eduservice.controller;
|
||||
|
||||
|
||||
import com.atguigu.commonutils.R;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/eduservice/user")
|
||||
@CrossOrigin //解决跨域问题
|
||||
public class EduLoginController {
|
||||
|
||||
|
||||
//Login
|
||||
@PostMapping("login")
|
||||
public R login(){
|
||||
|
||||
return R.ok().data("token","admin");
|
||||
}
|
||||
|
||||
|
||||
//info
|
||||
@GetMapping("info")
|
||||
public R info(){
|
||||
|
||||
return R.ok().data("roles","[admin]").data("name","admin").data("avatar","https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
package com.atguigu.eduservice.controller;
|
||||
|
||||
|
||||
import com.atguigu.commonutils.R;
|
||||
import com.atguigu.eduservice.entity.subject.OneSubject;
|
||||
import com.atguigu.eduservice.service.EduSubjectService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.support.MultipartFilter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 课程科目 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author Ding
|
||||
* @since 2022-04-24
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/eduservice/edu-subject")
|
||||
@CrossOrigin
|
||||
public class EduSubjectController {
|
||||
|
||||
@Autowired
|
||||
private EduSubjectService subjectService;
|
||||
|
||||
//添加课程分类
|
||||
//获取上传文件,把文件内容读取出来
|
||||
@PostMapping("addSubject")
|
||||
public R addSubject(MultipartFile file){
|
||||
|
||||
//获取上传过来的excel文件
|
||||
//TODO 为了能在监听器中获取到service对象,这里直接将service传入进去
|
||||
subjectService.saveSubject(file,subjectService);
|
||||
|
||||
|
||||
return R.ok();
|
||||
|
||||
}
|
||||
|
||||
//课程分类的列表功能(使用树形结构实现)
|
||||
@GetMapping("getAllSubject")
|
||||
public R getAllSubject(){
|
||||
//list集合中的泛型是一级分类
|
||||
List<OneSubject> list =subjectService.getAllOneTwoSubject();
|
||||
|
||||
|
||||
return R.ok().data("list",list);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,192 @@
|
|||
package com.atguigu.eduservice.controller;
|
||||
|
||||
|
||||
import com.atguigu.commonutils.R;
|
||||
import com.atguigu.eduservice.entity.EduTeacher;
|
||||
import com.atguigu.eduservice.entity.vo.TeacherQuery;
|
||||
import com.atguigu.eduservice.service.EduTeacherService;
|
||||
import com.atguigu.servicebase.exceptionhandler.GuliException;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.apache.el.lang.ELArithmetic;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 讲师 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author Ding
|
||||
* @since 2022-04-21
|
||||
*/
|
||||
@Api(description = "讲师管理")
|
||||
@RestController
|
||||
@RequestMapping("/eduservice/edu-teacher")
|
||||
@CrossOrigin
|
||||
public class EduTeacherController {
|
||||
|
||||
//把service注入
|
||||
@Autowired
|
||||
private EduTeacherService teacherService;
|
||||
|
||||
|
||||
//查询讲师表中的所有数据
|
||||
@ApiOperation(value = "所有讲师列表")
|
||||
@GetMapping("findAll")
|
||||
public R findAllTeacher(){
|
||||
//调用service的方法实现查询所有的操作
|
||||
List<EduTeacher> list = teacherService.list(null);
|
||||
|
||||
// //自定义异常的手动抛出
|
||||
// try {
|
||||
// int k=1/0;
|
||||
// }catch (Exception e){
|
||||
// //执行自定义异常
|
||||
// throw new GuliException(20001,"执行了自定义异常处理...");
|
||||
// }
|
||||
|
||||
|
||||
return R.ok().data("items",list);
|
||||
}
|
||||
|
||||
//逻辑删除讲师的方法
|
||||
@DeleteMapping("{id}")
|
||||
@ApiOperation(value = "逻辑删除讲师")
|
||||
public R removeTeacher(@ApiParam(name = "id" ,value = "讲师ID",required = true) @PathVariable("id") String id){
|
||||
|
||||
boolean result = teacherService.removeById(id);
|
||||
|
||||
if(result){
|
||||
return R.ok();
|
||||
}else {
|
||||
return R.error();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询讲师的方法
|
||||
* @param current 当前页
|
||||
* @param limit 每页记录数
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("pageTeacher/{current}/{limit}")
|
||||
@ApiOperation(value = "讲师分页查询")
|
||||
public R pageListTeacher(@PathVariable("current") long current,@PathVariable("limit") long limit){
|
||||
|
||||
//创建page对象
|
||||
Page<EduTeacher> teacherPage = new Page<EduTeacher>(current,limit);
|
||||
|
||||
//调用方法显示分页
|
||||
//调用方法的时候,底层封装,把分页所有的数据封装到pageTeacher对象里面
|
||||
teacherService.page(teacherPage,null);
|
||||
long total = teacherPage.getTotal(); //总记录数
|
||||
List<EduTeacher> records = teacherPage.getRecords(); //数据list集合
|
||||
|
||||
// Map map =new HashMap();
|
||||
// map.put("total",total);
|
||||
// map.put("rows",records);
|
||||
// return R.ok().data(map);
|
||||
|
||||
return R.ok().data("total",total).data("rows",records);
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件查询带分页
|
||||
* RequestBody :使用json传递数据,把json数据封装到对应对象里面(需要使用postMappering的方式)
|
||||
*/
|
||||
|
||||
// @GetMapping("pageTeacherCondition/{current}/{limit}")
|
||||
@PostMapping("pageTeacherCondition/{current}/{limit}")
|
||||
public R pageTeacherCCondition(@PathVariable("current") long current, @PathVariable("limit") long limit,@RequestBody(required = false) TeacherQuery teacherQuery){
|
||||
|
||||
//创建一个page对象
|
||||
Page<EduTeacher> teacherPage = new Page<>(current,limit);
|
||||
//调用方法实现条件查询分页
|
||||
//构建条件
|
||||
QueryWrapper<EduTeacher> wrapper = new QueryWrapper<>();
|
||||
|
||||
//判断条件是否为空g,如果不为空拼接条件
|
||||
String name = teacherQuery.getName();
|
||||
Integer level = teacherQuery.getLevel();
|
||||
String begin = teacherQuery.getBegin();
|
||||
String end = teacherQuery.getEnd();
|
||||
|
||||
if(!StringUtils.isEmpty(name)){
|
||||
//构建条件
|
||||
wrapper.like("name",name);
|
||||
}
|
||||
|
||||
if(!StringUtils.isEmpty(level)){
|
||||
wrapper.eq("level",level);
|
||||
}
|
||||
|
||||
if(!StringUtils.isEmpty(begin)){
|
||||
wrapper.ge("gmt_create",begin);
|
||||
}
|
||||
|
||||
if(!StringUtils.isEmpty(end)){
|
||||
wrapper.le("gmt_create",end);
|
||||
}
|
||||
//排序
|
||||
wrapper.orderByDesc("gmt_create");
|
||||
|
||||
teacherService.page(teacherPage,wrapper);
|
||||
|
||||
long total = teacherPage.getTotal(); //总记录数
|
||||
List<EduTeacher> records = teacherPage.getRecords(); //数据list集合
|
||||
|
||||
|
||||
return R.ok().data("total",total).data("rows",records);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
//添加讲师接口的方法
|
||||
@PostMapping("addTeacher")
|
||||
public R addTeacher(@RequestBody EduTeacher eduTeacher){
|
||||
|
||||
boolean save = teacherService.save(eduTeacher);
|
||||
if(save) {
|
||||
return R.ok();
|
||||
}else {
|
||||
return R.error();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//根据讲师id进行查询
|
||||
@GetMapping("getTeacher/{id}")
|
||||
public R getTeacher(@PathVariable("id") String id){
|
||||
EduTeacher eduTeacher = teacherService.getById(id);
|
||||
|
||||
return R.ok().data("teacher",eduTeacher);
|
||||
}
|
||||
|
||||
//讲师修改功能(Rest风格的一般使用put,这里为了使用requestbody使用了post提交)
|
||||
@PostMapping("updateTeacher")
|
||||
public R updateTeacher(@RequestBody EduTeacher eduTeacher){
|
||||
|
||||
boolean flag = teacherService.updateById(eduTeacher);
|
||||
if(flag){
|
||||
return R.ok();
|
||||
}else{
|
||||
return R.error();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
package com.atguigu.eduservice.controller;
|
||||
|
||||
|
||||
import com.atguigu.commonutils.R;
|
||||
import com.atguigu.eduservice.entity.EduChapter;
|
||||
import com.atguigu.eduservice.entity.EduVideo;
|
||||
import com.atguigu.eduservice.service.EduVideoService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 课程视频 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author Ding
|
||||
* @since 2022-04-25
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/eduservice/edu-video")
|
||||
@CrossOrigin
|
||||
public class EduVideoController {
|
||||
|
||||
@Autowired
|
||||
private EduVideoService videoService;
|
||||
|
||||
|
||||
@PostMapping("addVideo")
|
||||
public R addVideo(@RequestBody EduVideo eduVideo){
|
||||
|
||||
videoService.save(eduVideo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
//删除小结
|
||||
//todo 后面这个方法需要完善:删除小结的时候,同时把里面的视频也删除
|
||||
@DeleteMapping("{videoId}")
|
||||
public R deleteVideo(@PathVariable String videoId){
|
||||
|
||||
videoService.removeById(videoId);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//修改小结
|
||||
@PostMapping("updateVideo")
|
||||
public R updateVideo(@RequestBody EduVideo eduVideo){
|
||||
|
||||
videoService.updateById(eduVideo);
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
//根据章节id查询
|
||||
@GetMapping("getVideo/{videoId}")
|
||||
public R getVideo(@PathVariable String videoId){
|
||||
|
||||
EduVideo video = videoService.getById(videoId);
|
||||
return R.ok().data("video",video);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
package com.atguigu.eduservice.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 课程
|
||||
* </p>
|
||||
*
|
||||
* @author Ding
|
||||
* @since 2022-04-25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value="EduChapter对象", description="课程")
|
||||
public class EduChapter implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "章节ID")
|
||||
@TableId(value = "id", type = IdType.ID_WORKER_STR)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "课程ID")
|
||||
private String courseId;
|
||||
|
||||
@ApiModelProperty(value = "章节名称")
|
||||
private String title;
|
||||
|
||||
@ApiModelProperty(value = "显示排序")
|
||||
private Integer sort;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date gmtCreate;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Date gmtModified;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
package com.atguigu.eduservice.entity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 课程
|
||||
* </p>
|
||||
*
|
||||
* @author Ding
|
||||
* @since 2022-04-25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value="EduCourse对象", description="课程")
|
||||
public class EduCourse implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "课程ID")
|
||||
@TableId(value = "id", type = IdType.ID_WORKER_STR)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "课程讲师ID")
|
||||
private String teacherId;
|
||||
|
||||
@ApiModelProperty(value = "课程专业ID")
|
||||
private String subjectId;
|
||||
|
||||
@ApiModelProperty(value = "课程专业父级ID")
|
||||
private String subjectParentId;
|
||||
|
||||
@ApiModelProperty(value = "课程标题")
|
||||
private String title;
|
||||
|
||||
@ApiModelProperty(value = "课程销售价格,设置为0则可免费观看")
|
||||
private BigDecimal price;
|
||||
|
||||
@ApiModelProperty(value = "总课时")
|
||||
private Integer lessonNum;
|
||||
|
||||
@ApiModelProperty(value = "课程封面图片路径")
|
||||
private String cover;
|
||||
|
||||
@ApiModelProperty(value = "销售数量")
|
||||
private Long buyCount;
|
||||
|
||||
@ApiModelProperty(value = "浏览数量")
|
||||
private Long viewCount;
|
||||
|
||||
@ApiModelProperty(value = "乐观锁")
|
||||
private Long version;
|
||||
|
||||
@ApiModelProperty(value = "课程状态 Draft未发布 Normal已发布")
|
||||
private String status;
|
||||
|
||||
@ApiModelProperty(value = "逻辑删除 1(true)已删除, 0(false)未删除")
|
||||
private Integer isDeleted;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date gmtCreate;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Date gmtModified;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
package com.atguigu.eduservice.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 课程收藏
|
||||
* </p>
|
||||
*
|
||||
* @author Ding
|
||||
* @since 2022-04-25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value="EduCourseCollect对象", description="课程收藏")
|
||||
public class EduCourseCollect implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "收藏ID")
|
||||
@TableId(value = "id", type = IdType.ID_WORKER_STR)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "课程讲师ID")
|
||||
private String courseId;
|
||||
|
||||
@ApiModelProperty(value = "课程专业ID")
|
||||
private String memberId;
|
||||
|
||||
@ApiModelProperty(value = "逻辑删除 1(true)已删除, 0(false)未删除")
|
||||
private Integer isDeleted;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date gmtCreate;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Date gmtModified;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
package com.atguigu.eduservice.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 课程简介
|
||||
* </p>
|
||||
*
|
||||
* @author Ding
|
||||
* @since 2022-04-25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value="EduCourseDescription对象", description="课程简介")
|
||||
public class EduCourseDescription implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "课程ID")
|
||||
@TableId(value = "id", type = IdType.INPUT) //手动生成
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "课程简介")
|
||||
private String description;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date gmtCreate;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Date gmtModified;
|
||||
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue