Learn the Java Spring Framework: Create a Social Network with Spring Boot
Learn how to get dynamic and secure websites running quickly with Spring Boot
Enroll in Course
This is a course on the Java Spring framework and Spring Boot.
To learn about Spring we'll be creating a simple social network, complete with profiles and real-time messaging.
You'll need to understand basic Java to take this course. Knowledge of HTML/CSS and SQL is also helpful. Knowledge of JSP/JSTL will be useful.
Your Instructor
          I worked as a professional developer for 14 years for several different companies including Proquest, CSC and AT&T before going full-time as a course creator. I currently live in Italy, although as a native Brit you get to enjoy (or put up with!) my British English accent while following your chosen courses.
In my spare time I like to write science fiction, often in cafes, and I'm a fan of old books.
Course Curriculum
- 
        
          
            
          
          
            PreviewIntroduction to the course (4:15)
 - 
        
          
            
          
          
            PreviewPrerequisites (1:28)
 - 
        
          
            
          
          
            PreviewInstalling Software (1:42)
 - 
        
          
            
          
          
            PreviewCreating a Maven Spring Boot Project (13:09)
 - 
        
          
            
          
          
            PreviewA Basic Web App (12:53)
 - 
        
          
            
          
          
            PreviewTemplate Engines (3:31)
 - 
        
          
            
          
          
            PreviewAdding a JSP (9:40)
 - 
        
          
            
          
          
            PreviewGenerating a Project Without Eclipse (4:07)
 - 
        
          
            
          
          
            PreviewPackaging with Maven (6:28)
 - 
        
          
            
          
          
            PreviewBuilding with Eclipse (5:14)
 - 
        
          
            
          
          
            PreviewExecutable Wars (5:46)
 - 
        
          
            
          
          
            PreviewDeploying to Existing Tomcat (12:42)
 - 
        
          
            
          
          
            PreviewMultiple Pages and Controllers (10:20)
 
- 
        
          
            
          
          
            StartAbout Paging (2:09)
 - 
        
          
            
          
          
            StartGetting URL Parameters (11:02)
 - 
        
          
            
          
          
            StartGetting Pages of Results (7:11)
 - 
        
          
            
          
          
            StartOutputting Pages (7:30)
 - 
        
          
            
          
          
            StartFormatting the Status Updates (2:37)
 - 
        
          
            
          
          
            StartOutputting Page Numbers (12:22)
 - 
        
          
            
          
          
            StartCustom Tags (11:35)
 - 
        
          
            
          
          
            StartCycling Through Page Blocks (8:10)
 - 
        
          
            
          
          
            StartDisplaying Page Number Blocks (9:48)
 - 
        
          
            
          
          
            StartFixing the Block Hyperlinks and Separator (4:37)
 - 
        
          
            
          
          
            StartJumping to the First Page of Blocks (8:22)
 
- 
        
          
            
          
          
            StartThe User Domain Object (5:29)
 - 
        
          
            
          
          
            StartThe User Service (4:13)
 - 
        
          
            
          
          
            StartThe User Service (7:44)
 - 
        
          
            
          
          
            StartConfiguring the User Service (5:24)
 - 
        
          
            
          
          
            StartRegistration Forms (7:57)
 - 
        
          
            
          
          
            StartMaking Registration Work (5:59)
 - 
        
          
            
          
          
            StartPassword Encryption (11:39)
 - 
        
          
            
          
          
            StartUsing Roles (8:17)
 - 
        
          
            
          
          
            StartRestricting Urls on Roles (3:36)
 
- 
        
          
            
          
          
            StartFake Smtp Test Services (5:48)
 - 
        
          
            
          
          
            StartConfiguring a Mail Sender (9:59)
 - 
        
          
            
          
          
            StartCreating a Mail Service (8:35)
 - 
        
          
            
          
          
            StartTesting Mail Sending (1:26)
 - 
        
          
            
          
          
            StartSending as HTML (2:08)
 - 
        
          
            
          
          
            StartCreating a Verify Email Page (4:08)
 - 
        
          
            
          
          
            StartAdding Thymeleaf Support (5:22)
 - 
        
          
            
          
          
            StartCreating a Thymeleaf Template (6:09)
 - 
        
          
            
          
          
            StartConfiguring Thymeleaf (5:05)
 - 
        
          
            
          
          
            StartRendering the Thymeleaf Template (5:47)
 - 
        
          
            
          
          
            Start[Obsolete -- will be removed soon; please skip this video] Creating a Velocity Template (6:37)
 - 
        
          
            
          
          
            Start[Obsolete -- will be removed soon; please skip this video] Rendering Velocity Templates (6:48)
 
