| This example shows how to use the concept of CDI in a simple POJO context |
| |
| This functionality is often referred as dependency injection (see |
| http://www.martinfowler.com/articles/injection.html), and has been recently introduced in |
| Java EE 5. |
| |
| This example shows how the @Produces and @Disposes annotations work. A LogFactory creates an instance of the LogHandler |
| depending on a "type" attribute. For the purposes of this example, the type is hard-coded to a specific value. |
| A Logger implementation shall contain a list of LogHandlers. We shall have three implementations of the LogHandler interface. |
| |
| * A DatabaseHandler |
| * A FileHandler |
| * A ConsoleHandler |
| |
| The DatabaseHandler would seemingly write the logs to a database. The FileHandler would write the same logs to a file. |
| The ConsoleHandler would just print the logs to a console (Standard out). This example is just an illustration of how |
| the concepts within CDI work and is not intended to provide a logging framework design/implementation. |
| |