Course 'Introduction to Play Framework for Scala '
$495usd

The "Configuration" lecture is not free and you are not enrolled in the course, or you are not logged in. Information about the lecture follows. Click on the About the Course and Course Outline tabs above to learn more about the course. You can enroll by clicking on the button on the upper right of this page.

Lecture Contents

Play-Specific Settings

Application Secret Key

Play Modules

IDE Support

Internationalization

HTTP Settings

Router

Action Creator

Error Handler

Session and Flash

Netty

HTTP Client (WS)

Cache

Filters

Database-Specific Settings

Specifying the Config File

Debugging

Running in Production Mode

Checking Combined Configuration File

References: Lecture Using Google Guice for Dependency Injection
Lecture A Closer Look at Google Guice
Lecture Internationalization and Localization
Lecture Guice Providers, @Named and Exercise
Lecture Play Framework Tools
Lecture Routes and Dispatching to Controllers
Lecture Standard Filters and Filter Chains
Lecture Redirects
Lecture HOCON Configuration
Lecture HOCON Exercise and Extended Example
Referenced by: Lecture A Closer Look at Google Guice
Lecture Standard Files and Directories and Template
Lecture Routes and Dispatching to Controllers
Lecture Standard Filters and Filter Chains

Abstract

This lecture discusses the contents of the Play configuration file, conf/application.conf and related files. In the Intermediate Scala course, which is a prerequisite for this course, the Typesafe Config and Typesafe Config Exercise and Extended Example lectures discussed how to work with HOCON-formatted Config files. This lecture discusses the standard predefined settings specific to Play Framework.

Revision History

Date Changes
2016-08-12 Showed how to use playGenerateSecret
2016-07-22 Added Checking Combined Configuration File section to transcript
2016-06-25 Published video
2016-06-14 Updated to Play 2.5.4
2014-03-15 First published transcript

