Skip to content

Commit d17e841

Browse files
Initial project add
0 parents  commit d17e841

File tree

11 files changed

+1347
-0
lines changed

11 files changed

+1347
-0
lines changed

.gitignore

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

.mvn/wrapper/maven-wrapper.jar

57.4 KB
Binary file not shown.

.mvn/wrapper/maven-wrapper.properties

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip
2+
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar

LICENSE

+674
Large diffs are not rendered by default.

README.md

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Spring 6 REST MVC
2+
This repository contains code examples for my course Spring Framework 6: Beginner to Guru.
3+
4+
## All Spring Framework Guru Courses
5+
### Spring Framework 6
6+
* [Hibernate and Spring Data JPA: Beginner to Guru](https://www.udemy.com/course/hibernate-and-spring-data-jpa-beginner-to-guru/?referralCode=251C4C865302C7B1BB8F)
7+
### Spring Framework 5
8+
* [Spring Framework 5: Beginner to Guru](https://www.udemy.com/testing-spring-boot-beginner-to-guru/?couponCode=GITHUB_REPO) - Get the most modern and comprehensive course available for the Spring Framework! Join over 17,200 over Guru's in an Slack community exclusive to this course! More than 5,700 students have given this 53 hour course a 5 star review!
9+
* [Spring Boot Microservices with Spring Cloud Beginner to Guru](https://www.udemy.com/course/spring-boot-microservices-with-spring-cloud-beginner-to-guru/?referralCode=6142D427AE53031FEF38) - Master Microservice Architectures Using Spring Boot 2 and Cloud Based Deployments with Spring Cloud and Docker
10+
* [Reactive Programming with Spring Framework 5](https://www.udemy.com/reactive-programming-with-spring-framework-5/?couponCode=GITHUB_REPO_SF5B2G) - Keep your skills razor sharp and take a deep dive into Reactive Programming!
11+
* [Testing Spring Boot: Beginner to Guru](https://www.udemy.com/testing-spring-boot-beginner-to-guru/?couponCode=GITHUB_REPO_SF5B2G) - ** Best Selling Course** Become an expert in testing Java and Spring Applications with JUnit 5, Mockito and much more!
12+
* [Spring Security Core: Beginner to Guru](https://www.udemy.com/course/spring-security-core-beginner-to-guru/?referralCode=306F288EB78688C0F3BC)
13+
14+
### SQL
15+
* [SQL Beginner to Guru: MySQL Edition](https://www.udemy.com/sql-beginner-to-guru-mysql-edition/?couponCode=GITHUB_REPO_SF5B2G) - SQL is a fundamental must have skill, which employers are looking for. Learn to master SQL on MySQL, the worlds most popular database!
16+
17+
### DevOps
18+
* [Apache Maven: Beginner to Guru](https://www.udemy.com/apache-maven-beginner-to-guru/?couponCode=GITHUB_REPO_SF5B2G) - **Best Selling Course** Take the mystery out of Apache Maven. Learn how to use Maven to build your Java and Spring Boot projects!
19+
* [OpenAPI: Beginner to Guru](https://www.udemy.com/course/openapi-beginner-to-guru/?referralCode=0E7F511C749013CA6AAD) - Master OpenAPI (formerly Swagger) to Create Specifications for Your APIs
20+
* [Docker for Java Developers](https://www.udemy.com/docker-for-java-developers/?couponCode=GITHUB_REPO_SF5B2G) - Best Selling Course on Udemy! Learn how you can supercharge your development by leveraging Docker. Collaborate with other students in a Slack community exclusive to the course!
21+
* [Spring Framework DevOps on AWS](https://www.udemy.com/spring-core-devops-on-aws/?couponCode=GITHUB_REPO_SF5B2G) - Learn how to build and deploy Spring applications on Amazon AWS!
22+
* [Ready for Production with Spring Boot Actuator](https://www.udemy.com/ready-for-production-with-spring-boot-actuator/?couponCode=GITHUB_REPO_SF5B2G) - Learn how to leverage Spring Boot Actuator to monitor your applications running in production.
23+
24+
### Web Development with Spring Framework
25+
* [Mastering Thymeleaf with Spring Boot](https://www.udemy.com/mastering-thymeleaf-with-spring/?couponCode=GITHUB_REPO_SF5B2G) - Once you learn Thymeleaf, you'll never want to go back to using JSPs for web development!
26+
27+
28+
## Connect with Spring Framework Guru
29+
* Spring Framework Guru [Blog](https://springframework.guru/)
30+
* Subscribe to Spring Framework Guru on [YouTube](https://www.youtube.com/channel/UCrXb8NaMPQCQkT8yMP_hSkw)
31+
* Like Spring Framework Guru on [Facebook](https://www.facebook.com/springframeworkguru/)
32+
* Follow Spring Framework Guru on [Twitter](https://twitter.com/spring_guru)
33+
* Connect with John Thompson on [LinkedIn](http://www.linkedin.com/in/springguru)

mvnw

+316
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,316 @@
1+
#!/bin/sh
2+
# ----------------------------------------------------------------------------
3+
# Licensed to the Apache Software Foundation (ASF) under one
4+
# or more contributor license agreements. See the NOTICE file
5+
# distributed with this work for additional information
6+
# regarding copyright ownership. The ASF licenses this file
7+
# to you under the Apache License, Version 2.0 (the
8+
# "License"); you may not use this file except in compliance
9+
# with the License. You may obtain a copy of the License at
10+
#
11+
# https://www.apache.org/licenses/LICENSE-2.0
12+
#
13+
# Unless required by applicable law or agreed to in writing,
14+
# software distributed under the License is distributed on an
15+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+
# KIND, either express or implied. See the License for the
17+
# specific language governing permissions and limitations
18+
# under the License.
19+
# ----------------------------------------------------------------------------
20+
21+
# ----------------------------------------------------------------------------
22+
# Maven Start Up Batch script
23+
#
24+
# Required ENV vars:
25+
# ------------------
26+
# JAVA_HOME - location of a JDK home dir
27+
#
28+
# Optional ENV vars
29+
# -----------------
30+
# M2_HOME - location of maven2's installed home dir
31+
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
32+
# e.g. to debug Maven itself, use
33+
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34+
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35+
# ----------------------------------------------------------------------------
36+
37+
if [ -z "$MAVEN_SKIP_RC" ] ; then
38+
39+
if [ -f /usr/local/etc/mavenrc ] ; then
40+
. /usr/local/etc/mavenrc
41+
fi
42+
43+
if [ -f /etc/mavenrc ] ; then
44+
. /etc/mavenrc
45+
fi
46+
47+
if [ -f "$HOME/.mavenrc" ] ; then
48+
. "$HOME/.mavenrc"
49+
fi
50+
51+
fi
52+
53+
# OS specific support. $var _must_ be set to either true or false.
54+
cygwin=false;
55+
darwin=false;
56+
mingw=false
57+
case "`uname`" in
58+
CYGWIN*) cygwin=true ;;
59+
MINGW*) mingw=true;;
60+
Darwin*) darwin=true
61+
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
62+
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
63+
if [ -z "$JAVA_HOME" ]; then
64+
if [ -x "/usr/libexec/java_home" ]; then
65+
export JAVA_HOME="`/usr/libexec/java_home`"
66+
else
67+
export JAVA_HOME="/Library/Java/Home"
68+
fi
69+
fi
70+
;;
71+
esac
72+
73+
if [ -z "$JAVA_HOME" ] ; then
74+
if [ -r /etc/gentoo-release ] ; then
75+
JAVA_HOME=`java-config --jre-home`
76+
fi
77+
fi
78+
79+
if [ -z "$M2_HOME" ] ; then
80+
## resolve links - $0 may be a link to maven's home
81+
PRG="$0"
82+
83+
# need this for relative symlinks
84+
while [ -h "$PRG" ] ; do
85+
ls=`ls -ld "$PRG"`
86+
link=`expr "$ls" : '.*-> \(.*\)$'`
87+
if expr "$link" : '/.*' > /dev/null; then
88+
PRG="$link"
89+
else
90+
PRG="`dirname "$PRG"`/$link"
91+
fi
92+
done
93+
94+
saveddir=`pwd`
95+
96+
M2_HOME=`dirname "$PRG"`/..
97+
98+
# make it fully qualified
99+
M2_HOME=`cd "$M2_HOME" && pwd`
100+
101+
cd "$saveddir"
102+
# echo Using m2 at $M2_HOME
103+
fi
104+
105+
# For Cygwin, ensure paths are in UNIX format before anything is touched
106+
if $cygwin ; then
107+
[ -n "$M2_HOME" ] &&
108+
M2_HOME=`cygpath --unix "$M2_HOME"`
109+
[ -n "$JAVA_HOME" ] &&
110+
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
111+
[ -n "$CLASSPATH" ] &&
112+
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
113+
fi
114+
115+
# For Mingw, ensure paths are in UNIX format before anything is touched
116+
if $mingw ; then
117+
[ -n "$M2_HOME" ] &&
118+
M2_HOME="`(cd "$M2_HOME"; pwd)`"
119+
[ -n "$JAVA_HOME" ] &&
120+
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
121+
fi
122+
123+
if [ -z "$JAVA_HOME" ]; then
124+
javaExecutable="`which javac`"
125+
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
126+
# readlink(1) is not available as standard on Solaris 10.
127+
readLink=`which readlink`
128+
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
129+
if $darwin ; then
130+
javaHome="`dirname \"$javaExecutable\"`"
131+
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
132+
else
133+
javaExecutable="`readlink -f \"$javaExecutable\"`"
134+
fi
135+
javaHome="`dirname \"$javaExecutable\"`"
136+
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
137+
JAVA_HOME="$javaHome"
138+
export JAVA_HOME
139+
fi
140+
fi
141+
fi
142+
143+
if [ -z "$JAVACMD" ] ; then
144+
if [ -n "$JAVA_HOME" ] ; then
145+
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
146+
# IBM's JDK on AIX uses strange locations for the executables
147+
JAVACMD="$JAVA_HOME/jre/sh/java"
148+
else
149+
JAVACMD="$JAVA_HOME/bin/java"
150+
fi
151+
else
152+
JAVACMD="`\\unset -f command; \\command -v java`"
153+
fi
154+
fi
155+
156+
if [ ! -x "$JAVACMD" ] ; then
157+
echo "Error: JAVA_HOME is not defined correctly." >&2
158+
echo " We cannot execute $JAVACMD" >&2
159+
exit 1
160+
fi
161+
162+
if [ -z "$JAVA_HOME" ] ; then
163+
echo "Warning: JAVA_HOME environment variable is not set."
164+
fi
165+
166+
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
167+
168+
# traverses directory structure from process work directory to filesystem root
169+
# first directory with .mvn subdirectory is considered project base directory
170+
find_maven_basedir() {
171+
172+
if [ -z "$1" ]
173+
then
174+
echo "Path not specified to find_maven_basedir"
175+
return 1
176+
fi
177+
178+
basedir="$1"
179+
wdir="$1"
180+
while [ "$wdir" != '/' ] ; do
181+
if [ -d "$wdir"/.mvn ] ; then
182+
basedir=$wdir
183+
break
184+
fi
185+
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
186+
if [ -d "${wdir}" ]; then
187+
wdir=`cd "$wdir/.."; pwd`
188+
fi
189+
# end of workaround
190+
done
191+
echo "${basedir}"
192+
}
193+
194+
# concatenates all lines of a file
195+
concat_lines() {
196+
if [ -f "$1" ]; then
197+
echo "$(tr -s '\n' ' ' < "$1")"
198+
fi
199+
}
200+
201+
BASE_DIR=`find_maven_basedir "$(pwd)"`
202+
if [ -z "$BASE_DIR" ]; then
203+
exit 1;
204+
fi
205+
206+
##########################################################################################
207+
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
208+
# This allows using the maven wrapper in projects that prohibit checking in binary data.
209+
##########################################################################################
210+
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
211+
if [ "$MVNW_VERBOSE" = true ]; then
212+
echo "Found .mvn/wrapper/maven-wrapper.jar"
213+
fi
214+
else
215+
if [ "$MVNW_VERBOSE" = true ]; then
216+
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
217+
fi
218+
if [ -n "$MVNW_REPOURL" ]; then
219+
jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
220+
else
221+
jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
222+
fi
223+
while IFS="=" read key value; do
224+
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
225+
esac
226+
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
227+
if [ "$MVNW_VERBOSE" = true ]; then
228+
echo "Downloading from: $jarUrl"
229+
fi
230+
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
231+
if $cygwin; then
232+
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
233+
fi
234+
235+
if command -v wget > /dev/null; then
236+
if [ "$MVNW_VERBOSE" = true ]; then
237+
echo "Found wget ... using wget"
238+
fi
239+
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
240+
wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
241+
else
242+
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
243+
fi
244+
elif command -v curl > /dev/null; then
245+
if [ "$MVNW_VERBOSE" = true ]; then
246+
echo "Found curl ... using curl"
247+
fi
248+
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
249+
curl -o "$wrapperJarPath" "$jarUrl" -f
250+
else
251+
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
252+
fi
253+
254+
else
255+
if [ "$MVNW_VERBOSE" = true ]; then
256+
echo "Falling back to using Java to download"
257+
fi
258+
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
259+
# For Cygwin, switch paths to Windows format before running javac
260+
if $cygwin; then
261+
javaClass=`cygpath --path --windows "$javaClass"`
262+
fi
263+
if [ -e "$javaClass" ]; then
264+
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
265+
if [ "$MVNW_VERBOSE" = true ]; then
266+
echo " - Compiling MavenWrapperDownloader.java ..."
267+
fi
268+
# Compiling the Java class
269+
("$JAVA_HOME/bin/javac" "$javaClass")
270+
fi
271+
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
272+
# Running the downloader
273+
if [ "$MVNW_VERBOSE" = true ]; then
274+
echo " - Running MavenWrapperDownloader.java ..."
275+
fi
276+
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
277+
fi
278+
fi
279+
fi
280+
fi
281+
##########################################################################################
282+
# End of extension
283+
##########################################################################################
284+
285+
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
286+
if [ "$MVNW_VERBOSE" = true ]; then
287+
echo $MAVEN_PROJECTBASEDIR
288+
fi
289+
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
290+
291+
# For Cygwin, switch paths to Windows format before running java
292+
if $cygwin; then
293+
[ -n "$M2_HOME" ] &&
294+
M2_HOME=`cygpath --path --windows "$M2_HOME"`
295+
[ -n "$JAVA_HOME" ] &&
296+
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
297+
[ -n "$CLASSPATH" ] &&
298+
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
299+
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
300+
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
301+
fi
302+
303+
# Provide a "standardized" way to retrieve the CLI args that will
304+
# work with both Windows and non-Windows executions.
305+
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
306+
export MAVEN_CMD_LINE_ARGS
307+
308+
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
309+
310+
exec "$JAVACMD" \
311+
$MAVEN_OPTS \
312+
$MAVEN_DEBUG_OPTS \
313+
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
314+
"-Dmaven.home=${M2_HOME}" \
315+
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
316+
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

0 commit comments

Comments
 (0)