Successfully reported this slideshow.

Weld lightningtalk - Know IT Iceland 2010

0

Share

Upcoming SlideShare
Cdi demo
Cdi demo
Loading in …3
×
1 of 17
1 of 17

More Related Content

Weld lightningtalk - Know IT Iceland 2010

  1. 1. Weld Ken Gullaksen & Jon Vassbø
  2. 2. Producers <ul><li>Producer methods </li></ul><ul><ul><li>Kilde for objekt som skal injectes (må ikke være fra bean) </li></ul></ul><ul><ul><li>Objekttypen kan variere runtime </li></ul></ul><ul><ul><li>Objekt trenger spesiell initialisering som ikke bean constructor tar seg av </li></ul></ul><ul><li>Gir mulighet til </li></ul><ul><ul><li>Tilgjengeliggjøre JPA entitet som bean </li></ul></ul><ul><ul><li>Tilgjengeliggjøre hvilken som helst JDK klasse som bean </li></ul></ul><ul><ul><li>Definere flere beansmed forskjellig scope eller initialisering for samme implementasjonsklasse </li></ul></ul><ul><ul><li>Variere implementasjon av bean runtime </li></ul></ul>
  3. 3. Producers
  4. 4. Producers
  5. 5. Producers
  6. 6. Feil man vil støte på <ul><li>Unsatisfied Dependency : har ikke tilgjengeliggjort det du prøver å injisere </li></ul><ul><li>Injection point has unstatisfied dependencies. Injection point: field no.knowit.welders.spotiweld.SpotifyWeb.user; Qualifiers: [] </li></ul><ul><li>Ambigous Dependency : har for mange bønner tilgjengeliggjort </li></ul><ul><li>Injection point has ambiguous dependencies. Injection point: field no.knowit.welders.spotiweld.SpotifyWeb.user; Qualifiers: []; Possible dependencies: org.jboss.weld.bean-flat-ProducerMethod-no.knowit.welders.spotiweld.producers.FacesContextProducer.getUser2(), org.jboss.weld.bean-flat-ProducerMethod-no.knowit.welders.spotiweld.producers.FacesContextProducer.getUser1() </li></ul>
  7. 7. Qualifiers <ul><li>Løser Ambigous Depepency </li></ul><ul><li>Tilgang til InjectionPoint Metadata </li></ul>
  8. 8. Qualifers
  9. 9. Qualifers
  10. 10. Interceptors <ul><li>Basert på Java Interceptor spec </li></ul><ul><li>Mer sofistikert, semantisk, annotasjonsbasert tilnærming </li></ul><ul><li>Business method interception </li></ul><ul><li>Lifecycle callback interception </li></ul><ul><li>Timeout method interception (EJB) </li></ul>
  11. 11. Decorators <ul><li>Fungerer som en Interceptor, men snapper kun opp invokeringer fra ett bestemt interface </li></ul><ul><li>Er en bean (kan være abstract) som implementerer metodene fra interfacet den skal snappe opp kall fra </li></ul>
  12. 12. Events <ul><li>Event observe pattern </li></ul><ul><li>Typesafe </li></ul>
  13. 13. Events <ul><li>Kan brukes med Qualifers </li></ul>
  14. 14. Stereotypes <ul><li>Kan lage egne stereotype annotasjoner, for å forenkle annotasjon på beans </li></ul>
  15. 15. Java EE <ul><li>Hvordan passer Weld sammen med andre Java EE 6 teknologier </li></ul><ul><li>Weld sammen med Servlet 3 </li></ul><ul><ul><li>From Real Wordl Java EE Patterns </li></ul></ul><ul><ul><li>Servlets are stateless, pooled components, so the Dependency Injection here is only limited to the stateless session beans. The injection of a stateful session bean into a Servlet would make it sharable across different browers. Even worse, the stateful session bean would be accessed concurrently, which is not allowed and would result in the exception javax.ejb.ConcurrentAccessException </li></ul></ul><ul><li>Weld to the rescue! (Weld reference) </li></ul><ul><ul><li>Since instances of servlets are shared across all incoming threads, the bean client proxy takes care of routing method invocations from the servlet to the correct instances of Credentials and Login for the current request and HTTP session. </li></ul></ul>
  16. 16. Java EE
  17. 17. Java EE

Editor's Notes

  • 10-03-11
  • ×