My JSF Books/Videos My JSF Tutorials OmniFaces/JSF PPTs
JSF 2.3 Tutorial
JSF Caching Tutorial
JSF Navigation Tutorial
JSF Scopes Tutorial
JSF Page Author Beginner's Guide
OmniFaces 2.3 Tutorial Examples
OmniFaces 2.2 Tutorial Examples
JSF Events Tutorial
OmniFaces Callbacks Usages
JSF State Tutorial
JSF and Design Patterns
JSF 2.3 New Features (2.3-m04)
Introduction to OmniFaces
25+ Reasons to use OmniFaces in JSF
OmniFaces Validators
OmniFaces Converters
JSF Design Patterns
Mastering OmniFaces
Reusable and less-verbose JSF code

My JSF Resources ...

Java EE Guardian
Member of JCG Program
Member MVB DZone
Blog curated on ZEEF
OmniFaces is an utility library for JSF, including PrimeFaces, RichFaces, ICEfaces ...

[OmniFaces Utilities] - Find the right JSF OmniFaces 2 utilities methods/functions

Search on blog

Petition by Java EE Guardians

Twitter

marți, 31 mai 2016

CDI-JSF: Use @Inject to annotate a common method of a bean

As you probably know, when a bean is instantiated the first called method is the corresponding constructor. Afterwards, we have the method annotated with @PostConstruct. When this method is called we say that the dependency injections is done and we can exploit the injected artifacts. By annotating a common method with @Inject, we basically instruct CDI to call this method also when the bean in instantiated. For example, the below initFooBuzzBizz() is called after the constructor, but before the @PostConstruct:

@Named
@RequestScoped
public class TheBean {

 private static final Logger LOG = Logger.getLogger(TheBean.class.getName());

 public TheBean() {
  LOG.info("TheBean#constructor called ...");
  Messages.addGlobalInfo("TheBean#constructor called ...");
 }

 @PostConstruct
 public void init() {
  LOG.info("TheBean#init() called ...");
  Messages.addGlobalInfo("TheBean#init() called ...");
 }

 public void callFooBuzzBizzAction() {
  LOG.info("TheBean#callFooBuzzBizz() called ...");
  Messages.addGlobalInfo("TheBean#callFooBuzzBizz() called ...");
 }

 @Inject
 private void initFooBuzzBizz(Foo foo, Buzz buzz, Bizz bizz) {
  LOG.info("TheBean#initFooBuzzBizz() called ...");
  Messages.addGlobalInfo("TheBean#initFooBuzzBizz() called ...");

  foo.fooify();
  buzz.buzzify();
  bizz.bizzify();
 }
}

The output will be:
  • TheBean#constructor called ...
  • TheBean#initFooBuzzBizz() called ...
  • Foo#fooify() called ...
  • Buzz#buzzify() called ...
  • Bizz#bizzify() called ...
  • TheBean#init() called ...
  • TheBean#callFooBuzzBizz() called ...
The complete example is available here,

Niciun comentariu :

Trimiteți un comentariu

JSF BOOKS COLLECTION

Postări populare

Follow by Email

Visitors Starting 4 September 2015

Locations of Site Visitors