I'm using a hierarchy of classes and what I would optimally try to do is have @ManagedBean's that inherit a class that have @ManagedProperty members and @PostConstruct methods.
Specifically, will this work? :
public class A {
@ManagedProperty
private C c;
@PostConstruct
public void init() {
// Do some initialization stuff
}
public C getC() {
return c;
}
public void setC(C c) {
this.c = c;
}
}
@ManagedBean
@SessionScoped
public class B extends A {
// Content...
}
Thanks in Advance!
The
@ManagedPropertyis inherited and will just work that way. The@PostConstructwill also be inherited, provided that the subclass itself doesn't have a@PostConstructmethod. There can namely be only one. So if the subclass itself has a@PostConstruct, then the superclass' one won't be invoked.So if you override the
@PostConstructin the subclass, then you'd need to explicitly invoke the superclass' one.Alternatively, provide an abstract method which the subclass must implement (without
@PostConstruct!).