- 
        
          
            
          
          
            StartDisabling Users (7:04)
 - 
        
          
            
          
          
            StartStoring Verification Tokens (12:12)
 - 
        
          
            
          
          
            StartUpdating a User (3:12)
 - 
        
          
            
          
          
            StartA VerificationDao (2:12)
 - 
        
          
            
          
          
            StartToken User Service Methods (5:00)
 - 
        
          
            
          
          
            StartCreating a Message page (9:10)
 - 
        
          
            
          
          
            StartInvalid User and Expired Token Pages (2:44)
 - 
        
          
            
          
          
            StartCreating the Verification Link (11:54)
 - 
        
          
            
          
          
            Start[Obsolete -- will be removed soon. Please skip this video] Creating the Verfication Link (6:05)
 - 
        
          
            
          
          
            StartImplementing Verification (8:27)
 - 
        
          
            
          
          
            StartDeleting Used Tokens (3:29)
 - 
        
          
            
          
          
            StartAsynchronous Methods (5:33)
 
- 
        
          
            
          
          
            StartAdding a Profile Link (2:59)
 - 
        
          
            
          
          
            StartRetrieving the Logged in Username (5:29)
 - 
        
          
            
          
          
            StartCreating a Profile Domain Object (8:22)
 - 
        
          
            
          
          
            StartAdding a Profile Page (8:54)
 - 
        
          
            
          
          
            StartAdding Profile Text (3:44)
 - 
        
          
            
          
          
            StartStyling the Profile (6:44)
 - 
        
          
            
          
          
            StartThe Profile DAO (2:08)
 - 
        
          
            
          
          
            StartThe Profile Service (2:36)
 - 
        
          
            
          
          
            StartEnsuring Privacy in Domain Objects (4:27)
 - 
        
          
            
          
          
            StartGetting the Current User (3:53)
 - 
        
          
            
          
          
            StartCreating Profiles (7:33)
 - 
        
          
            
          
          
            StartDisplaying Profile Text (4:27)
 - 
        
          
            
          
          
            StartThe Edit About JSP (3:19)
 - 
        
          
            
          
          
            StartViewing the Edit About Page (6:17)
 - 
        
          
            
          
          
            StartUpdating Profile About Text (7:31)
 - 
        
          
            
          
          
            StartValidating the Profile (6:34)
 - 
        
          
            
          
          
            StartAdding a Policy Factory (7:25)
 - 
        
          
            
          
          
            StartSanitising the HTML (9:36)
 
- 
        
          
            
          
          
            StartAbout Uploading Files (3:11)
 - 
        
          
            
          
          
            StartCreating an Upload Form (7:32)
 - 
        
          
            
          
          
            StartThe Upload Directory (2:34)
 - 
        
          
            
          
          
            StartFile Upload Code (7:42)
 - 
        
          
            
          
          
            StartHandling Errors (5:17)
 - 
        
          
            
          
          
            StartGetting File Extensions (4:46)
 - 
        
          
            
          
          
            StartChecking Extensions (5:20)
 - 
        
          
            
          
          
            StartTesting Private Methods with Reflection (8:22)
 - 
        
          
            
          
          
            StartTesting isImageExtension (3:21)
 - 
        
          
            
          
          
            StartCreating a Random Subdirectory (6:15)
 - 
        
          
            
          
          
            StartTesting Directory Creation (5:17)
 - 
        
          
            
          
          
            StartDefining an Exception (1:44)
 - 
        
          
            
          
          
            StartCreating an Image Save Method (7:40)
 - 
        
          
            
          
          
            StartUploading Photos (5:14)
 - 
        
          
            
          
          
            StartTransferring File Information (3:58)
 - 
        
          
            
          
          
            StartGetting File Information (3:07)
 - 
        
          
            
          
          
            StartStoring File Information (7:05)
 - 
        
          
            
          
          
            StartLocating the Default Avatar (1:09)
 - 
        
          
            
          
          
            StartReturn the Full Photo Path (2:28)
 - 
        
          
            
          
          
            StartServing the Photo (11:15)
 - 
        
          
            
          
          
            StartUsing the Photo (4:15)
 - 
        
          
            
          
          
            StartDeleting Old Photos (3:40)
 - 
        
          
            
          
          
            StartEnsuring Name Uniqueness (4:29)
 - 
        
          
            
          
          
            StartStructuring the Resize Code (6:28)
 - 
        
          
            
          
          
            StartResizing the Profile Photo (13:10)
 
