At the very beginning of 2014 I decided to start to track my reading habits and share the best stuff here, on Baeldung.

Curating my reading has made it more purposeful and diverse – and I’m hopefully providing value to you as well by allowing the best content of the week to raise to the top.

Now – this week is a bit out of the ordinary just because of the sheer number of good articles that came out in the last few days. Not sure what it is – maybe it’s the after-vacation burst of creativity or maybe it’s just the end of summer but the up-tick in volume is quite something.

Here we go…

1. Java

>> A beginner’s guide to database locking and the lost update phenomena

Let’s start the review with a strong and well researched article on database locking and “Lost Update” – lots to take in.

I’ve personally followed this series and learned a lot – and we’ve been tracking the entire progress here, in the weekly reviews as well. While they’re all good, this one is one of the best of the entire series.

>> Why You Should NOT Implement Layered Architectures

This piece will be controversial (it probably already has been by now). Personally – having seen a lot of systems architected with a lot of unnecessary complexity (why don’t we put a message queue in there?) – I can certainly get behind the idea of the article.

That being said – it’s not a black and white type of thing – and you can lean to far towards over-simplification as wel. To use an example from the article – you probably don’t need a dozen types of insurance, but it’s still a good idea to insure your house and your health.

>> This is the Final Discussion!

A good discussion on final (the keyword). If only final was the default – oh how the woes of man would have been lessened. Joking aside – if you aren’t already giving final a lot of though when coding, go read this one.

>> lambdas and side effects

A handful of interesting corner cases with lambdas.

Finally – all videos of the JavaZone conference are out – and there’s some great one in there:

>> JavaZone 2014 – 90 presentations, 60 lightning talks

2. Spring

>> Preview Spring Security WebSocket Support & Sessions

I wasn’t aware of the Spring Session effort until I read this post – it’s a broad effort to basically replace the container managed sessions entirely with a new session implementation. That’s some goal – and it looks like it has some very interesting practical advantages, at least for one class of problems.

>> Using @ConfigurationProperties in Spring Boot

Very cool alternative to the standard way of doing properties in Spring – I can definitely see how this Spring Boot option might come in handy.

>> Testing mail code in Spring Boot application

A Spring Boot exploration, specifically how to set up your email logic and test it with some interesting looking mail tools that look to facilitate isolated unit testing quite a bit – nice one.

>> Customizing HttpMessageConverters with Spring Boot and Spring MVC

Yet another way that Spring Boot makes things easier – configuring the Http Message Converters in the system. I’ve been wanting to do this in Spring for a long time – it’s great that it’s now actually possible.

>> Juergen Hoeller Gets Personal on Spring 4, Java 8, Spring XD, and all things Spring

An good interview with Juergen Hoeller (co-founder of Spring) going through a lot of engaging questions, some that you might not expect. An interesting explanation of conditional configuration to look forward to if you decide to watch the interview.

>> Webinar Replay: Building “Bootiful” Microservices with Spring Boot

Finally a webminar on microservices that I’m going to watch over the weekend. If you’ve been following my weekly reviews, you already know that microservices aren’t easy to pull off – there are a lot of potential pitfalls when the system is no longer trivial.

3. Technical and Musings

>> Load-Testing Guidelines

Fantastic article on load testing practices and considerations. Even if you’ve been doing this for a while – it’s a good idea to read this one.

>> “I Like Mocks, but I Distrust Spies”

A deep dive into how spies are used by novice developers and how these practices change and should change with the experience level of the developer. Some useful insights I’m planning to work into my own practice from this article.

>> Rapid Fire Craftsmanship Tips

Captain Obvious here – improving your craft is an ongoing thing – there’s no “Arrival”. Here’s a good set of tips on how to do that.

>> One-Phase-Commit – Fast Transactions For In-Memory Caches

Going for a “Two Phase Commit” to a light “One Phase Commit” operation – which of course comes with a good speed advantage – another interesting read if you’re doing work with in-memory caches.

I’m personally not doing that right now, but I have in the past and they’re super helpful if set up correctly, and entirely annoying if they’re not.

4. Comics

Can one grow tired of XKCD goodness:

>> Campfire

>> Traveling Salesman Problem

>> Password Reuse

I say “Nay“.

5. Pick of the Week

This week I though we’d try something new – am introducing a new “Pick of the Week” section in my “Weekly Review”. The interesting part is that I’m going to make this exclusive to my email list subscribers.

So – if you came to this article from my email list, you have the pick already – hope you enjoyed it 🙂

If not – you can of course subscribe to the list to get the next one.

Cheers.

Baeldung Pro – NPI EA (cat = Baeldung)
announcement - icon

Baeldung Pro comes with both absolutely No-Ads as well as finally with Dark Mode, for a clean learning experience:

>> Explore a clean Baeldung

Once the early-adopter seats are all used, the price will go up and stay at $33/year.

eBook – HTTP Client – NPI EA (cat=HTTP Client-Side)
announcement - icon

The Apache HTTP Client is a very robust library, suitable for both simple and advanced use cases when testing HTTP endpoints. Check out our guide covering basic request and response handling, as well as security, cookies, timeouts, and more:

>> Download the eBook

eBook – Java Concurrency – NPI EA (cat=Java Concurrency)
announcement - icon

Handling concurrency in an application can be a tricky process with many potential pitfalls. A solid grasp of the fundamentals will go a long way to help minimize these issues.

Get started with understanding multi-threaded applications with our Java Concurrency guide:

>> Download the eBook

eBook – Java Streams – NPI EA (cat=Java Streams)
announcement - icon

Since its introduction in Java 8, the Stream API has become a staple of Java development. The basic operations like iterating, filtering, mapping sequences of elements are deceptively simple to use.

But these can also be overused and fall into some common pitfalls.

To get a better understanding on how Streams work and how to combine them with other language features, check out our guide to Java Streams:

>> Join Pro and download the eBook

Course – LS – NPI EA (cat=REST)

announcement - icon

Get started with Spring Boot and with core Spring, through the Learn Spring course:

>> CHECK OUT THE COURSE

Partner – Moderne – NPI EA (tag=Refactoring)
announcement - icon

Modern Java teams move fast — but codebases don’t always keep up. Frameworks change, dependencies drift, and tech debt builds until it starts to drag on delivery. OpenRewrite was built to fix that: an open-source refactoring engine that automates repetitive code changes while keeping developer intent intact.

The monthly training series, led by the creators and maintainers of OpenRewrite at Moderne, walks through real-world migrations and modernization patterns. Whether you’re new to recipes or ready to write your own, you’ll learn practical ways to refactor safely and at scale.

If you’ve ever wished refactoring felt as natural — and as fast — as writing code, this is a good place to start.