1 / 20

Spring core v3.x

Spring core v3.x. Prepared by: Nhan Le. History. Agenda. IoC vs DI IOC Container Validation, Data Binding & Type conversion Spring Expression Language Testing Spring AOP Cache Abstraction. IoC vs DI.

Download Presentation

Spring core v3.x

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Spring core v3.x Prepared by: Nhan Le

  2. History

  3. Agenda IoCvs DI IOC Container Validation, Data Binding & Type conversion Spring Expression Language Testing Spring AOP Cache Abstraction

  4. IoCvs DI Inversion of control is a design principle that it decouplesobjects from specific lookup mechanisms and implementations of the objects it depends on Dependency injection is a form of IoC, where removes hard-coded dependencies and make it possible to change them at Compile time or Run Time

  5. Advantages of IoC Reduce coupling Both constructor and setter dependency injection reduce coupling. Improves testability Replace actual object with mock object which improves testability by writing simple JUnit tests which uses mock object. Flexibility As side benefit of loose coupling, because of DI you can replace non effective implementation with better one later

  6. Dependencies • Dependency Injection • Constructor based • Setter based • Interface Injection • Dependency resolution process • Circular dependencies

  7. Dependencies type matching argument index argument name

  8. IOC Container The interface org.springframework.context.ApplicationContext represents the Spring IOC container and is responsible for instantiating, configuring, and assembling the beans by reading configuration metadata Configuration Metadata - XML based - Annotation based - Java based

  9. IOC – Bean Lifecycle

  10. <bean id="exampleBean" class="examples.ExampleBean"/> <bean id="exampleBean" class="examples.ExampleBean"/> IOC – Bean <bean id="exampleBean" class="examples.ExampleBean"/> • Naming beans • Id, name and alias • Instantiating beans • Constructor • Static factory • Method factory • Inner beans • Inject able? • Scope?

  11. Instantiating Beans Constructor Static Factory method Instance Factory method

  12. Inner Beans <bean id="exampleBean" class="examples.ExampleBean"/> • Can we inject Person class into others than outer class ? • Scope of Person class ? Can we change scope ?

  13. IOC – Bean • Lifecycle callbacks • @PostConstruct& @PreDestroy • InitializingBean & DisposableBean • Default initialization and destroy methods • Callback order

  14. IOC – Bean Aware interfaces

  15. Testing UserService{ @Inject private UserDAOuserDao; ...... public booleanauth(String user, String pass){ String encryptedPass = encrypt(pass); User user = userDao.find(user, encryptedPass); if (user != null){ return true; } return false; }

  16. Spring Expression Language ● Querying and manipulating an object graph at runtime ● Can be used independently ● Support implementation via • API • XML • Annotation

  17. AOP ● Aspect-Oriented Programming ● Spring AOP ● Schema-based VS @AspectJ annotation type

  18. AOP Concepts ● Aspect ● Join Point ● Advice ● Pointcut ● Introduction ● Target object ● AOP proxy ● Weaving

  19. AOP Type of advice • Before advice • After returning advice • After throwing advice • After (finally) advice • Around advice

  20. AOP • Pointcut types (Spring AOP) • execution @target • within @args • target @annotation • args @within

More Related