- 
        
          
            
          
          
            StartTranslating Upload Status (9:03)
 - 
        
          
            
          
          
            StartReturning Data from a Method (5:18)
 - 
        
          
            
          
          
            StartRunning Javascript (8:42)
 - 
        
          
            
          
          
            StartInvoking the File Chooser (5:36)
 - 
        
          
            
          
          
            StartSubmitting the Form Automatically (3:11)
 - 
        
          
            
          
          
            StartIntercepting Form Submission (6:51)
 - 
        
          
            
          
          
            StartUploading Data with Javascript (9:49)
 - 
        
          
            
          
          
            StartReturning Http Status Codes (2:55)
 - 
        
          
            
          
          
            StartDynamically Refreshing the Image (5:56)
 - 
        
          
            
          
          
            StartAdding a Status Message (4:27)
 - 
        
          
            
          
          
            StartDisplaying the Status Message (4:24)
 - 
        
          
            
          
          
            StartRemoving the Unwanted Form (2:28)
 - 
        
          
            
          
          
            StartMethod Based Security (7:09)
 
- 
        
          
            
          
          
            StartDefining an Interest (8:07)
 - 
        
          
            
          
          
            StartInterest Service and Dao (5:08)
 - 
        
          
            
          
          
            StartMany to Many (12:48)
 - 
        
          
            
          
          
            StartAbout Cascading and Ordering (4:23)
 - 
        
          
            
          
          
            StartSaving Interests (5:15)
 - 
        
          
            
          
          
            StartMerging and Copying (2:15)
 - 
        
          
            
          
          
            StartModifying Classes for Testing (4:19)
 - 
        
          
            
          
          
            StartCreating a Profile Test Class (7:32)
 - 
        
          
            
          
          
            StartImplementing the Profile Interest Test (11:22)
 - 
        
          
            
          
          
            StartFetch Types and Proxies (10:01)
 - 
        
          
            
          
          
            StartA REST Method for Saving Interests (12:54)
 - 
        
          
            
          
          
            StartA REST Method for Deleting Interests (6:23)
 - 
        
          
            
          
          
            StartTest Config for Testing Controller Methods (7:14)
 - 
        
          
            
          
          
            StartMocking Users (3:21)
 - 
        
          
            
          
          
            StartMocking a Post Request (9:13)
 - 
        
          
            
          
          
            StartFinishing the REST Tests (9:57)
 - 
        
          
            
          
          
            StartJavascript Tagging Libraries (9:11)
 - 
        
          
            
          
          
            StartIncluding CSS and Javascript for Tagging (10:00)
 - 
        
          
            
          
          
            StartInvoking the Tagging Library (5:35)
 - 
        
          
            
          
          
            StartInspecting Generated HTML (4:46)
 - 
        
          
            
          
          
            StartStyling Interest Tags (7:08)
 - 
        
          
            
          
          
            StartConfiguring Tagging (6:34)
 - 
        
          
            
          
          
            StartDealing with CSRF in Javascript (10:17)
 - 
        
          
            
          
          
            StartSetting POST Headers (6:34)
 - 
        
          
            
          
          
            StartImplementing the Ajax Post (4:44)
 - 
        
          
            
          
          
            StartOutputting the Interest List (6:26)
 - 
        
          
            
          
          
            StartRemoving Autocomplete Text (6:14)
 - 
        
          
            
          
          
            StartMaking Profiles Read Only (7:54)
 
