- Spring 5 Design Patterns
- Dinesh Rajput
- 306字
- 2021-07-08 09:59:25
Using the power of the POJO pattern
There are many other frameworks for Java development that lock you in by forcing you to extend or implement one of their existing classes or interfaces; Struts, Tapestry, and earlier versions of EJB had this approach. The programming model of these frameworks is based on the invasive model. This makes it harder for your code to find bugs in the system, and sometimes it will render your code unintelligible. However, if you are working with Spring Framework, you don't need to implement or extend its existing classes and interfaces, so this is simply POJO-based implementation, following a non-invasive programming model. It makes it easier for your code to find bugs in the system, and keeps the code understandable.
Spring allows you to do programming with very simple non Spring classes, which means there is no need to implement Spring-specific classes or interfaces, so all classes in the Spring-based application are simply POJOs. That means you can compile and run these files without dependency on Spring libraries; you cannot even recognize that these classes are being used by the Spring Framework. In Java-based configuration, you will use Spring annotations, which is the worst case of the Spring-based application.
Let's look at this with the help of the following example:
package com.packt.chapter1.spring; public class HelloWorld { public String hello() { return "Hello World"; } }
The preceding class is a simple POJO class with no special indication or implementation related to the framework to make it a Spring component. So this class could function equally well in a Spring application as it could in a non-Spring application. This is the beauty of Spring's non-invasive programming model. Another way that Spring empowers POJO is by collaborating with other POJOs using the DI pattern. Let's see how DI works to help decouple components.
- iOS Game Programming Cookbook
- Raspberry Pi for Python Programmers Cookbook(Second Edition)
- Spring 5.0 Microservices(Second Edition)
- Google Flutter Mobile Development Quick Start Guide
- Java面向?qū)ο筌浖_發(fā)
- Spring技術(shù)內(nèi)幕:深入解析Spring架構(gòu)與設(shè)計
- Magento 2 Theme Design(Second Edition)
- PowerCLI Cookbook
- JavaFX Essentials
- Android 9 Development Cookbook(Third Edition)
- Oracle Database 12c Security Cookbook
- MySQL數(shù)據(jù)庫管理與開發(fā)實(shí)踐教程 (清華電腦學(xué)堂)
- 小程序,巧運(yùn)營:微信小程序運(yùn)營招式大全
- jQuery開發(fā)基礎(chǔ)教程
- Jupyter數(shù)據(jù)科學(xué)實(shí)戰(zhàn)