Companies love to use the Spring Framework. In fact, Spring is the most popular Java framework.
Did you know, a core reason for Spring's popularity with companies is it's IoC engine?
A typical company will deploy their Spring application in at least 3 different environments. Having a development, test, and production environment is common.
The problem developers face is each environment is different.
- Different server names.
- Different databases.
- Different user accounts.
- Different passwords.
In this course you will learn how to use Spring's IoC container to deploy your application in many environments. Through Inversion of Control, your Spring application can wire itself for the needs of each environment.
You'll start the course learning advanced configuration options. Next, the course takes a DevOps approach. You'll see how to deploy Spring in different environments.
In development, it's common to use a H2 in memory database. Of course, this database is only temporary. Not something you'd want to use for your production deployment.
Do you want to see how to flip a switch and use MySQL? Flip another switch and your app can be using a RDS database managed Amazon. You can do this with no code changes.
The course also focuses on how applications are commonly managed. Using a continuous integration server is a best practice. Jenkins is the most popular CI server. You will learn how to install Jenkins on a Linux server. A server you provisioned on the cloud.
Throughout the course, you will learn best practices. Once you have Jenkins running on your AWS server a best practice is to setup Jenkins on a friendly URL.
Jenkins is a Java application running on port 8080. You don't want to be typing some IP colon 8080 into your browser to reach Jenkins.
Want to know how you can use Apache and Route 53 to reach your Jenkins server your own URL? To a domain you own?
Docker is an exciting technology. You will see how to leverage Docker to host your own Artifactory Maven repository. We'll use Artifactory to manage build artifacts produced by Jenkins.
Just for fun, we will also use Docker to setup a MySQL database server. We'll do this by provisioning a Linux server on AWS, installing Docker on it, and then deploy MySQL in a Docker container.
We'll also provision an application server we can use to run our Spring Boot application. You will pull the Spring Boot jar right from Artifactory and tell it to connect to database server.
Amazon AWS also has managed MySQL databases. This is their RDS service. You will see how to provision your own RDS database. We'll then reconfigure our Spring Boot application to connect to the RDS database.
There is a lot of fun and challenging content in this course. You will learn:
- How to manage Spring properties.
- Why you want to encrypt sensitive properties, such as passwords.
- How Spring Profiles are used.
- Using YAML to configure Spring.
- To provision servers on Amazon AWS.
- Logging into your servers via SSH.
- How to use the yum package manager to install software on Linux.
- How to configure your own Linux service.
- How DNS works, and how to use Route 53 to setup your own host names.
- How to use webhooks in GitHub to trigger your builds immediately.
- Why you don't want to use root accounts for your application.
- Configure Jenkins to perform a Maven build.
- Use Jenkins to deploy build artifacts to Artifactory.
This is a very hands on course. To get the most out of this course, you will need an account on AWS. You should be able to use the AWS free tier to complete the course assignments.
To get the most out of this course, you will need a domain name. You will need to have control of the domain. Without this, you will not be able to configure subdomains in Route 53.
The course does leverage AWS for their cloud services. The skills you learn on the AWS platform will transfer to most corporate environments. AWS is used to mimic the typical company.
There is a lot of exciting content in this course! DevOps is not an easy area. Many different technologies are involved. Many different best practices are involved. By completing this course, you'll see how these technologies and best practices come together.
Took up the Spring DevOps course on the Spring Framework Guru Site and immensely enjoyed it. The mechanism in which John teaches the course, a first introduction of the concept, followed by execution with live code write-up is extremely enlightening. What is important is the pace is not too fast or too slow but just right. Also, this followed by exercises which I undertook based on the material that was covered which lets you think , understand and appreciate the content covered. I would highly recommend this course and other content on John's Spring Framework Guru website.
Amit Mukherjee
I am a 10 year Army Infantrymen veteran of Iraq and Afghanistan and found my passion for coding on my own. After completing my Computer Science degree while serving I found out employers didn’t care about my degree but what you knew and what you can do. John helped out eminently in his tutorials and prompt email responses. I am now a Java Software Developer and owe it to John and many other resources for my success!
Drew Jocham
John’s professional, real-world experience is demonstrated throughout his lectures and assignments. Having taken the Spring Core Ultimate bundle of courses, I have a very solid understanding of Spring, and how to quickly launch projects by leveraging the Spring framework’s feature set - I now feel confident in applying for jobs that require Spring skills. This comprehensive set of materials is a requirement for any Java developer looking to quickly become relevant in the current realm of enterprise application development, and John’s shared experiences provided within are value added to the curriculum. Thank you, John, for taking the time to assemble these courses and sharing your knowledge.
Rob Arnhart
Your Instructor
Hi. I'm John.
I've been in the IT industry for over 20 years. Today, I specialize mainly in Java, the most successful and widely known programming language in use today. I also specialize with the Spring Framework, which is the most popular open source application framework for building enterprise class applications on the Java platform. Just some of the organizations I've worked with include Visa, Kohls, Federal Home Loan Bank, and Belk Department Stores.
Every day I get contacted by recruiters looking for people with Java skills, sometimes 5 to 6 times a day. These are often very good paying jobs, yet, there is a shortage of good people in software development. Positions paying $60 per hour are going unfilled because there are not enough people writing Java. These are positions I turn away, because the pay is well below my market rate.
Malcolm Gladwell claims it takes 10,000 hours to become an expert. That's 5 years, 40 hours a week. I've certainly put in the time. I've had the opportunity to learn from some of the brightest minds in the industry. So, I can claim to be an expert.
Through the courses I'm providing, I hope to leverage my years of experience to accelerate your learning of the Spring Framework. I'm not going to lie to you: the Spring Framework is a big framework. The environment for enterprise Java is even bigger. If you're new to Java, you have a lot to learn. I hope through the content on this web site I can accelerate your education of the Java and Spring landscape.
Course Curriculum
-
PreviewSpring Profiles - Section Overview (3:14)
-
StartConfiguring Spring Profiles (4:44)
-
PreviewSetting the Active Profile for Testing (7:55)
-
StartSetting the Spring Active Profile (10:12)
-
StartSpring Boot Profile Properties (4:49)
-
StartSpring Boot Profiles Code Assignment (1:01)
-
StartSpring Boot Profile Code Assignment Review (6:17)
-
StartSpring Boot Profiles with YAML (6:05)
-
PreviewSpring Profiles Summary (2:18)