spring 3
play

Spring 3 Spring without XML Agenda Industry Forces Whats New - PowerPoint PPT Presentation

Spring 3 Spring without XML Agenda Industry Forces Whats New Spring 2.0 Spring 2.5 Spring Annotations Reducing Spring XML Spring Without XML! Industry Forces Annotations EJB 3.X JSR-250 Common


  1. Spring 3 Spring without XML

  2. Agenda  Industry Forces  What’s New – Spring 2.0 – Spring 2.5  Spring Annotations  Reducing Spring XML  Spring Without XML!

  3. Industry Forces  Annotations – EJB 3.X – JSR-250 Common Annotations – JSR-299 Web Beans  Guice / SEAM

  4. Spring Frustrations  Autowiring – Qualifiers  Long XML Files  Required Injections

  5. Tired of XML?

  6. @

  7. Industry Move to Annotations

  8. Commons Annotation @Resource @PreDestroy @PostConstruct

  9. EJB Annotation Commons @Resource @PreDestroy @PostConstruct

  10. @Home EJB Annotation Commons @SecurityRoles @Init @Resource @EJB @PreDestroy @MessageDriven @PostConstruct @MethodPermissions @Stateful @Interceptor @Inject @RunAs @Stateless @TransactionManagement @TransactionAttribute

  11. JPA Annotation Commons @Resource @PreDestroy @PostConstruct EJB @Home @RunAs @EJB @MethodPermissions @MessageDriven @Init @Interceptor @Stateful @TransactionManagement @Inject @TransactionAttribute @Stateless @SecurityRoles

  12. @Column JPA Annotation @JoinColumn @GeneratedValue Commons @Entity @Resource @PreDestroy @Table @PostConstruct @Version @Serialized EJB @Home @RunAs @OneToMany @EJB @MethodPermissions @MessageDriven @Init @OneToOne @Id @ManyToMany @Interceptor @Stateful @ManyToOne @TransactionManagement @Inject @AssociationTable @TransactionAttribute @Stateless @EmbeddedId @DisciminatorColumn @SecurityRoles @Transient

  13. JPA Annotation JPA Commons @Table @ManyToMany @Entity @Resource @Column @GeneratedValue @DisciminatorColumn @PreDestroy @OneToMany @JoinColumn @PostConstruct @AssociationTable @OneToOne @Version @EmbeddedId @Serialized @Id EJB @ManyToOne @Transient @Home @RunAs @EJB @MethodPermissions @MessageDriven @Init @Interceptor @Stateful @TransactionManagement @Inject @TransactionAttribute @Stateless @SecurityRoles

  14. Web Services @Resource @ManyToMany @PreDestroy @Table @WebServiceRef @DisciminatorColum @PostConstruct @Column @AssociationTable @WebServiceRefs @Home @OneToMany @MethodPermissions @EmbeddedId @EJB @Init @OneToOne @Transient @MessageDriven @Interceptor @Entity @TransactionManagement @ManyToOne @Stateful @GeneratedValue @TransactionAttribute @Inject @Id @JoinColumn @Stateless @Version @Serialized @SecurityRoles @RunAs

  15. Web Beans @New @Resource @Out @ManyToMany @PreDestroy @In @Table @DisciminatorColum @PostConstruct @Model @WebServiceRef @Column @WebServiceRefs @AssociationTable @SessionScoped @Home @OneToMany @MethodPermissions @Current @EmbeddedId @EJB @Init @LoggedIn @OneToOne @Transient @MessageDriven @Interceptor @Entity @Produces @TransactionManagement @ManyToOne @Stateful @GeneratedValue @TransactionAttribute @Interceptor @Inject @Id @JoinColumn @Secure @Stateless @Version @Decorator @Serialized @SecurityRoles @Synchronous @RunAs @Asynchronous

  16. Servlet 3 @New @WebServlet @Resource @Out @ServletFilter @ManyToMany @In @PreDestroy @InitParam @Table @DisciminatorColum @PostConstruct @WebServiceRef @Model @WebServletContextListenter @Column @WebServiceRefs @SessionScoped @AssociationTable @Home @OneToMany @MethodPermissions @Current @EmbeddedId @EJB @Init @LoggedIn @OneToOne @Transient @MessageDriven @Interceptor @Entity @Produces @TransactionManagement @ManyToOne @Stateful @Interceptor @GeneratedValue @TransactionAttribute @Inject @Id @JoinColumn @Secure @Stateless @Decorator @Version @Serialized @SecurityRoles @Synchronous @RunAs @Asynchronous

  17. JSR 303: Bean Validation @New @Resource @Out @ManyToMany @NotNull @In @PreDestroy @Table @ConstraintValidator @DisciminatorColum @PostConstruct @WebServiceRef @Model @Column @Length @WebServiceRefs @SessionScoped @AssociationTable @Home @OneToMany @Min @MethodPermissions @Current @EmbeddedId @EJB @Pattern @Init @LoggedIn @OneToOne @Transient @MessageDriven @Interceptor @Size @Entity @Produces @TransactionManagement @ManyToOne @Stateful @Valid @Interceptor @GeneratedValue @TransactionAttribute @Inject @ServletFilter @NotEmpty @Id @JoinColumn @WebServlet @Secure @Stateless @Decorator @Version @Serialized @WebServletContextLi @SecurityRoles @InitParam @Synchronous @RunAs @Asynchronous

  18. JSR 303: Bean Validation @New @NotNull @Resource @Out @ManyToMany @In @PreDestroy @Table @ConstraintValidator @DisciminatorColum @Length @PostConstruct @WebServiceRef @Model @Column @WebServiceRefs @SessionScoped @AssociationTable @Home @OneToMany @MethodPermissions @Min @Pattern @Current @EmbeddedId @EJB @Init @LoggedIn @OneToOne @Transient @MessageDriven @Interceptor @Size @Entity @Valid @Produces @TransactionManagement @ManyToOne @Stateful @Interceptor @GeneratedValue @TransactionAttribute @Inject @ServletFilter @Id @NotEmpty @JoinColumn @WebServlet @Secure @Stateless @Decorator @Version @Serialized @WebServletContextLi @SecurityRoles @InitParam @Synchronous @RunAs @Asynchronous

  19. JSR-299 Context and DI for Java  @NonBinding  @Realizes  @Named  @Initializer  @Stereotype  @New  @Interceptor  @Current  @InterceptorBindingType  @Production  @Decorator  @Standard  @Decorates  @Obtains  @ScopeType  @Initialized  @ApplicationScoped  @Deployed  @RequestScoped  @Observes  @SessionScoped  @IfExists  @ConverationScoped  @Asynchronously  @Dependent  @AfterTransactionCompletion  @BindingType  @AfterTransactionFailure  @DeploymentType  @AfterTransactionSuccess  @Produces  @BeforeTransactionCompletion  @Disposes  @Fires  @Specializes  @Model

  20. Annotation Frustrations  Not Mentioned  JMX 2.0  JAX-RS  JUnit 4 / TestNG  AOP frameworks  Spring

  21. Spring 3.0 – What’s New

  22. Spring 2.0  New Bean Scopes – httpSession  Easier XML Configuration – <jee:jndi-lookup id=" dataSource " jndi-name="jdbc/ MyDataSource"/>  Task Execution framework  Portlet MVC  Dynamic Language Support – Groovy – JRuby  Message-driven POJOs  AOP Enhancements – Includes @Aspect  JMX Annotation Support

  23. Spring 2.0 Benefits  Easier XML  Easier AOP  Movement toward Annotations and Java 5 Support

  24. Spring 2.5 – What’s New  More Reduction of XML – <context:* /> – <jms:* />  Significant Annotation Support – JSR 250 - @PostConstruct, @Resource… – JAX-WS 2.0’s - @WebServiceRef – EJB 3.0 - @EJB – MVC annotations - @RequestParam, @RequestMapping… – Test Enhancements - Junit 4.4 and TestNG – Stereotypes - @Component, @Controller… – Spring enhancements - @Autowired, – AOP - @Configurable

  25. Spring 2.5 What’s New (Cont.)  AOP Point Cut – Bean Point Cut – AspectJ load-time weaving **  Auto-Detection of Components on Classpath – In combination with Annotations…  OpenJPA 1.0 support with SavePoints  Web Standards Updates – Tiles 2 – JSF 1.2  Autowiring of JRuby  JMX Configuration Enhancements – <context:mbean-export />

  26. Spring 2.5 Notes  Removed from Spring – JDK 1.3 Support – Hibernate 2.1 and 3.0 Support (Must be Hibernate 3.1+) – IBATIS SQL Maps 1.3 – Apache OJB – JDO 1.0 Support  Jar Changes – Spring-webmvc.jar and spring-webmvc-portlet.jar • MVC must use these jars for DispatcherServlet – No longer in spring.jar  WebSphere and BEA Support – JTA Detection

  27. Biggest Spring 2.5 Benefits  Easier Configuration – Easier XML – Auto-detection – Annotations – Fine Grain Autowiring  Amazing AOP Support

  28. Spring 3.0 What’s New  Java 5  Spring EL  @MVC enhancements  @REST  @Portal 2.0 (JSR-286 support)  Validation – JSR-303  Early Support – JSF 2.0, JPA 2.0, JMX 2.0 26

  29. Biggest Spring 3.0 Benefits  Easier Configuration – Easier XML – Auto-detection – Annotations – Fine Grain Autowiring  Amazing AOP Support

  30. Spring Annotations

  31. Spring Annotations  Spring 2.x Data Access Annotations  Spring 2.x Aspects  Spring 2.5 Context Annotations  Spring 2.5 Stereotypes  Spring 2.5 Factory Annotations  JSR-250 javax.annotations  Spring 2.5 MVC Annotations  Spring 3.0 MVC Additions  Spring 3.0 Annotations

  32. Spring 2.x Data Access Annotations  @Transactional – Provides annotation driven demarcation for transactions  @Repository – Indicates that a class functions as a repository or a data access object (DAO) – Exceptions are transparently translated • Springs DataAccessException Hierarchy

  33. Spring 2.x Aspects @Aspect public class TraceLogger { private static final Logger LOG = Logger.getLogger(TraceLogger.class); @Pointcut("execution(* com.cmentor.*Service(..))") public void serviceInvocation() { } @Before(" serviceInvocation()") public void log(JoinPoint joinPoint) { LOG.info("Before calling " + joinPoint.getSignature().getName() + " with argument " + joinPoint.getArgs()[0]); } }  Requires: <aop:aspectj-autoproxy />

Recommend


More recommend