Skip to content

Commit c5ef7e9

Browse files
committed
tests springdoc with OpenAPI 3.0
1 parent 12007ee commit c5ef7e9

File tree

18 files changed

+558
-14
lines changed

18 files changed

+558
-14
lines changed

book/jpashop/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ dependencies {
4949
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5'
5050

5151
compile('com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.8')
52+
compile 'mysql:mysql-connector-java'
5253

5354
compileOnly 'org.projectlombok:lombok'
5455
runtimeOnly 'com.h2database:h2'

book/jpashop/src/main/java/jpabook/jpashop/InitDb.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* - SPRING1 BOOK
2424
* - SPRING2 BOOK
2525
*/
26-
@Component
26+
//@Component
2727
@RequiredArgsConstructor
2828
public class InitDb {
2929

@@ -35,7 +35,7 @@ private void init() {
3535
initService.initDb2();
3636
}
3737

38-
@Component
38+
//@Component
3939
@Transactional
4040
@RequiredArgsConstructor
4141
static class InitService {
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,59 @@
1+
#spring:
2+
# datasource:
3+
# url: jdbc:h2:tcp://localhost/~/jpashop;MVCC=TRUE
4+
# username: sa
5+
# password:
6+
# driver-class-name: org.h2.Driver
7+
# jpa:
8+
# hibernate:
9+
# ddl-auto: create
10+
# #ddl-auto: update
11+
# properties:
12+
# hibernate:
13+
# # show_sql: true
14+
# format_sql: true
15+
# default_batch_fetch_size: 100
16+
#
17+
#logging.level:
18+
# org.hibernate.SQL: debug
19+
## org.hibernate.type: trace
20+
21+
#spring:
22+
# datasource:
23+
# url: jdbc:mysql://localhost:3306/local_db?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
24+
# username: root
25+
# password: password
26+
# driver-class-name: com.mysql.cj.jdbc.Driver
27+
# hikari:
28+
# jdbc-url: jdbc:mysql://localhost:3306/local_db?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
29+
# platform: mysql
30+
# initialization-mode: always
31+
# jpa:
32+
# database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
33+
# open-in-view: false
34+
# hibernate:
35+
# ddl-auto: create
36+
# properties:
37+
# hibernate:
38+
# format_sql: true
39+
# default_batch_fetch_size: 100
40+
141
spring:
242
datasource:
3-
url: jdbc:h2:tcp://localhost/~/jpashop;MVCC=TRUE
4-
username: sa
5-
password:
6-
driver-class-name: org.h2.Driver
43+
url: jdbc:mysql://localhost:3306/localdb?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
44+
username: root
45+
password: root
46+
driver-class-name: com.mysql.cj.jdbc.Driver
47+
hikari:
48+
jdbc-url: jdbc:mysql://localhost:3306/localdb?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
49+
platform: mysql
50+
initialization-mode: always
751
jpa:
52+
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
53+
open-in-view: false
854
hibernate:
9-
ddl-auto: create
10-
#ddl-auto: update
55+
ddl-auto: create-drop
1156
properties:
1257
hibernate:
13-
# show_sql: true
1458
format_sql: true
15-
default_batch_fetch_size: 100
16-
17-
logging.level:
18-
org.hibernate.SQL: debug
19-
# org.hibernate.type: trace
59+
default_batch_fetch_size: 100

springboot-actuator-demo/src/main/resources/application.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ server:
44

55
# Spring data jpa
66
spring:
7+
cache:
8+
type: redis
9+
redis:
10+
host: localhost
11+
port: 6379
712
datasource:
813
url: jdbc:mysql://localhost:23306/testdb?useSSL=false
914
username: root

springboot-openapi3-demo/.gitignore

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
HELP.md
2+
.gradle
3+
build/
4+
!gradle/wrapper/gradle-wrapper.jar
5+
!**/src/main/**/build/
6+
!**/src/test/**/build/
7+
8+
### STS ###
9+
.apt_generated
10+
.classpath
11+
.factorypath
12+
.project
13+
.settings
14+
.springBeans
15+
.sts4-cache
16+
bin/
17+
!**/src/main/**/bin/
18+
!**/src/test/**/bin/
19+
20+
### IntelliJ IDEA ###
21+
.idea
22+
*.iws
23+
*.iml
24+
*.ipr
25+
out/
26+
!**/src/main/**/out/
27+
!**/src/test/**/out/
28+
29+
### NetBeans ###
30+
/nbproject/private/
31+
/nbbuild/
32+
/dist/
33+
/nbdist/
34+
/.nb-gradle/
35+
36+
### VS Code ###
37+
.vscode/

springboot-openapi3-demo/README.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Demo Project for OpenAPI 3.0 with Spring Boot :)
2+
3+
- official: https://springdoc.org/
4+
- See spec.json: http://localhost:8080/api-docs
5+
- See Swagger UI: http://localhost:8080/swagger-ui/index.html
6+
- Download spec.yaml: http://localhost:8080/api-docs.yaml

springboot-openapi3-demo/build.gradle

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
plugins {
2+
id 'org.springframework.boot' version '2.4.1'
3+
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
4+
id 'java'
5+
}
6+
7+
group = 'me.zaccoding'
8+
version = '0.0.1-SNAPSHOT'
9+
sourceCompatibility = '1.8'
10+
11+
configurations {
12+
compileOnly {
13+
extendsFrom annotationProcessor
14+
}
15+
}
16+
17+
repositories {
18+
mavenCentral()
19+
}
20+
21+
dependencies {
22+
implementation 'org.springframework.boot:spring-boot-starter-web'
23+
implementation 'org.springframework.boot:spring-boot-starter-validation'
24+
25+
// https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-ui
26+
compile 'org.springdoc:springdoc-openapi-ui:1.5.2'
27+
28+
compileOnly 'org.projectlombok:lombok'
29+
annotationProcessor 'org.projectlombok:lombok'
30+
testImplementation 'org.springframework.boot:spring-boot-starter-test'
31+
testImplementation 'org.springframework.security:spring-security-test'
32+
}
33+
34+
test {
35+
useJUnitPlatform()
36+
}
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
4+
zipStoreBase=GRADLE_USER_HOME
5+
zipStorePath=wrapper/dists

springboot-openapi3-demo/gradlew

+184
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
#!/usr/bin/env sh
2+
3+
#
4+
# Copyright 2015 the original author or authors.
5+
#
6+
# Licensed under the Apache License, Version 2.0 (the "License");
7+
# you may not use this file except in compliance with the License.
8+
# You may obtain a copy of the License at
9+
#
10+
# https://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
#
18+
19+
##############################################################################
20+
##
21+
## Gradle start up script for UN*X
22+
##
23+
##############################################################################
24+
25+
# Attempt to set APP_HOME
26+
# Resolve links: $0 may be a link
27+
PRG="$0"
28+
# Need this for relative symlinks.
29+
while [ -h "$PRG" ]; do
30+
ls=$(ls -ld "$PRG")
31+
link=$(expr "$ls" : '.*-> \(.*\)$')
32+
if expr "$link" : '/.*' >/dev/null; then
33+
PRG="$link"
34+
else
35+
PRG=$(dirname "$PRG")"/$link"
36+
fi
37+
done
38+
SAVED="$(pwd)"
39+
cd "$(dirname \"$PRG\")/" >/dev/null
40+
APP_HOME="$(pwd -P)"
41+
cd "$SAVED" >/dev/null
42+
43+
APP_NAME="Gradle"
44+
APP_BASE_NAME=$(basename "$0")
45+
46+
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47+
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48+
49+
# Use the maximum available, or set MAX_FD != -1 to use that value.
50+
MAX_FD="maximum"
51+
52+
warn() {
53+
echo "$*"
54+
}
55+
56+
die() {
57+
echo
58+
echo "$*"
59+
echo
60+
exit 1
61+
}
62+
63+
# OS specific support (must be 'true' or 'false').
64+
cygwin=false
65+
msys=false
66+
darwin=false
67+
nonstop=false
68+
case "$(uname)" in
69+
CYGWIN*)
70+
cygwin=true
71+
;;
72+
Darwin*)
73+
darwin=true
74+
;;
75+
MINGW*)
76+
msys=true
77+
;;
78+
NONSTOP*)
79+
nonstop=true
80+
;;
81+
esac
82+
83+
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84+
85+
# Determine the Java command to use to start the JVM.
86+
if [ -n "$JAVA_HOME" ]; then
87+
if [ -x "$JAVA_HOME/jre/sh/java" ]; then
88+
# IBM's JDK on AIX uses strange locations for the executables
89+
JAVACMD="$JAVA_HOME/jre/sh/java"
90+
else
91+
JAVACMD="$JAVA_HOME/bin/java"
92+
fi
93+
if [ ! -x "$JAVACMD" ]; then
94+
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
95+
96+
Please set the JAVA_HOME variable in your environment to match the
97+
location of your Java installation."
98+
fi
99+
else
100+
JAVACMD="java"
101+
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
102+
103+
Please set the JAVA_HOME variable in your environment to match the
104+
location of your Java installation."
105+
fi
106+
107+
# Increase the maximum file descriptors if we can.
108+
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ]; then
109+
MAX_FD_LIMIT=$(ulimit -H -n)
110+
if [ $? -eq 0 ]; then
111+
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
112+
MAX_FD="$MAX_FD_LIMIT"
113+
fi
114+
ulimit -n $MAX_FD
115+
if [ $? -ne 0 ]; then
116+
warn "Could not set maximum file descriptor limit: $MAX_FD"
117+
fi
118+
else
119+
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
120+
fi
121+
fi
122+
123+
# For Darwin, add options to specify how the application appears in the dock
124+
if $darwin; then
125+
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
126+
fi
127+
128+
# For Cygwin or MSYS, switch paths to Windows format before running java
129+
if [ "$cygwin" = "true" -o "$msys" = "true" ]; then
130+
APP_HOME=$(cygpath --path --mixed "$APP_HOME")
131+
CLASSPATH=$(cygpath --path --mixed "$CLASSPATH")
132+
133+
JAVACMD=$(cygpath --unix "$JAVACMD")
134+
135+
# We build the pattern for arguments to be converted via cygpath
136+
ROOTDIRSRAW=$(find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null)
137+
SEP=""
138+
for dir in $ROOTDIRSRAW; do
139+
ROOTDIRS="$ROOTDIRS$SEP$dir"
140+
SEP="|"
141+
done
142+
OURCYGPATTERN="(^($ROOTDIRS))"
143+
# Add a user-defined pattern to the cygpath arguments
144+
if [ "$GRADLE_CYGPATTERN" != "" ]; then
145+
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
146+
fi
147+
# Now convert the arguments - kludge to limit ourselves to /bin/sh
148+
i=0
149+
for arg in "$@"; do
150+
CHECK=$(echo "$arg" | egrep -c "$OURCYGPATTERN" -)
151+
CHECK2=$(echo "$arg" | egrep -c "^-") ### Determine if an option
152+
153+
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ]; then ### Added a condition
154+
eval $(echo args$i)=$(cygpath --path --ignore --mixed "$arg")
155+
else
156+
eval $(echo args$i)="\"$arg\""
157+
fi
158+
i=$(expr $i + 1)
159+
done
160+
case $i in
161+
0) set -- ;;
162+
1) set -- "$args0" ;;
163+
2) set -- "$args0" "$args1" ;;
164+
3) set -- "$args0" "$args1" "$args2" ;;
165+
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
166+
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
167+
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
168+
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
169+
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
170+
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
171+
esac
172+
fi
173+
174+
# Escape application args
175+
save() {
176+
for i; do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/"; done
177+
echo " "
178+
}
179+
APP_ARGS=$(save "$@")
180+
181+
# Collect all arguments for the java command, following the shell quoting and substitution rules
182+
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
183+
184+
exec "$JAVACMD" "$@"

0 commit comments

Comments
 (0)