Package org.springframework.core.env

# Interface Profiles

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface Profiles
Profile predicate that may be accepted by an `Environment`.

May be implemented directly or, more usually, created using the `of(...)` factory method.

Since:
  5.1
Author:
  Phillip Webb, Sam Brannen
See Also:
  - `Environment.acceptsProfiles(Profiles)`
  - `Environment.matchesProfiles(String...)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`matches(Predicate<String> isProfileActive)`
Test if this `Profiles` instance matches against the given predicate.
`static Profiles`
`of(String... profileExpressions)`
Create a new `Profiles` instance that checks for matches against the given profile expressions.

## Method Details

### matches

boolean matches(Predicate<String> isProfileActive)
Test if this `Profiles` instance matches against the given predicate.

Parameters:
  `isProfileActive` - a predicate that tests whether a given profile is currently active

### of

static Profiles of(String... profileExpressions)
Create a new `Profiles` instance that checks for matches against the given profile expressions.

The returned instance will match if any one of the given profile expressions matches.

A profile expression may contain a simple profile name (for example `"production"`) or a compound expression. A compound expression allows for more complicated profile logic to be expressed, for example `"production & cloud"`.

The following operators are supported in profile expressions.

- `!` - A logical NOT of the profile name or compound expression
- `&` - A logical AND of the profile names or compound expressions
- `|` - A logical OR of the profile names or compound expressions

Please note that the `&` and `|` operators may not be mixed without using parentheses. For example, `"a & b | c"` is not a valid expression: it must be expressed as `"(a & b) | c"` or `"a & (b | c)"`.

Two `Profiles` instances returned by this method are considered equivalent to each other (in terms of `equals()` and `hashCode()` semantics) if they are created with identical profile expressions.

Parameters:
  `profileExpressions` - the profile expressions to include
Returns:
  a new `Profiles` instance