Logging is a common and important requirement for running applications in production. Spring Boot provides great support for application logging out of the box and offers various customization options. In this tutorial, you will learn how to implement logging in your Spring Boot application using Logback and Log4j2. Getting Started with Spring Boot If you are new to Spring Boot, refer Getting Started with Spring Boot tutorial to learn how to create a Spring Boot project.
Continue reading »Spring Boot Application Configuration Tutorial
In the previous Spring Boot Testing Tutorial, we have learned how to write unit, slice and integration tests for a Spring Boot application. In this tutorial, you will learn how to configure your Spring Boot application using properties and YAML files for running the application in different environments. Externalizing Spring Boot Application Configuration Any non-trivial application will have some configuration that you would like to make it configurable instead of hard-coding those values in the application code.
Continue reading »Spring Boot Testing Tutorial
In the previous Getting Started with Spring Boot tutorial, we have learned how to create a Spring Boot application and built a simple REST API. In this tutorial, you will learn how to write unit, slice and integration tests for your Spring Boot application. Testing Spring Boot applications We should write Unit Tests to verify the business logic of a particular unit(a class, a method, or a set of classes), and they shouldn’t be talking to any external services like database, queues or other webservices etc.
Continue reading »SivaLabs Weekly Newsletter - 2023, Week 29
What I Learned This Week If you are thinking of what is a better way to structure your code, then I highly recommend watching Facts and Myths about CQRS • Oskar Dudycz • Devoxx Poland 2023 talk. I have updated my blog to make it easy to read posts and optimized CSS/JS to make it a bit faster. Along the way, I learned some new features of Hugo such as including Table of Contents, opening external links in a new tab, etc.
Continue reading »Getting Started with Spring Boot
Introducing Spring Boot Spring Boot is the most popular framework for building applications in the Java world. Spring Boot is an Opinionated and Convention Over Configuration based approach to building Spring framework based applications. Using Spring Boot, you can build different kinds of applications such as monolithic applications, microservices, serverless applications, Batch applications, etc. Let us take a quick look at what are the key features of Spring Boot that make it so popular.
Continue reading »Creating a Blog using Hugo, Asciidoc, and Netlify
In this tutorial, I will explain the process for setting up a blog using the static site generator Hugo, writing content using Markdown and Asciidoctor, and deploy on Netlify. Why should you have a blog? For a software developer, having a well-maintained blog opens up a lot of opportunities. First of all, you can write down your learnings and keep it as a quick reference for yourself. But, having a blog with quality content brings lots of opportunities, such as:
Continue reading »SivaLabs Weekly Newsletter - 2023, Week 28
What I Learned This Week I have published Tomato Architecture - A Pragmatic Approach to Software Design article sharing my thoughts around how to build an application without over-engineering it. I have shared My Thoughts on DevOps, Platform Engineering, and FullStack Developer talking about the challenges of being a Fullstack Developer. Published a video on Testing AWS Service Integrations using LocalStack and Testcontainers Tom Hombergs published the 2nd Edition of Get Your Hands Dirty on Clean Architecture: Build ‘clean’ applications with code examples in Java book which I highly recommend to read.
Continue reading »My Thoughts on DevOps, Platform Engineering, and FullStack Developer
In the software development world, once in a while a new ideology or process or technology will be introduced. And, the whole developer community goes crazy on that shiny new stuff. A decade ago it was Agile/Scrum, then DevOps, then SRE and now Platform Engineering. Somehow, I got curious about what is all the fuss about Platform engineering and read a bit about it, and I felt “Oh, people realized that DevOps is a good idea but impractical, and they are correcting it now”.
Continue reading »Tomato Architecture - A Pragmatic Approach to Software Design
After a couple of years into software development, I wanted to improve my skills by learning more about Software Architecture and Design. As you might guess, various sources suggested learning: Design Patterns Clean Architecture Onion Architecture Hexagonal Architecture Ports & Adapters Architecture DDD (Domain Driven Design) I have read various books and blog posts to learn these concepts, and I feel Clean/Onion/Hexagonal/Ports&Adapters Architectures are very similar with a common goal of “protecting the core domain logic” from “external dependencies”.
Continue reading »SivaLabs Weekly Newsletter - 2023, Week 27
SivaLabs Weekly Newsletter - 2023 Week 27 I came to know about T3 App which claims to be “The best way to start a full-stack, typesafe Next.js app” Also, came across PocketBase which is “Open Source backend for your next SaaS and Mobile app in 1 file” Switched from iTerm2 to warp Terminal, and I am liking it very much. I have written Sharing Thoughts and Knowledge via Twitter vs Blogging article.
Continue reading »