- 
        
          
            
          
          
            StartAbout Searching (3:59)
 - 
        
          
            
          
          
            StartAdding a Search Box (5:18)
 - 
        
          
            
          
          
            StartStyling the Search Box (6:22)
 - 
        
          
            
          
          
            StartA Search Controller (8:02)
 - 
        
          
            
          
          
            StartCollecting Names (13:25)
 - 
        
          
            
          
          
            StartFixing Tests (10:34)
 - 
        
          
            
          
          
            StartMocking Data (2:43)
 - 
        
          
            
          
          
            StartTest Data (11:05)
 - 
        
          
            
          
          
            StartCreating a Stream (4:13)
 - 
        
          
            
          
          
            StartStream Operations (14:14)
 - 
        
          
            
          
          
            StartMock Users (18:41)
 - 
        
          
            
          
          
            StartSaving the Test Data (6:13)
 - 
        
          
            
          
          
            StartPerforming the Search (9:28)
 - 
        
          
            
          
          
            StartAbout Data Leakage and Layers (6:34)
 - 
        
          
            
          
          
            StartReorganising the Model Packages (3:51)
 - 
        
          
            
          
          
            StartThe SearchResult DTO (6:38)
 - 
        
          
            
          
          
            StartStream Mapping (5:07)
 - 
        
          
            
          
          
            StartThe List of Results (7:33)
 - 
        
          
            
          
          
            StartFormatting the Results Page (3:21)
 - 
        
          
            
          
          
            StartAdding Photos (5:24)
 - 
        
          
            
          
          
            StartRearranging the Results (12:59)
 - 
        
          
            
          
          
            StartLinking to Profiles (3:04)
 - 
        
          
            
          
          
            StartAdding a Register Prompt (4:43)
 - 
        
          
            
          
          
            StartCSS for the Results (7:15)
 - 
        
          
            
          
          
            StartClickable Interests (5:04)
 - 
        
          
            
          
          
            StartImproving Searching (6:30)
 - 
        
          
            
          
          
            StartMore About Paging (6:06)
 - 
        
          
            
          
          
            StartChecking Paging Functionality (7:18)
 - 
        
          
            
          
          
            StartUsing the Debugger (12:13)
 - 
        
          
            
          
          
            StartAdding a Page Number Parameter (4:56)
 - 
        
          
            
          
          
            StartImplementing Basic Paging (8:06)
 - 
        
          
            
          
          
            StartTesting Out Basic Paging (6:10)
 - 
        
          
            
          
          
            StartConverting from Lists to Pages (10:20)
 - 
        
          
            
          
          
            StartAdding the Pagination Tag (9:36)
 - 
        
          
            
          
          
            StartTweaking the Pagination Tag (9:38)
 - 
        
          
            
          
          
            StartSending Search Data to the Results Page (4:44)
 - 
        
          
            
          
          
            StartUsing the JSTL Contains Function (5:49)
 - 
        
          
            
          
          
            StartApplying the Final Pagination Fix (6:05)
 - 
        
          
            
          
          
            StartAdjusting Page Numbers and Results (5:19)
 
- 
        
          
            
          
          
            StartWorking Sets and Filters (7:56)
 - 
        
          
            
          
          
            StartSome Simple Package Upgrades (6:26)
 - 
        
          
            
          
          
            StartUsing the New Crudrepository Methods (8:42)
 - 
        
          
            
          
          
            StartUpgrading Test Annotations (6:49)
 - 
        
          
            
          
          
            StartConfiguring Servers in Spring Boot 2 (6:49)
 - 
        
          
            
          
          
            StartUpgrading PageRequests (5:52)
 - 
        
          
            
          
          
            StartUsing a Test Database (12:54)
 - 
        
          
            
          
          
            StartRunning the Tests (5:38)
 - 
        
          
            
          
          
            StartMaking the Tests Rerunnable (6:08)
 - 
        
          
            
          
          
            StartFixing Image Upload Bugs (6:43)
 - 
        
          
            
          
          
            StartFixing Search Results Bug (4:20)
 
