Adding support for frameworks and technologies

Overview

You can extend capabilities of a module
by adding support for various development frameworks, technologies and languages.
(Hereafter, the word frameworks is used to refer also to the technologies and languages.)
As a result, depending on the framework, IntelliJ IDEA may:

Download the framework implementation files, arrange those files in a library, and
add that library to the dependencies of the module.

Create a sample class or application as well as
framework configuration and application deployment descriptor files.

Add framework-specific coding assistance features to the editor.

Create a facet for specifying how the framework is used in the module.

Facets

Some frameworks need to be configured.
For such frameworks, IntelliJ IDEA provide facets.

A facet is part of the UI that lets you specify framework-specific settings for a module.

Usually, facets have the same names as the corresponding frameworks.
For example, a facet for the Spring framework would be called a Spring facet.

Adding support for a framework

You can add support for a framework:

When creating a project or module
(File | New | Project or File | New | Module).
On the first page of the New Project or the New Module wizard,
the frameworks are shown as options under Additional Libraries and Frameworks.

For an existing module:

In the Project tool window
(View | Tool Windows | Project):
right-click the module folder and select Add Framework Support.
Then select the framework(s) in the Add Frameworks Support dialog.

Specifying framework settings

To specify the settings for an enabled configurable framework
(one that has a facet),
open the Project Structure dialog,
select Modules or Facets, and then select the framework (the facet).

Modules. In this section, facets are shown as module elements.

Facets.
In this section,
facets that pertain to the same framework appear as elements of that framework.

For certain facet types (frameworks) there may be default settings and also
the settings that can be applied to all facets of a type at once.
To check if there are such settings for a framework,
select the framework (i.e. the facet group name).

Adding support for auto-detected frameworks

IntelliJ IDEA can guess that you are using a framework.
If it finds a file or a directory typical of a certain framework
(the corresponding checks are performed when you reopen your project),
you get a notification looking similar to this:

By clicking Configure, you can start adding support for the detected framework(s).

This task can also be initiated from within
the Event Log tool window (View | Tool Windows | Event Log),
which will contain a similar notification message.

Once you have enabled an auto-detected framework,
look at the framework settings (if available) and make the necessary adjustments.

Excluding frameworks from auto-detection

By default, auto-detection is enabled for all the supported frameworks.
If necessary,
you can disable framework auto-detection completely or
exclude individual frameworks from auto-detection.
The exclusion can be project-wide or limited to a certain directory.

To access the framework detection settings,
open the Project Structure dialog, select Facets, and then
select Detection.