Java Spring Boot Full Stack
Java Spring Boot Full
Stack
INTRODUCTION
The platform, originally developed in 1991 by Sun Microsystems - for interactive cable television, known as “Java” modified over the span of 29 years to become one of the most powerful and practiced full stack technology by open-source programming world.
Technology giants like Facebook (React.js) and Netflix (Restful Microservices) are few to mention among the beneficiaries of Java Spring boot full stack.
Memory efficiency, re-usability, entities binding, maven dependencies, micro-services architecture , dependency-injection and spring security are among the salient features of Java Spring-boot full stack. It may be used for enterprise level application development due to its flexibility and ability to accept rapidly growing development changes. [1]
Java Spring
Boot full stack discussed in this report will compromise of following
architecture [2]:
Frontend will comprise of JavaScript based technologies
because they offer memory efficient front end , open-source libraries and
smooth connectivity with backend that may run over various platforms. React
Js is JavaScript library developed by Facebook and then open-sourced for
development improvement. It is fun to code and easy to bind with backed.
Backend comprises of Java Spring Boot in Maven based
project that is easy to bind/integrate any library or third party class in any
project. Microservices based architecture is light weight to code, reusable and
secure. Restful Application Program Interface ( Rest API) performs all the
communication between a database and programming language.
Oracle Database provides high integrity of data storage and enables smooth connectivity with Java based development platforms in enterprise applications.
Database
Oracle Database is an efficient data storage with secure data access and high performance ability. Spring Boot application binds with a data source (Oracle) using an Oracle driver (Jdbc) and allows a user to automatically create Entities using database schema.
Spring boot
provides object-relational mapping that is similar to entity framework.
Entities are generated and Repositories (JPA Repositories) are formed to
perform (SQL operations CRUD). Repositories are interface that by default offer
coding logic for performing Create, Read, Update or Delete (CRUD) operation on
a table/view.
A comparison of
databases is as following:
Which is Better – MySQL or SQL Server? |
Which is Better –Mongo Db or Oracle? |
Both the
technologies work on the concept of storing data as per schema (table
storage). MySQL is inclined more towards selecting the data to facilitate
data display, update and save the data again. It is a bit weaker than SQL
Server in terms of data insertion and deletion. If you are a
large enterprise with massive data go with SQL Server. For individual
users and small to medium-sized companies where the amount of data and work
required is not that massive you can go with MySQL. |
Oracle is
definitely the top provider for data management services, when schema design
is not constantly changing. NoSQL databases are a great revolution, and they
provide a new way of data modeling and handling. For Enterprise
level application, when a database may face multiple hits, an operation may
be memory/processing costly thus Oracle is more suitable in extensive loaded
environments. |
·
SQL Server or
Oracle both may be used with Java Spring boot full stack because the xml
configurations are auto-generated and no extra line of code needs to be
written. Java Stack gives best experience when it is incorporated with Java
platforms and to cater Java Spring boot full stack for enterprise level
applications, we will prefer Oracle database.
Scaffoldings
Micro Service is an architecture that allows the developers to build and deploy services independently. Each service has its own function and this achieves lightweight model to support business applications. Spring Boot follows a layered architecture in which each layer communicates with the layer directly below or above (hierarchical structure) it.
A JPA repository
extends CRUD operations for an entity and reduces the effort of writing
extensive coding logic. Following are the sample functionalities that are
auto-generated using spring boot on a sample class named ‘user-resource’. The
default HTTP request methods shown are: GET , PUT, POST and DELETE.
To avoid complex XML configuration like in C#
full stack, spring-boot offers POM file using the spring.io maven dependencies
to include third party libraries without any hassle/ extra line of code. A
configuration sample is shown as below:
MVC / Project Architecture
A Restful Api
architectures allows a web request to communicate to a database. It takes the
request and returns the response after following processing:
·
Browser
/ Client requests to Restful Controller (controller contains URL mappings)
·
Controller
passes request to Service ( a request may contain information in head / body)
·
Service
takes the parameters, processes the data and passes information back to
Controller
·
Service
also communicates with Repository to access data or perform CRUD operations
·
Repository
is binding with Entity class, that offers some default data processing
operations
·
Entity
is auto-generated class that has same body like a database object i.e. table.
The above
lifecycle consumes auto-generated features of CRUD using spring boot. Entities
are auto-scaffolded with classes and cost of writing new code is reduced. Previously
mentioned lifecycle scaffolding / data binding with processing is shown as
below:
REACT JS Frontend
React is a
JavaScript library that specializes in helping developers build user
interfaces, or UIs. In terms of websites and web applications. It offers a
Virtual DOM to improve an application performance [5].
React
communication with spring boot application is as following:
Security
Spring Security
is a powerful and highly customizable authentication and access-control
framework. It is the de-facto standard for securing Spring-based applications.
Spring Security
is a framework that focuses on providing both authentication and authorization
to Java applications. Like all Spring projects, the real power of Spring
Security is found in how easily it can be extended to meet custom
requirements.[6]
Difference with ASP Core
Java full stack
is remarkably fast, at the expense of lots of memory usage, because it’s
compiled. Meaning it generates Java Virtual Machine (JVM) byte code, a machine
learning language that only the system can read. Java code may operate on variety
of operating system (Windows, Linux, OS) and it is known for its backward
compatibility. XML configurations are reduced and light weighted as compared to
ASP.NET stack.
C# Stack is
heavily tailored to Microsoft and it isn’t optimized for web development. It
may be preferred on projects requiring medium performance and lower open source
integrations. [3]
The
main disadvantages of ASP.NET is that its upkeep is
resource intensive. Additionally, ASP.NET uses far more web server
resources than Java, PHP or other languages, so it requires either extremely
better servers or a greater number of them.
While developing
a desktop based application with limited user base, ASP core may be a better
option. But when it comes to extensive web based application development that
will face hundreds of hits over the network, Java full stack is the best
solution.
Conclusion
Spring-boot, is a
flexible technology. Code can be written and added to an existing application
in a matter of hours. More importantly, it increasingly incorporates some
really advanced software techniques, such as aspect-oriented programming,
dependency injection, inversion of control, XML-based light configuration,
auto-wired objects, etc. As programmers, we ignore such trends at our peril.
An online poll
between the popularity of Java / ASP a showed, 85% of developers using Java
full stack for enterprise application development.[4]
References:
1.
https://careerkarma.com/blog/java-vs-c-sharp/
2.
https://www.diagrameditor.com/
3.
https://www.quora.com/Java-Spring-MVC-vs-C-ASP-NET-CORE-Which-one-should-I-learn-as-a-Full-Stack-developer
5.
https://medium.com/@akash54327/basic-concepts-to-know-about-frontend-development-using-reactjs-9f51900d7133
6.
https://spring.io/projects/spring-security
Bibliography:
Material consulted to write this report is:
2.
https://www.geeksforgeeks.org/introduction-to-spring-boot/
3.
https://docs.spring.io/spring-boot/docs/1.1.8.RELEASE/reference/htmlsingle/#howto-spring-mvc
4.
https://www.youtube.com/watch?v=729Pd-ZQ4uA
5.
https://www.youtube.com/watch?v=xkDBaldNki4
6.
https://www.youtube.com/watch?v=QloyS2dt9T4
7.
https://gist.github.com/Lakritzator/d395f76dafbd51b03533af968982ff92
You-tube
course consulted:
8.
https://www.youtube.com/watch?v=35EQXmHKZYs
Comments
Post a Comment