Custom scopes

Creating a custom scope is usually the preserve of framework developers, but it can be beneficial for us to understand how they can be created as we may find the need to write one in the future.

To create a new pseudo scope we use the following code:

@Scope
@Retention(RUNTIME)
@Target( { METHOD, TYPE, FIELD } )
public @interface MyPseudoScope {}

But as it is unlikely that we will need to create a pseudo scope, the following is how to create a new normal scope:

@NormalScope
@Retention(RUNTIME)
@Target( { METHOD, TYPE, FIELD } )
public @interface MyNonPassivatingScope {}

As the default value for the passivating attribute on @NormalScope is false, we don't need to set it if we want to define a non-passivation capable scope.

Either of these ...

Get JBoss Weld CDI for Java Platform now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.