- 
        
          
            
          
          
            StartIntroducing Websockets (8:00)
 - 
        
          
            
          
          
            StartWebjars (6:31)
 - 
        
          
            
          
          
            StartChecking Webjars Javascript (1:26)
 - 
        
          
            
          
          
            StartWebsocket Configuration (13:36)
 - 
        
          
            
          
          
            StartGetting the CSRF Token (9:20)
 - 
        
          
            
          
          
            StartEstablishing a Web Socket Connection (9:07)
 - 
        
          
            
          
          
            StartA Chatview Page (7:42)
 - 
        
          
            
          
          
            StartAdding Chatview Script (6:51)
 - 
        
          
            
          
          
            StartCompleting the Chat Form (7:28)
 - 
        
          
            
          
          
            StartResponding to Clicks and the Enter Key (4:35)
 - 
        
          
            
          
          
            StartGetting the Logged In User ID (9:21)
 - 
        
          
            
          
          
            StartGetting the Chat User Details (10:34)
 - 
        
          
            
          
          
            StartA SimpleMessage Class (5:10)
 - 
        
          
            
          
          
            StartMessage Handling Controller Method (3:32)
 - 
        
          
            
          
          
            StartMessage Sending Additional Code (12:01)
 - 
        
          
            
          
          
            StartSending the Message (7:26)
 - 
        
          
            
          
          
            StartSending the Message Back to the User (11:42)
 - 
        
          
            
          
          
            StartReceiving Messages
 - 
        
          
            
          
          
            StartA Javascript Connection Manager Class (12:59)
 - 
        
          
            
          
          
            StartThe Subscription Array (10:55)
 - 
        
          
            
          
          
            StartGetting the ConnectionManager Working (12:34)
 - 
        
          
            
          
          
            StartTransferring Code to ConnectionManager (10:07)
 - 
        
          
            
          
          
            StartA Custom User Details Class (5:51)
 - 
        
          
            
          
          
            StartAdding the Profile Name (9:25)
 - 
        
          
            
          
          
            StartWorking with Profiles (5:43)
 - 
        
          
            
          
          
            StartAdding a Chat Icon (7:19)
 - 
        
          
            
          
          
            StartAbout Queues (8:29)
 - 
        
          
            
          
          
            StartSending and Receiving (5:59)
 - 
        
          
            
          
          
            StartDisplaying Formatted Messages (4:54)
 - 
        
          
            
          
          
            StartStyling Messages (2:21)
 - 
        
          
            
          
          
            StartDifferentiating Replies from Sent Messages (6:19)
 - 
        
          
            
          
          
            StartA Message Class (6:55)
 - 
        
          
            
          
          
            StartMessage Service and Repository (6:17)
 - 
        
          
            
          
          
            StartFetchConversation Controller Method (7:32)
 - 
        
          
            
          
          
            StartFetchConversation Message Service Method (8:11)
 - 
        
          
            
          
          
            StartQuerying the Conversation Messages (8:54)
 - 
        
          
            
          
          
            StartRetrieving the Conversation (8:15)
 - 
        
          
            
          
          
            StartUsing Javascript to Retrieve the Conversation (5:20)
 - 
        
          
            
          
          
            StartPosting the Conversation Request (6:45)
 - 
        
          
            
          
          
            StartDisplaying Past Messages (5:24)
 - 
        
          
            
          
          
            StartOrdering Messages (8:04)
 - 
        
          
            
          
          
            StartRetrieving Previous Message Pages (6:39)
 - 
        
          
            
          
          
            StartAdding Previous Messages (5:43)
 - 
        
          
            
          
          
            StartSizing the Chat Window (11:39)
 - 
        
          
            
          
          
            StartSending a Message Notification (5:43)
 - 
        
          
            
          
          
            StartBrowser Notifications (8:17)
 - 
        
          
            
          
          
            StartMaking Notifications Clickable (2:20)
 - 
        
          
            
          
          
            StartAdding a Messages Page (3:52)
 - 
        
          
            
          
          
            StartRetrieving the Message List (7:52)
 - 
        
          
            
          
          
            StartDisplaying the Message List (5:43)
 - 
        
          
            
          
          
            StartFormatting Messages (6:10)
 - 
        
          
            
          
          
            StartGetting the Message ID (4:41)
 - 
        
          
            
          
          
            StartMarking Messages as Read (7:19)