close

Josh Long

Josh Long

Spring Developer Advocate

an aisle seat or San Francisco, CA

Josh (@starbuxman) is the Spring Developer Advocate at Pivotal and a Java Champion. He's host of "A Bootiful Podcast" (https://soundcloud.com/a-bootiful-podcast), host of the "Spring Tips Videos" (http://bit.ly/spring-tips-playlist), co-author of 6+ books (http://joshlong.com/books.html), and instructor on 8+ Livelessons Training Videos (http://joshlong.com/livelessons.html)
Blog Posts by Josh Long

YMNNALFT: Express Yourself with SpEL

Welcome to another installment of You May Not Need Another Library For That (YMNNALFT)! I’ve spent a lot of time since 2016 illuminating (or trying to, anyway!) some of the more enormous opportunities in the Spring ecosystem in my Spring Tips videos. Today, however, I come to you in a different spirit, wanting to focus on the little, sometimes hidden, gems that do fantastic things and that might spare you an additional third-party dependency and its implied complexity.

Do your users want a convenient, bite-sized way to customize the behavior of your application? Expression Languages are purpose-built to allow low-touch customization of application behavior. Expression languages have a ton of applications. They can help you evaluate things! Perhaps they could run simple predicate logic that a user has configured. An expression language can dereference environment values, glue things together, support templating, customize access control and authorization predicates, support customized messaging flow routing and workflow event handler logic, and so much more. A good expression language is so useful that we built the Spring Expression Language (SpEL) and shipped it with Spring Framework 3.0 waaaaay back in 2009!

Read more...

This Week in Spring - January 12th, 2021

I almost wrote in 2020! There’s been so much going on I almost forgot to take stock of the year. What a rush. We better get to the roundup before I somehow lose even more track of time. So, without further ado, this week’s roundup.

Read more...

YMNNALFT: HTTP Clients

Welcome to another installment of You May Not Need Another Library For That (YMNNALFT)! I’ve spent a lot of time since 2016 illuminating (or trying to, anyway!) some of the more enormous opportunities in the Spring ecosystem in my Spring Tips videos. Today, however, I come to you in a different spirit, wanting to focus on the little, sometimes hidden, gems that do fantastic things and that might spare you an additional third-party dependency and its implied complexity.

Today we’re going to look at an all-in-one, handy dandy HTTP client, the WebClient.

Read more...

YMNNALFT: Reactive Dataflow with Project Reactor

Welcome to another installment of You May Not Need Another Library For That (YMNNALFT)! I’ve spent a lot of time since 2016 illuminating (or trying to, anyway!) some of the more enormous opportunities in the Spring ecosystem in my Spring Tips videos. Today, however, I come to you in a different spirit, wanting to focus on the little, sometimes hidden, gems that do fantastic things and that might spare you an additional third-party dependency and its implied complexity.

And it’s a good thing we’re covering some of these complexity-reducing gems, too, you see, because the world is a confusing, complex, and dizzying place, and nowhere is that more evident than in the world of reactive data stream composition. Life comes at you fast and data, even more so. Data originates from everything (network services, databases, in-memory computation, threaded code, etc.). Data comes in many different sizes and shapes (one record, ten records, infinite records, etc.). Data comes in different volumes, starving or overwhelming its consumers. Data arrives at different cadences and times: now, later, all at once, periodically, etc. It’s much more natural to talk about data that’s already in memory, in hand, so to speak, than data that hasn’t yet materialized. And it’s more natural to talk about data in the single-threaded case than to deal with it in the concurrent case.

Read more...

This Week in Spring, January 5th, 2020 - 10th Anniversary Edition

Hi, Spring fans! Happy new year! And welcome to another installment of This Week in Spring! Today is a significant installment because it marks a decade of This Week in Spring!

I started this roundup after a fun discussion with the legendarily nice guy and SpringSource co-founder Keith Donald in late 2010 over the holiday. Lo, the first week of January 2011, the first edition of this roundup went out the door on the old SpringSource.org blog.

It’s been so much fun putting together this roundup, without fail, every Tuesday for the last decade. You wouldn’t believe the lengths to which I went to get this out on Tuesday, well, my Tuesday, no matter where I was. I’d be on planes all the time and the original blog software on SpringSource.org didn’t support scheduling posts, so I’d either publish it a little early or - if I was going to be on a plane for the entirety of the useful day - I’d have my then manager Adam Fitzgerald post it for me. He reviewed the content for the first few years of the blog, too. What a legend that guy is. I learned a ton (about everything really, but also writing in particular) working with him. Nowadays, most flights longer than an hour or two have wi-fi onboard; but not so back then. Nowadays the software we use to blog - custom, open-source software that we built with Spring back in 2013 that underpins the spring.io) experience - supports scheduled posts, as well, so it’s much easier to get this post out on time.

Read more...

YMNNALFT: Easy Docker Image Creation with the Spring Boot Maven Plugin and Buildpacks

Welcome to another installment of You May Not Need Another Library For That (#YMNNALFT)! I’ve spent a lot of time since 2016 illuminating (or trying to, anyway!) some of the more enormous opportunities in the Spring ecosystem in my Spring Tips videos. Today, however, I come to you in a different spirit, wanting to focus on the little, sometimes hidden, gems that do fantastic things and that might spare you an additional third-party dependency and its implied complexity.

Have you tried out Paketo? It’s neat-o! It alleviates one of the biggest pains of cloudy software these days:Dockerfiles.

Read more...

This Year in Spring - 2020 Edition

Hi, Spring fans!

You know what I did? I goofed, people. I accidentally released This Week in Spring on this the last week of December, the last month of the year! And I shouldn’t have. I should not have done that. Usually, you see, I turn the final installment of This Week in Spring for a given year into the aptly named This Year in Spring, a celebration of the big tentpole themes that have defined the year (well, from my perspective, anyway). Then I include the usual This Week in Spring roundup inline. I forgot to do that first part, so I am publishing this as a separate post. Hey, it’s tradition.

Read more...