-
Урок 1.
00:04:16
Introduction to the Course
-
Урок 2.
00:01:29
Prerequisites
-
Урок 3.
00:06:08
About Spring Boot Versions
-
Урок 4.
00:01:43
Installing Software
-
Урок 5.
00:13:10
Creating a Maven Spring Boot Project
-
Урок 6.
00:12:54
A Basic Web App
-
Урок 7.
00:03:32
Template Engines
-
Урок 8.
00:09:41
Adding a JSP
-
Урок 9.
00:04:08
Generating a Project Without Eclipse
-
Урок 10.
00:06:29
Packaging With Maven
-
Урок 11.
00:05:15
Building With Eclipse
-
Урок 12.
00:05:47
Executable Wars
-
Урок 13.
00:12:43
Deploying to an Existing Tomcat Server
-
Урок 14.
00:10:21
Multiple Controllers
-
Урок 15.
00:10:29
Setting Up Apache Tiles
-
Урок 16.
00:10:39
Creating Tiles Definitions
-
Урок 17.
00:06:28
Adding and Extending Tiles Definitions
-
Урок 18.
00:10:58
Static Resources - Bootstrap
-
Урок 19.
00:07:12
Adding a Bootstrap Navbar
-
Урок 20.
00:10:57
Styling the Navbar
-
Урок 21.
00:15:12
Setting the Context Root
-
Урок 22.
00:08:43
The Bootstrap Grid
-
Урок 23.
00:05:56
Bootstrap Panels
-
Урок 24.
00:03:16
Adding a HTML Form
-
Урок 25.
00:11:10
JUnit
-
Урок 26.
00:05:33
MySQL Databases
-
Урок 27.
00:07:41
Creating a MySQL User
-
Урок 28.
00:12:24
Connecting to MySQL
-
Урок 29.
00:06:09
Creating a Domain Object
-
Урок 30.
00:08:51
Using JPA
-
Урок 31.
00:15:25
Using CrudRepository
-
Урок 32.
00:10:09
Retrieving the Most Recent Status Object
-
Урок 33.
00:03:43
Adding a Service Layer
-
Урок 34.
00:12:00
Model and View
-
Урок 35.
00:11:41
Spring Forms
-
Урок 36.
00:09:06
Displaying Data
-
Урок 37.
00:07:52
Formatting Dates
-
Урок 38.
00:08:41
JSPs, Objects and Classes
-
Урок 39.
00:06:19
Model Attributes
-
Урок 40.
00:07:35
Refreshing and Updating
-
Урок 41.
00:09:58
Validating Forms
-
Урок 42.
00:07:45
Customising Validation Messages
-
Урок 43.
00:02:10
About Paging
-
Урок 44.
00:07:12
Getting Pages of Results
-
Урок 45.
00:11:03
Getting URL Parameters
-
Урок 46.
00:07:31
Outputting Pages
-
Урок 47.
00:02:38
Formatting the Status Updates
-
Урок 48.
00:12:23
Outputting Page Numbers
-
Урок 49.
00:11:36
Custom Tags
-
Урок 50.
00:08:11
Cycling Through Page Blocks
-
Урок 51.
00:09:49
Displaying Page Number Blocks
-
Урок 52.
00:04:38
Fixing the Block Hyperlinks and Separator
-
Урок 53.
00:08:23
Jumping to the First Page of Blocks
-
Урок 54.
00:03:04
What If There Is Only One Page
-
Урок 55.
00:04:36
Redirecting
-
Урок 56.
00:07:10
Editing the Home Page
-
Урок 57.
00:06:15
Javascript Visual Editors
-
Урок 58.
00:09:45
Dropdown Menus
-
Урок 59.
00:07:54
Adding Edit and Delete Links
-
Урок 60.
00:06:47
Deleting Status Updates
-
Урок 61.
00:08:17
Displaying Statuses for Editing
-
Урок 62.
00:10:19
Saving Edits
-
Урок 63.
00:07:39
Adding Spring Security
-
Урок 64.
00:03:42
Conditional Formatting
-
Урок 65.
00:06:59
Additional Security Rules
-
Урок 66.
00:15:23
Adding a Login Form
-
Урок 67.
00:09:13
Authentication
-
Урок 68.
00:04:29
Login Error Messages
-
Урок 69.
00:06:50
Logging Out
-
Урок 70.
00:05:50
The Security Taglib
-
Урок 71.
00:05:30
The User Domain Object
-
Урок 72.
00:07:45
The User Service
-
Урок 73.
00:04:14
The User Service
-
Урок 74.
00:05:25
Configuring the User Service
-
Урок 75.
00:07:58
Registration Forms
-
Урок 76.
00:06:00
Making Registration Work
-
Урок 77.
00:11:40
Password Encryption
-
Урок 78.
00:08:18
Using Roles
-
Урок 79.
00:03:37
Restricting Urls on Roles
-
Урок 80.
00:07:45
Validating the Email Address
-
Урок 81.
00:09:51
Validating the Password
-
Урок 82.
00:05:39
Adding Custom Validation
-
Урок 83.
00:06:48
Custom Validaton Annotation
-
Урок 84.
00:09:35
Adding the Password Match Constraint
-
Урок 85.
00:05:49
Fake Smtp Test Services
-
Урок 86.
00:10:00
Configuring a Mail Sender
-
Урок 87.
00:08:36
Creating a Mail Service
-
Урок 88.
00:01:27
Testing Mail Sending
-
Урок 89.
00:02:09
Sending as HTML
-
Урок 90.
00:04:09
Creating a Verify Email Page
-
Урок 91.
00:05:23
Adding Thymeleaf Support
-
Урок 92.
00:06:10
Creating a Thymeleaf Template
-
Урок 93.
00:05:06
Configuring Thymeleaf
-
Урок 94.
00:05:48
Rendering the Thymeleaf Template
-
Урок 95.
00:07:05
Disabling Users
-
Урок 96.
00:12:13
Storing Verification Tokens
-
Урок 97.
00:03:13
Updating a User
-
Урок 98.
00:02:13
A VerificationDao
-
Урок 99.
00:05:01
Token User Service Methods
-
Урок 100.
00:09:11
Creating a Message page
-
Урок 101.
00:02:45
Invalid User and Expired Token Pages
-
Урок 102.
00:11:55
Creating the Verification Link
-
Урок 103.
00:08:28
Implementing Verification
-
Урок 104.
00:03:30
Deleting Used Tokens
-
Урок 105.
00:05:34
Asynchronous Methods
-
Урок 106.
00:05:14
Tightening the Security Rules
-
Урок 107.
00:06:22
Handling Errors in Spring Boot 2*
-
Урок 108.
00:05:32
Handling 403 Forbidden
-
Урок 109.
00:05:37
Adding an Access Denied Page
-
Урок 110.
00:08:12
Handling Exceptions
-
Урок 111.
00:08:39
Creating an Error Page
-
Урок 112.
00:06:44
Handling Duplicate Users
-
Урок 113.
00:03:00
Adding a Profile Link
-
Урок 114.
00:05:30
Retrieving the Logged in Username
-
Урок 115.
00:08:23
Creating a Profile Domain Object
-
Урок 116.
00:08:55
Adding a Profile Page
-
Урок 117.
00:03:45
Adding Profile Text
-
Урок 118.
00:06:45
Styling the Profile
-
Урок 119.
00:02:09
The Profile DAO
-
Урок 120.
00:02:37
The Profile Service
-
Урок 121.
00:04:28
Ensuring Privacy in Domain Objects
-
Урок 122.
00:03:54
Getting the Current User
-
Урок 123.
00:07:34
Creating Profiles
-
Урок 124.
00:04:28
Displaying Profile Text
-
Урок 125.
00:03:20
The Edit About JSP
-
Урок 126.
00:06:18
Viewing the Edit About Page
-
Урок 127.
00:07:32
Updating Profile About Text
-
Урок 128.
00:06:35
Validating the Profile
-
Урок 129.
00:07:26
Adding a Policy Factory
-
Урок 130.
00:09:37
Sanitising the HTML
-
Урок 131.
00:03:12
About Uploading Files
-
Урок 132.
00:07:33
Creating an Upload Form
-
Урок 133.
00:02:35
The Upload Directory
-
Урок 134.
00:07:43
File Upload Code
-
Урок 135.
00:05:18
Handling Errors
-
Урок 136.
00:04:47
Getting File Extensions
-
Урок 137.
00:05:21
Checking Extensions
-
Урок 138.
00:08:23
Testing Private Methods with Reflection
-
Урок 139.
00:03:22
Testing isImageExtension
-
Урок 140.
00:06:16
Creating a Random Subdirectory
-
Урок 141.
00:05:18
Testing Directory Creation
-
Урок 142.
00:01:45
Defining an Exception
-
Урок 143.
00:07:41
Creating an Image Save Method
-
Урок 144.
00:05:15
Uploading Photos
-
Урок 145.
00:03:59
Transferring File Information
-
Урок 146.
00:03:08
Getting File Information
-
Урок 147.
00:07:06
Storing File Information
-
Урок 148.
00:01:10
Locating the Default Avatar
-
Урок 149.
00:02:29
Return the Full Photo Path
-
Урок 150.
00:11:16
Serving the Photo
-
Урок 151.
00:04:16
Using the Photo
-
Урок 152.
00:03:41
Deleting Old Photos
-
Урок 153.
00:04:30
Ensuring Name Uniqueness
-
Урок 154.
00:06:29
Structuring the Resize Code
-
Урок 155.
00:13:11
Resizing the Profile Photo
-
Урок 156.
00:09:04
Translating Upload Status
-
Урок 157.
00:05:19
Returning Data from a Method
-
Урок 158.
00:08:43
Running Javascript
-
Урок 159.
00:05:37
Invoking the File Chooser
-
Урок 160.
00:03:12
Submitting the Form Automatically
-
Урок 161.
00:06:52
Intercepting Form Submission
-
Урок 162.
00:09:50
Uploading Data with Javascript
-
Урок 163.
00:02:56
Returning Http Status Codes
-
Урок 164.
00:05:57
Dynamically Refreshing the Image
-
Урок 165.
00:04:28
Adding a Status Message
-
Урок 166.
00:04:25
Displaying the Status Message
-
Урок 167.
00:02:29
Removing the Unwanted Form
-
Урок 168.
00:07:10
Method Based Security
-
Урок 169.
00:06:07
Refactoring the Show Profile Code
-
Урок 170.
00:05:11
Using Path Variables
-
Урок 171.
00:04:10
Viewing Other Profiles
-
Урок 172.
00:02:47
Getting Profile-Specific Photos
-
Урок 173.
00:03:46
Using the User ID in the Profile
-
Урок 174.
00:08:08
Defining an Interest
-
Урок 175.
00:05:09
Interest Service and Dao
-
Урок 176.
00:12:49
Many to Many
-
Урок 177.
00:04:24
About Cascading and Ordering
-
Урок 178.
00:05:16
Saving Interests
-
Урок 179.
00:02:16
Merging and Copying
-
Урок 180.
00:04:20
Modifying Classes for Testing
-
Урок 181.
00:07:33
Creating a Profile Test Class
-
Урок 182.
00:11:23
Implementing the Profile Interest Test
-
Урок 183.
00:10:02
Fetch Types and Proxies
-
Урок 184.
00:12:55
A REST Method for Saving Interests
-
Урок 185.
00:06:24
A REST Method for Deleting Interests
-
Урок 186.
00:07:15
Test Config for Testing Controller Methods
-
Урок 187.
00:03:22
Mocking Users
-
Урок 188.
00:09:14
Mocking a Post Request
-
Урок 189.
00:09:58
Finishing the REST Tests
-
Урок 190.
00:09:12
Javascript Tagging Libraries
-
Урок 191.
00:10:01
Including CSS and Javascript for Tagging
-
Урок 192.
00:05:36
Invoking the Tagging Library
-
Урок 193.
00:04:47
Inspecting Generated HTML
-
Урок 194.
00:07:09
Styling Interest Tags
-
Урок 195.
00:06:35
Configuring Tagging
-
Урок 196.
00:10:18
Dealing with CSRF in Javascript
-
Урок 197.
00:06:35
Setting POST Headers
-
Урок 198.
00:04:45
Implementing the Ajax Post
-
Урок 199.
00:06:27
Outputting the Interest List
-
Урок 200.
00:06:15
Removing Autocomplete Text
-
Урок 201.
00:07:55
Making Profiles Read Only
-
Урок 202.
00:04:00
About Searching
-
Урок 203.
00:05:19
Adding a Search Box
-
Урок 204.
00:06:23
Styling the Search Box
-
Урок 205.
00:08:03
A Search Controller
-
Урок 206.
00:13:26
Collecting Names
-
Урок 207.
00:10:35
Fixing Tests
-
Урок 208.
00:02:44
Mocking Data
-
Урок 209.
00:11:06
Test Data
-
Урок 210.
00:04:14
Creating a Stream
-
Урок 211.
00:14:14
Stream Operations
-
Урок 212.
00:18:42
Mock Users
-
Урок 213.
00:06:14
Saving the Test Data
-
Урок 214.
00:09:29
Performing the Search
-
Урок 215.
00:06:35
About Data Leakage and Layers
-
Урок 216.
00:03:52
Reorganising the Model Packages
-
Урок 217.
00:06:39
The SearchResult DTO
-
Урок 218.
00:05:08
Stream Mapping
-
Урок 219.
00:07:34
The List of Results
-
Урок 220.
00:03:22
Formatting the Results Page
-
Урок 221.
00:05:25
Adding Photos
-
Урок 222.
00:13:00
Rearranging the Results
-
Урок 223.
00:03:05
Linking to Profiles
-
Урок 224.
00:04:44
Adding a Register Prompt
-
Урок 225.
00:07:16
CSS for the Results
-
Урок 226.
00:05:05
Clickable Interests
-
Урок 227.
00:06:31
Improving Searching
-
Урок 228.
00:06:07
More About Paging
-
Урок 229.
00:07:19
Checking Paging Functionality
-
Урок 230.
00:12:14
Using the Debugger
-
Урок 231.
00:04:57
Adding a Page Number Parameter
-
Урок 232.
00:08:07
Implementing Basic Paging
-
Урок 233.
00:06:11
Testing Out Basic Paging
-
Урок 234.
00:10:21
Converting from Lists to Pages
-
Урок 235.
00:09:37
Adding the Pagination Tag
-
Урок 236.
00:09:39
Tweaking the Pagination Tag
-
Урок 237.
00:04:45
Sending Search Data to the Results Page
-
Урок 238.
00:05:50
Using the JSTL Contains Function
-
Урок 239.
00:06:06
Applying the Final Pagination Fix
-
Урок 240.
00:05:20
Adjusting Page Numbers and Results
-
Урок 241.
00:07:57
Working Sets and Filters
-
Урок 242.
00:06:27
Some Simple Package Upgrades
-
Урок 243.
00:08:43
Using the New Crudrepository Methods
-
Урок 244.
00:06:50
Upgrading Test Annotations
-
Урок 245.
00:06:50
Configuring Servers in Spring Boot 2
-
Урок 246.
00:05:53
Upgrading PageRequests
-
Урок 247.
00:12:55
Using a Test Database
-
Урок 248.
00:05:39
Running the Tests
-
Урок 249.
00:06:09
Making the Tests Rerunnable
-
Урок 250.
00:06:44
Fixing Image Upload Bugs
-
Урок 251.
00:04:21
Fixing Search Results Bug
-
Урок 252.
00:08:01
Introducing Websockets
-
Урок 253.
00:06:32
Webjars
-
Урок 254.
00:01:27
Checking Webjars Javascript
-
Урок 255.
00:13:37
Websocket Configuration
-
Урок 256.
00:09:21
Getting the CSRF Token
-
Урок 257.
00:09:08
Establishing a Web Socket Connection
-
Урок 258.
00:07:43
A Chatview Page
-
Урок 259.
00:06:52
Adding Chatview Script
-
Урок 260.
00:07:29
Completing the Chat Form
-
Урок 261.
00:04:36
Responding to Clicks and the Enter Key
-
Урок 262.
00:09:22
Getting the Logged In User ID
-
Урок 263.
00:10:35
Getting the Chat User Details
-
Урок 264.
00:05:11
A SimpleMessage Class
-
Урок 265.
00:03:34
Message Handling Controller Method
-
Урок 266.
00:12:02
Message Sending Additional Code
-
Урок 267.
00:07:28
Sending the Message
-
Урок 268.
00:11:43
Sending the Message Back to the User
-
Урок 269.
00:11:31
Receiving Messages
-
Урок 270.
00:13:00
A Javascript Connection Manager Class
-
Урок 271.
00:10:56
The Subscription Array
-
Урок 272.
00:12:35
Getting the ConnectionManager Working
-
Урок 273.
00:10:08
Transferring Code to ConnectionManager
-
Урок 274.
00:05:52
A Custom User Details Class
-
Урок 275.
00:09:26
Adding the Profile Name
-
Урок 276.
00:05:44
Working with Profiles
-
Урок 277.
00:07:20
Adding a Chat Icon
-
Урок 278.
00:08:30
About Queues
-
Урок 279.
00:06:00
Sending and Receiving
-
Урок 280.
00:04:55
Displaying Formatted Messages
-
Урок 281.
00:02:22
Styling Messages
-
Урок 282.
00:06:20
Differentiating Replies from Sent Messages
-
Урок 283.
00:06:56
A Message Class
-
Урок 284.
00:06:18
Message Service and Repository
-
Урок 285.
00:07:33
FetchConversation Controller Method
-
Урок 286.
00:08:12
FetchConversation Message Service Method
-
Урок 287.
00:08:55
Querying the Conversation Messages
-
Урок 288.
00:08:16
Retrieving the Conversation
-
Урок 289.
00:05:21
Using Javascript to Retrieve the Conversation
-
Урок 290.
00:06:46
Posting the Conversation Request
-
Урок 291.
00:05:25
Displaying Past Messages
-
Урок 292.
00:08:05
Ordering Messages
-
Урок 293.
00:06:41
Retrieving Previous Message Pages
-
Урок 294.
00:05:44
Adding Previous Messages
-
Урок 295.
00:11:40
Sizing the Chat Window
-
Урок 296.
00:05:44
Sending a Message Notification
-
Урок 297.
00:08:18
Browser Notifications
-
Урок 298.
00:02:21
Making Notifications Clickable
-
Урок 299.
00:03:53
Adding a Messages Page
-
Урок 300.
00:07:53
Retrieving the Message List
-
Урок 301.
00:05:44
Displaying the Message List
-
Урок 302.
00:06:11
Formatting Messages
-
Урок 303.
00:04:42
Getting the Message ID
-
Урок 304.
00:07:20
Marking Messages as Read
-
Урок 305.
00:07:31
Some notes on deployment
-
Урок 306.
00:01:47
Conclusion