A hands-on guide to create, monitor, and tune a high performing Spring web application
Key Features
- Understand the common performance pitfalls and improve the performance of your application
- Get to grips with multithreading and concurrency with Spring
- Build and deploy strategies for large and complex applications with the help of microservices architecture
Book Description
While writing an application, performance is paramount. Performance tuning for real-world applications often involves activities geared toward finding bottlenecks; however, this alone cannot solve the dreaded problem of slow code. The recent release of Spring 5.0 brings along some major advancement in the rich API provided by the Spring framework and thus creating a need for developers to master the tools and techniques to achieve high performing applications. If you want to improve the speed of your code and optimize the performance of your apps, then this book is for you.
The mission of this book is to expose developers to application monitoring and performance tuning to achieve high performing applications. It starts with providing basic understanding of the core features of Spring framework, briefly outlining the Spring modules, and explores the integration of different Spring projects with clear explanation of Spring IoC container. It then proceeds to evaluate the various specifications of Spring to identify those affecting performance adversely. It will help you identify bottlenecks in Spring programming and highlight common performance pitfalls along with strategies to detect and resolve these issues early. You will learn about bean wiring configuration, aspect-oriented programming, database interaction, and Hibernate to help us zero down on the metrics to be used that help in identifying the performance bottlenecks. Gradually, we look at techniques that help us achieve high performance: scaling, multithreading, concurrent programming, and caching. We will also look at application monitoring, performance optimization, JVM internals, and garbage collection optimization. Lastly, the book will show you how to leverage microservices architecture to build a high performing application and secure and implement resilience in your applications.
By the end of the book, you will gain an insight into the various techniques and solutions to build high performing Spring-based applications and tackle any problem that you might encounter while working on Spring-based application.
What You Will Learn
- Understand the best programming practices and performance improvement with Bean Wiring
- Analyze the performance of various AOP implementations and learn how AOP can be used for performance profiling a Spring application
- Explore database interaction with Spring to optimize design and configuration
- Solve Hibernate performance issues and traps
- Leverage multithreading and concurrent programming for improved application performance
- Gain a solid foundation on JVM performance tuning using various tools
- Learn key concepts of microservice architecture and how to monitor them
- Spring Boot performance tuning, monitoring, and health check
Who This Book Is For
This book is suitable for Spring developers who would like to build high performance applications and have a better control over their application's performance in production and development. This book requires developers to have some familiarity with Java, Maven, and Eclipse.
Chintan Mehta is a cofounder of KNOWARTH Technologies and heads the cloud/RIMS/DevOps team. He has rich, progressive experience in server administration of Linux, AWS Cloud, DevOps, and RIMS, and server administration on open source technologies. He is also an AWS Certified Solutions Architect.
Chintan has authored MySQL 8 for BigData, Mastering Apache Solr 7.x, MySQL 8 Administrator's Guide, and Hadoop Backup and Recovery Solutions, and has reviewed Liferay Portal Performance Best Practices and Building Serverless Web Applications.
Subhash Shah works as a Principal Consultant at KNOWARTH Technologies. He holds a degree in Information Technology from HNGU. He is experienced in developing web-based solutions using various software platforms. He is strong advocate of open source software development and its use by businesses to reduce risk and costs. His interests include designing sustainable software solutions. His technical skills include requirement analysis, architecture design, project delivery, application setup, and execution processes. He admires quality code and test-driven development.
Pritesh Shah plays a role of Solution Architect at CentralBOS LLC. Pritesh is responsible for integrating technologies with best practices to translate business requirements into business change. He holds a degree in Computer Engineering from Dharmsinh Desai University.
He is a solution architect with over 9 years of experience in developing solutions to business problems based on various platforms and technologies. His expertise lies in and not limited to designing, developing, deploying and testing N-tier applications and leading teams. He has strong focus on clean code and testability. He is very good in debugging the problems and finds best solution out of it. He is open source enthusiast and contributes to open source projects. Pritesh believes in constant improvement by quickly adapting new technologies that fits in building solutions.
Prashant Goswami works as a Senior Consultant at KNOWARTH Technologies and takes care of enterprise projects with regards to software design and development, deployment and building processes to provide customers with affordable software solutions. He holds a master degree in Computer Applications from GTU. He has quick adaptability to any technology with keen desire for constant improvement. Prashant has proven experience in working with various technologies in web application development, design patterns, enterprise architecture, and open source technologies.