This “Introduction to Play Framework for Scala” course covers the fundamentals for creating reactive web sites, and is designed to give you a variety of hands-on experiences. The course consists of 6 hours of video, over 300 pages of lecture notes (if printed as an O'Reilly-sized book), and about a dozen exercises. As you can see from the Revision History tab on this page, this course is kept up-to-date. Exercises are provided throughout that reinforce the lecture material. Several complete working sample Play Framework projects are provided and discussed in detail.

The course outline tab outlines the course in detail. The unique features for Play Framework are introduced, along with popular software tools like IntelliJ IDEA, Atom, custom scripts and useful plugins for web browsers.

As of Oct 5, 2019, the code examples for the course have been updated to Play 2.7.3. The transcripts and videos are being updated from Play 2.5.9 to Play 2.7.3+, and this is expected to take a few months to complete.

The course shows how Play Framework uses the model/view/controller (MVC) paradigm to route requests to controllers, and demonstrates many ways of extracting data from requests. Detailed discussions of Play Framework view templates are invoked by controllers are provided, prior to rendering them to HTML, plain text, Javascript or XML. Play Framework's Twirl templating DSL is explored in depth, and view templates written in pure Scala are demonstrated. Two methods of handling JSON are covered.

The course emphasizes dependency injection with Google Guice. Not all of Guice is compatible with Play Framework; this lecture points out the danger areas, and introduces the popular Scala-Guice library in Play Framework 2 applications. A summary of Play's injectable state is provided, and a discussion of how Play's modes relate to Guice's stages is included. Guice Providers, @Named and Guice modules are discussed using practical examples.

Internationalization and localization is covered in detail, followed by form helpers and form handling. An entire lecture is dedicated to a CRUD (create, retrieve, update and delete) application which is designed to be used as a reference application.

Other topics covered include Play Framework application configuration, logging, unit tests and integration tests, standard filters and custom filters. One of the most important lectures discusses how to package and deploy Play Framework applications using SBT Native Packager.

In addition to self-paced online learning, Micronautics Research offers remote instructor-led training for this course, which combines the self-study material with videoconferencing for office hours. Please contact us for further details.

How to Study This Course

The video on the front page of this web site discusses how to study this course. The transcript tab contains the same information as the video in written form.

Prerequisites

Intermediate Scala or equivalent. Students should have prior experience with setting up a web server such as Apache httpd, or programming a web application using a facility such as ASP, Tomcat, PHP, Ruby on Rails, etc.

Date Lecture Changes
2019-12-13 Standard Files and Directories and Template Updated to Play 2.8
2019-11-06 Introducing Play-JSON Updated to Scala 2.13 and Play 2.7.3
2019-10-24 A Closer Look at Google Guice Updated transcript to Play Framework 2.7.3.
2019-10-24 Using Google Guice for Dependency Injection Rewrote the guice Dependency section of the transcript.
2019-10-24 Working on Play Projects with IntelliJ IDEA Updated the transcript to Play 2.7.3 and IntelliJ IDEA 2019.2.3.
2019-10-14 Installing Play Framework Republished video updated for Play Framework 2.7.3.
2019-10-12 Working on Play Projects with IntelliJ IDEA Added new section JPDA Overview to transcript and moved Debugging with JPDA section into this lecture from Play Run Modes
2019-10-12 Play Framework REPL Hived this lecture from Play Framework REPL
2019-10-11 Working on Play Projects with IDEs Updated transcript to Play Framework 2.7.3.
2019-10-11 Play Framework REPL & Tools Updated transcript to Play 2.7.3.
2019-10-11 Standard Files and Directories and Improved Template Updated transcript to Play 2.7.3.
2019-10-09 Installing Play Framework Renamed lecture from Installing Activator to Installing Play Framework, removed all mention of Activator (it is obsolete), and rewrote the remaining material in terms of sbt plugins. Added mention of giter8.
2019-10-08 Play Framework Overview Added new sections Git Clone the Course Notes and Refer to Lecture Transcripts and republished the video.
2019-10-07 Play Framework Overview Updated transcript and republished video for Play Framework 2.7.3.
2019-10-07 Working on Play Projects with Scala-IDE Removed this obsolete lecture.
2019-10-07 Using Activator Removed this outdated lecture.
2019-10-05 All Updated all sample code to Play 2.7.3 & Scala 2.13 (see the git branch called 2.7.3)
2019-09-30 Standard Files and Directories and Improved Template Updated transcript to use gitter8 instead of activator.
2019-05-01 Working on Play Projects with IntelliJ IDEA Removed references to abandoned sbt-idea plugin
2017-06-11 Play Framework REPL & Tools Documented how to allow any domain to work with IDEA's Remote Call plugin
2017-03-29 Using Activator This lecture is deprecated, because Play 2.6 will drop support for Activator.
2017-03-29 Installing Activator Added section Play 2.6 will drop support for Activator to transcript
2017-03-11   Updated all sample code to Play Framework 2.5.12
2016-09-14 Forms, Fields, Mappings and Constraints Added a discussion of picking up multiple values from a form
2016-08-27 Testing Play for Scala Applications Added section Comparing the play.modules Configuration Object with GuiceApplicationBuilder Parameters to transcript
2016-08-12 Configuration Showed how to use playGenerateSecret
2016-08-12 Deploying Play Applications Updated to sbt-native-packager 1.1.4 and Play 2.5.4
2016-08-09 Guice Providers, @Named and Exercise Added sections Guice's Automatically Created Default Provider and Untargeted Bindings
2016-07-24 Standard Filters and Filter Chains Enhanced the SecurityHeadersFilter section in the transcript
2016-07-22 Configuration Added Checking Combined Configuration File section to transcript
2016-07-17   Updated code examples in git repo to SBT 0.3.12
2016-07-17 Twirl View Templates Added section Twirl File Type Examples, which shows working examples of .scala.txt, .scala.xml and .scala.js Twirl templates
2016-07-15 A Closer Look at Google Guice Reworded step 1 of first example in transcript
2016-07-07 Introducing Play-JSON Published video
2016-07-06 Guice Providers, @Named and Exercise Published video
2016-07-05 A Closer Look at Google Guice Published video
2016-07-04 Using Google Guice for Dependency Injection Published video
2016-07-03 A Closer Look at Google Guice Hived from Using Google Guice for Dependency Injection.
2016-07-01 Play Logging Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Internationalization and Localization Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Body Parsers Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Plain Old Scala View Templates Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Twirl View Templates Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Reverse Routes Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Routes and Dispatching to Controllers Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Working on Play Projects with IntelliJ IDEA Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Play 2 Controllers Added information about play.api.Application
2016-06-30 Custom Filters Published video
2016-06-30 Standard Filters and Filter Chains Published video
2016-06-29 Play Framework Overview Updated overview diagram to include filters
2016-06-29 Custom Filters Hived from Filters lecture
2016-06-29 Example Play for Scala Tests Published video
2016-06-28 Play Logging Published video
2016-06-27 Testing Play for Scala Applications Published video
2016-06-26 Guice Providers, @Named and Exercise Published transcript and solution to new exercise
2016-06-25 Configuration Published video
2016-06-24 CRUD Webapp Walkthrough Updated video to match sample code, which now uses dependency injection
2016-06-24 Twirl Form Helpers Updated Controller Setup for Views Containing Twirl Input Helpers section for dependency injection and republished video
2016-06-24 Internationalization and Localization Added Play's I18N Settings in HOCON Files are Backwards section and rewrote lecture for dependency injection. Republished 25% longer video.
2016-06-23 Play Framework REPL & Tools Updated the incantation for fakeApp.repl so it provides an implicit Application without generating warnings
2016-06-23 WebJars Updated to match sample code and republished video
2016-06-22 Plain Old Scala View Templates Updated video to match transcript and sample code
2016-06-22 Twirl View Templates Updated transcript to match sample code and republished video
2016-06-21 Mitigating the Impact of API Churn on Tests Hived this lecture from the Testing Play for Scala Applications lecture
2016-06-21 Example Play for Scala Tests Hived this lecture from the Testing Play for Scala Applications lecture
2016-06-20 Testing Play for Scala Applications Updated all unit tests and transcript to Play 2.5.4 & scalatestplus-play 1.5.1
2016-06-18 Play Logging Published transcript
2016-06-18 Reverse Routes Added section Redefining IDEA's Classpath to Include Generated Source and republished video
2016-06-17 Play 2 Controllers Republished video
2016-06-17 Routes and Dispatching to Controllers Update transcript to Play 2.5.4 and republished video
2016-06-17 Working on Play Projects with IDEs Updated to Play 2.5.4 and republished video
2016-06-16 Standard Files and Directories and Improved Template Updated to Play 2.5.4 and republished video
2016-06-15 Using Activator Updated to Activator 1.3.10 and republished video
2016-06-14 Installing Activator Updated video
2016-06-14 Configuration Updated to Play 2.5.4
2016-06-14 Filters Updated to Play 2.5.4 using dependency injection
2016-06-14 Play Framework Overview Added Other Resources section and updated video
2016-06-10 WebJars Updated versions mentioned in the lecture; a very minor change, so the video won't be updated to reflect these changes
2016-06-10 Reverse Routes Small changes throughout; Activator 1.3.6 renamed Application to HomeController.
2016-06-10 Play 2 Controllers Updated the Controller objects vs. Controller classes and The Sample Controller sections to include dependency injection for Play 2.5.4
2016-06-10 Routes and Dispatching to Controllers Updated code example for the Unmatched Requests section
2016-06-10   Updated all code examples to Play 2.5.4
2016-06-09 Briefly: Using Google Guice for Dependency Injection Wrote initial transcript
2016-06-09   Updated all sample code in git repository to Play 2.5.3; fully utilizes dependency injection
2016-06-08 Standard Files and Directories and Improved Template Updated transcript to Play 2.5.3
2016-06-06 Twirl View Templates Added mention of Twirl v1.2.0
2016-06-06 Plain Old Scala View Templates Added additional use cases for Plain Old Scala view templates
2016-05-27 Standard Files and Directories and Improved Template Added information on suppressing the Play directory structure in favor of the standard SBT directory structure to transcript
2016-05-09 Forms, Fields, Mappings and Constraints Added new section about Fields to transcript
2016-04-23 Standard Files and Directories and Improved Template Updated transcript to Play 2.5.2
2016-03-13 Standard Files and Directories and Improved Template Moved the Examining Dependencies section to the end of the SBT Tasks and Settings transcript of the Introduction to Scala course
2016-03-13 Using Activator Changed references from Typesafe (the company name) to Lightbend
2016-03-13 Play Framework Overview Added A Word About Play Framework Documentation section
2016-02-11 Installing Activator Updated video
2015-12-05 Working on Play Projects with IntelliJ IDEA Added information about enabling debugging when launching an SBT task
2015-11-30 Plain Old Scala View Templates Updated video
2015-11-30 Using Activator Republished video
2015-11-10 Installing Typesafe Activator Added section to transcript: Optional: Install Node.js
2015-10-25 Standard Files and Directories and Improved Template Added SBT MetaProject Dependencies section
2015-10-08 Working on Play Projects with Scala-IDE Updated to Play 2.4.3, Activator 1.3.6 and Scala-IDE 4.2.0, and published video
2015-10-06 Redirects Tweaked transcript and published video
2015-10-05 Reverse Routes Published video
2015-10-04 CRUD Example Updated transcript and published video
2015-10-01 Internationalization and Localization Published video
2015-09-30 Deploying Play Applications Published video
2015-09-17 Play Framework Overview Updated transcript and republished video
2015-09-03 Installing Typesafe Activator Updated activator installation script
2015-08-30 Deploying Play Applications First published transcript
2015-08-28 Plain Old Scala View Templates Added section The include Template Needs Enhancing For Deployment
2015-08-25 Twirl Form Helpers Updated and published video
2015-08-21 Forms, Fields, Mappings and Constraints Updated transcript and published video
2015-08-18 Define and Persist Model Updated transcript and published video
2015-08-13 Body Parsers Updated and published video
2015-08-12 Standard Files and Directories and Improved Template Updated to Anorm 2.5
2015-08-07 WebJars Updated transcript and published video
2015-08-06 Plain Old Scala View Templates Published video
2015-07-31 Plain Old Scala View Templates Hived from the Twirl View Templates lecture
2015-07-31 Redirect Flashing Hived from the Twirl View Templates lecture and updated to Play 2.4.2
2015-07-30 Routes and Dispatching to Controllers Updated transcript and published video
2015-07-28 Reverse Routes Hived from Routes and Dispatching to Controllers
2015-07-04   Updated code examples to Play 2.4.2
2015-07-03 Debugging Play Applications Deployed to Heroku Lecture is no longer free
2015-06-24   Updated all project except json to Scala 2.11.7 and Play 2.4.1 (awaiting Macro Paradise compiler plugin for json)
2015-06-23 Working on Play Projects with IDEs Updated to Play 2.4 and published video.
2015-06-22 Play Framework Tools Updated to Play 2.4, added the Running the Play Web Application From the SBT Console section and published video
2015-06-21 Twirl and Plain Old Scala View Templates Added TemplateMagic section
2015-06-12 Using Activator Updated content and published video.
2015-06-10 JSON Writes, Formats and Combinator DSL First published this transcript
2015-06-07 JSON Paths and Reads Added sample code showing how kifi/json works with custom Reads.
2015-06-07 Introducing Play-JSON Added a section on the kifi/json annotation macro
2015-05-29 JSON Paths and Reads Published transcript
2015-05-29 Introducing Play-JSON Published transcript
2015-05-28 All Updated to Play 2.4.0
2015-05-06 Twirl Form Helpers First published transcript
2015-05-05 Ajax Example: Separate JavaScript and Twirl Hived from Ajax Example: JavaScript Embedded in Twirl
2015-05-01 Ajax Example: JavaScript Embedded in Twirl First published transcript
2015-04-25 Forms, Fields, Mappings and Constraints First published transcript
2015-04-24 Define and Persist Model First published transcript
2015-04-21 Twirl and Plain Old Scala View Templates Updated to Play 2.3.8
2015-04-21 Play 2 Controllers Updated to Play 2.3.8
2015-04-21 Play Framework Tools Updated IntelliJ IDEA info for v14
2015-04-21 Standard Files and Directories Enhanced with new information and updated to Play 2.3.8
2015-04-21 Creating a New Play Framework v2.2 Application Deleted obsolete lecture, moved any relevant information to other lectures
2015-04-21 Using Activator Updated to Play 2.4.
2015-04-21 Routes and Dispatching to Controllers Completed transcript, up to date with Play 2.4.
2015-04-21 Body Parsers Completed transcript
2015-04-11 Using Activator Added Copyright section to transcript
2014-12-07   Updated courseNotes code to Play 2.3.7
2014-11-28 Debugging JVM Programs on Heroku Wrote lecture transcript
2014-09-06 Installing Typesafe Activator Released video, updated scripts and transcript
2014-09-05 Installing Typesafe Activator Provided Activator min/max installation script (1MB vs 400MB download)
2014-09-04 Using Activator for Play Added more scripts and provided information on how to use them
2014-09-03 Standard Files and Directories Hived this lecture from the Using Activator for Play lecture
2014-09-03 Play Framework Tools Split this lecture out
2014-09-03 Creating a New Play Framework v2.2 Application De-emphasized this lecture
2014-09-03 Using Activator for Play Started writing this lecture
2014-09-03 Installing Activator Started writing this lecture
2014-08-15 Creating a New Play Application Updated the Play Framework Tools for Chrome and IntelliJ IDEA section
2014-06-29 Configuration Lecture transcript written, shows how the various configuration files work together
2014-06-22   Updated brew install incantation in this page.
2014-04-30 Content Delivery Networks Added new lecture transcript.
2014-04-27 WebJars Added new lecture transcript.
2014-04-25 Performance Added new lecture transcript.
2014-04-08 Play Framework Overview Published video.
     
     
2014-03-14   Early Access Program begins.
Price: $495usd
Instructor(s):