Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Eclipse4/RCP/EAS/Obtaining Services"
(New page: The services are set by the dependency injection framework when your objects gets instantiated (or explicitly injected). The services that should be injected can be marked by the <tt>@Inje...) |
|||
Line 1: | Line 1: | ||
− | The services are set by the dependency injection framework when your objects gets instantiated (or explicitly injected) | + | The services are set by the dependency injection framework when your objects gets instantiated (or explicitly injected). |
+ | ==Injection of objects== | ||
+ | The services that should be injected can be marked by the <tt>@Inject</tt> annotation. | ||
+ | |||
+ | ===Fields=== | ||
<source lang="java"> | <source lang="java"> | ||
public class AccountsPart { | public class AccountsPart { | ||
@Inject | @Inject | ||
private Logger logger; | private Logger logger; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | ===Methods=== | ||
+ | <source lang="java"> | ||
+ | public class AccountsPart { | ||
+ | private Logger logger; | ||
+ | |||
+ | @Inject | ||
+ | void setLogger(Logger logger) { | ||
+ | this.logger = logger; | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | ==Injection for method invocation== | ||
+ | Here is an example of a handler's method being invoked by the framework with its parameters being provided through dependency injection. | ||
+ | |||
+ | <source lang="java"> | ||
+ | public class ShowPartHandler { | ||
+ | @Execute | ||
+ | void execute(EPartService partService) { | ||
+ | String partId = /* retrieve the desired id */; | ||
+ | partService.showPart(partId, EPartService.PartState.ACTIVATE); | ||
+ | } | ||
} | } | ||
</source> | </source> |
Revision as of 21:57, 11 April 2011
The services are set by the dependency injection framework when your objects gets instantiated (or explicitly injected).
Injection of objects
The services that should be injected can be marked by the @Inject annotation.
Fields
public class AccountsPart { @Inject private Logger logger; }
Methods
public class AccountsPart { private Logger logger; @Inject void setLogger(Logger logger) { this.logger = logger; } }
Injection for method invocation
Here is an example of a handler's method being invoked by the framework with its parameters being provided through dependency injection.
public class ShowPartHandler { @Execute void execute(EPartService partService) { String partId = /* retrieve the desired id */; partService.showPart(partId, EPartService.PartState.ACTIVATE); } }