Spring Blog

spring.io · Company blog · on HN since 2013

The official blog of the Spring Java framework project, with release notes, security advisories, and announcements about Spring Boot and related tools.

What HN saysHN links it for security notices like the Log4j2 and Spring RCE posts and licensing changes; commenters recommend Spring Boot for quick services.
158HN people shared it
91linked it in comments
205stories submitted
558story points
4 months agolast shared
2013people per year2026

Most-shared posts

  1. 1
    Spring.io revealed at SpringOne
    8 people · 8 points · first shared 2013 · discussion on HN
  2. 2
    Spring Framework RCE, Early Announcement
    7 people · 30 points · first shared 2022 · 2 comments on HN
  3. 3
    Spring boot
    7 people · first shared 2019
  4. 4
    Kotlin support in Spring Framework 5.0
    5 people · 87 points · first shared 2017 · 8 comments on HN
  5. 5
    Spring boot
    5 people · first shared 2015
  6. 6
    Rest service
    5 people · first shared 2017
  7. 7
    Log4J2 Vulnerability and Spring Boot
    4 people · 3 points · first shared 2021 · discussion on HN
  8. 8
    HATEOAS
    4 people · first shared 2015
  9. 9
    Guides
    4 people · first shared 2014
  10. 10
    Spring Boot 4
    3 people · 14 points · first shared 2025 · discussion on HN
  11. 11
  12. 12
    Spring Framework 5.0 M1 released
    3 people · 8 points · first shared 2016 · discussion on HN
  13. 13
    Spring Modulith
    3 people · 5 points · first shared 2022 · discussion on HN
  14. 14
    Spring Framework 5 Kotlin APIs, the functional way
    3 people · 1 points · first shared 2017 · discussion on HN
  15. 15
    Projects
    3 people · first shared 2019

What HN people wrote when they linked it

froh42 · 2013-09-30
For those who want scrolling webpages these seem nice. But it's scrolling web pages again, which seem to be all the hype in 2013 just as flash intros have been some years ago. Aren't there any nice templates NOT following current styles and offering structure for content? I have to update the web page holding my CV as I have updated it in 2006 the last time. Woah, how dated would my page look in 2019 if I use a silding page now. Oooh, and I just imagine hacker news as "2013-glitz" page. Bling, bling, look we can scroll stock photos from a cheapo stock photo site. One carousel per story, two HERO UNIT words of headline. This story would show some cool young guys at a mac, one pointing, HERO UNIT reads "Starter HTML." Scroll down half a mile to see the next story. BTW. any predictions what the post-flat-parallax-photo-sliding web trend will be? Sorry to be a party pooper, but I saw one scrolling page to many and I'll rant about these from now on regularily. The last straw that happened to me (a Java developer) was http://spring.io/. It's so low on content that its information-vaccum might endanger the universe by sucking in all other data leaving all but a low radiation void.
bags43 · 2025-07-19
Among others: - license change -> restricting features behind a paid tier (https://spring.io/blog/2025/04/21/spring-cloud-data-flow-commercial) - reducing headcount of people -> slow security patching + not following industry standards - all eggs in one basket :) - cut from major clouds (Azure Spring apps)
ta988 · 2022-03-29
Gradle (with Kotlin syntax), Spring Boot (vertx, ktor or for small or microservices), Kotlin, IntelliJ. That would be a "modern" stack for me. If you can't use Kotlin, Java has improved a lot since 1.6 you will be pleasantly surprised. I recommend you start an intellij (Free edition if you want to, even if I still recommend the paid one) and follow the springboot kotlin tutorial below. That will give you a good idea of what the ecosystem looks like these days. https://spring.io/guides/tutorials/spring-boot-kotlin/
kerblang · 2021-12-13
Just for reference here's the posting that confirms such: https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot Also worth noting this is not log4j 1, but log4j 2, like angular vs. angularjs. Version 2 is a backwards-incompatible rewrite with a different package structure, effectively a different product. Version 1 is unaffected by this mess.
okr · 2020-11-22
Spring Boot https://spring.io/projects/spring-boot Love it or hate it, but i have a service up and running quickly, and i get all the goodies from spring framework, can just concentrate on coding and dont feel quick+dirty. As long you stay on the 'standard' path (smirk)
e12e · 2020-07-03
I hoped there might be a previous merged mr adding a gauge, but doesn't look like it. As best I can tell, you need a new service, a new function/method in the api controller (to publish the data) - then add support in the embedded front-end app Javascript/CSS. I'm not familiar with springboot, so I'm not sure if there are any generators to help, but it might be along these lines (for the java/rest part) - maybe someone else can chime in? https://spring.io/guides/gs/rest-service/ Doesn't look very easy to add gauges as far as I can tell.
mtarnovan · 2018-03-23
GP was talking about this Spring: https://spring.io/ not the Rails preloader...
mschulze · 2017-10-18
The Spark Framework [0] is pretty easy to pick up IMO. Spring (with Spring Boot) has approachable tutorials [1] on how to get started but will get intimidating pretty fast. I highly recommend using Kotlin instead of Java when trying out the JVM, though. [0] http://sparkjava.com/ [1] https://spring.io/guides/gs/rest-service/
fizwhiz · 2015-09-19
>> Good alternatives to using Spring is Google and Square's Dagger library or Google's Guice. They don't use Spring's XML configuration file format, and instead they put the injection logic in annotations and in code Spring has had code-based configurations since 2009[1]; seems a little disingenuous to recommend Guice/Dagger due to this non-existent limitation. [1] http://spring.io/blog/2009/12/22/configuration-simplifications-in-spri…
GreenStorm · 2015-02-01
You might want to re-think the name. To avoid confusion with https://spring.io/
KronisLV · 2023-02-10
> For the most part, Eclipse has fallen into obscurity. I guess it depends on the locale/company/environment? In most conferences, online videos, as well as among the people I know personally, JetBrains IDEs (IntelliJ IDEA for Java) seem to reign supreme: https://www.jetbrains.com/idea/ They have a community version, personally I pay for the Ultimate package of all the tools. They're slightly sluggish, want a lot of RAM, but the actual development experience and features make up for that. Hands down, the best set of IDEs that I've used from a pure development perspective - refactoring enterprise codebases mostly becomes something you can actually do with confidence. Running tests is easy. Integrating with app servers, containers, package managers or container runtimes is easy. Even remote debugging is easy to set up, as is doing debugging, or even testing web APIs. I'd say that all of the features that should exist do exist, which is more than I can say about many other IDEs. I know that Eclipse is sometimes used more in an educational setting, however there are also both some specialized tools, as well as customized versions for something like working with Spring in the industry: https://spring.io/tools In my experience, the idea behind the IDE is nice (a platform that you can install whatever you want on, entire language support packages, or specialized tool packages), but the execution falls short - sometimes it's unstable, other times it works slow and so on. That…
deepGem · 2022-04-11
Java annotations are terrible to reason about. Once you get a hang of them, then it's somewhat easier. That being said, Spring takes these annotations to the next level of complexity. Spring boot just makes this more difficult to reason about with added annotations. Anyone who states that Spring annotations are just 'abstractions' and that's how software is built is welcome for a healthy argument. There are much better web development alternatives such as Javalin. Compare this import io.javalin.Javalin; public class HelloWorld { public static void main(String[] args) { Javalin app = Javalin.create().start(7070); app.get("/", ctx -> ctx.result("Hello World")); } } to @SpringBootApplication @RestController public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @GetMapping("/hello") public String hello(@RequestParam(value = "name", defaultValue = "World") String name) { return String.format("Hello %s!", name); } } However, Spring cloud, has all the necessary distributed features built in. While I haven't used these, not having to write code for these is a god send. Load balancer - Check Service mesh - Check Circuit breaker - Check Heck, they have even included all Netflix OSS components. So this alone is worth the pain of living with annotations. https://spring.io/projects/spring-cloud
heurisko · 2022-01-18
> Spring documentation is and has always been poor and the sheer volume of outdated documentation Spring documentation is excellent. I had to learn Spring as a PHP developer, so I put the documentation onto a Kindle and read it. It's also versioned, so you don't need to read out of date versions: https://docs.spring.io/spring-framework/docs/ > This is different to eg DropWizard where you actually boot the app (no different to how it does in a real env ie no "test application context") and make real http requests to it. (not some watered down fake Spring HTTP test requests) Spring Boot allows you to write full application tests that will boot it up on a random port with the @SpringBootTest annotation, as is covered by the excellent documentation https://spring.io/guides/gs/testing-web/ > Add in the horribly, horribly ingrained, unidiomatic ways people use Spring (eg sprinkling field autowiring all over the place instead of instead of using constructor injection) You can use whichever. > anyone who uses any other framework is just stubborn and wrong. Not at all. Spring Boot is just a great solution, that's all. It's got strong support from a company, lots of documentation and first class support for testing. It also allows you to easily swap out different underlying technology, eg. you can switch from Jetty or Tomcat, Liquibase to Flyway. It's a disservice to persuade businesses to use smaller projects that don't have a comparable level of support, or flexibility.
jillesvangurp · 2021-12-16
Most people using e.g. spring boot or quarkus would end up using the defaults that come with those frameworks. For spring boot, the default is actually logback. However, you can switch it to log4j2. https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot Log4j2 never quite got the same status that v1 had. V1 should be considered a bit obsolete at this point. It still works of course but it has some performance issues that both log4j2 and logback try to address. The issue with high profile vulnerabilities like this is that there are a lot of projects where dependencies are rarely updated. I update aggressively on my own projects to stay on top of changes and keep the effort related to mitigating compatibility issues at a minimum. A nice side effect is that you get all the latest security, performance, and other fixes. In my experience, updates get harder the further you fall behind. So, the longer you wait, the more likely you will have a lot of fallout from updates and the more likely it is that you will be exposed to pretty serious bugs that have since been addressed upstream. If you are like me, I can recommend the excellent refreshVersions plugin for gradle. It makes staying on top of dependency updates a breeze. I run it every few weeks to spend a few minutes updating misc libraries, and verifying everything still works. Run the command, update to the suggested versions, create a pull request and merge when it works. Occasionally there are issues with…
dougbarrett · 2020-07-08
I've been developing Go web applications for the past 7+ years, some services getting billions of hits a day, and still have more than a handful running on various platforms currently. In the past few days, I've been playing around with Kotlin because a client of mine is wanting an Android app developed, so I figure this is a good opportunity to dive right in. I have experience with Spring Java as well, not as the primary dev of the project, but I've written enough code to be comfortable with the process. After being impressed with the process of writing Android apps in Kotlin, I decided to jump into Spring Boot + Kotlin and have been nothing but impressed. It's certainly different, but I'm feeling more productive than I was in Go because I can't say there is anything quite like it available in Go. I've tried Buffalo, but kept running into issues, and my typical go-to stack is Echo for the framework and Gorm for the MySQL library, but even then I need to pick my own tools for auth and caching. The build time is certainly something to be desired, but with one of the more basic apps I'm writing for a client right now, it takes just a few seconds to compile, so it's certainly nothing to complain about at this point. This is the tutorial I initially followed: https://spring.io/guides/tutorials/spring-boot-kotlin/ and swapping out the h2 database for mysql was pretty straightforward, and I was pleasantly surprised to see that I was able to have the app automatically set up…
mtrovo · 2019-03-22
I understand where you come from but for me this is a huge drawback when I have to use Spring. I never know what to expect when working on a new spring project. > beans defined in XML : we don't do that anymore But you still can do that! Also you still can do DI with Autowired private fields instead of injecting via constructors. You can also create beans based on properties. You can also create beans automatically via a included JAR on your class path. On Spring Boot you can also have beans created based based on some conditional annotation. And now there's yet another new DSL [1] to create your beans programatically on startup time. Tracking down and debugging what's loaded in Spring is super hard compared to Guice for example. Configuration is another piece of software that I have a really hard time to think why they do that. You can configure via a YAML file, AND via a properties file, AND overriding via environment variables, AND also with a configuration server that store your properties on a separated server, and they are all mixed together in a weird single configuration entry for the specific environment that you have. Probably this made sense some 10 years ago when we loved J2EE but why support this kind of madness nowadays? What I feel Spring is missing so much is forgetting about all the past and where the framework came from, start from scratch with simple premises around reactor-netty [2], only supporting the functional DSL, no crazy class path scanning, no…
AlexAmee · 2018-01-27
First of all, I don't think there is anything out there that could beat Java + IntelliJ + Spring boot. It does not matter if you use WebStorm, Clion, Rider ?, one must admit that IntelliJ is a Java IDE at its heart. It's very hard to describe how amazing the tooling is because you cannot describe a color to blind people. This is not meant to be offensive. There is one way I could at least try it. If you are using Vim/Emacs and everything feels like 'flying', that feeling multiplied by 3. That's what IntelliJ + Java is. If you then also install the Vim plugin, you got the best of both worlds. I did asp.net mvc with C# and VS, it's not even close. I did Rails a few years, not comparable ... I tried to so many languages and frameworks, nothing comes even close to IntelliJ+Java+Spring boot. Since I'm already procrastinating, I'd like to kill a few myths about Java and web development in Java. 1. OMG XML. I cannot remember the last time I had to dive into XML. 2. I can hit refresh and instantly see changes, can you do that in Java? Yes, every modern web framework has hot-reload, you don't wait, you just save and hit the browser reload button. It almost feels like a scripting language. 3. How about ORM's and DB access in general ? We got the mother of all ORM's, hibernate but if don't like ORM's there are great alternatives. Jooq[0], which feels almost like SQL: create.selectFrom(BOOK) .where(BOOK.PUBLISHED_IN.eq(2011)) .orderBy(BOOK.TITLE) There is…
blimey74 · 2017-02-02
You could try Spring Boot http://spring.io
parasubvert · 2016-10-19
I work for Pivotal so I'm biased. But I'd take a long look at Sprint Boot in terms of "fun , productive , practical" Java: https://projects.spring.io/spring-boot/ In particular: - curated and tested open source library dependencies to the point that you can generate a single JAR for anything you might want to build on the server: http://start.spring.io/ - Annotations and APIs to make REST service development a breeze - native support to build apps that use SQL, NoSQL and other Data systems without plumbing: http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/html… - SSH shell/CLI into your JVM to manage your JVM - Actuator to provide production metrics for your system - declarative security that allows you to build Oauth2 enabled apps in maybe 20 lines of code/annotations - great symbiosis with modern JavaScript for responsive sites, eg https://spring.io/blog/2015/01/12/spring-and-angular-js-a-secure-singl… - Cloud connectors to make it easy to run your app on Heroku, Kubernetes, Mesos or Cloud Foundry, or to leverage NetflixOSS components, or to build stream processing applications (Spring cloud stream / data flow) It is being downloaded and used at a very high rate (a couple million a month).
fat0wl · 2014-02-19
it's funny i probably won't give that much actual tech advice here but will relate a little anecdote. I was once asking in a forum about moving from RoR to Clojure, trying to calm my nerves, and some Clojure dev straight up asked me "Out of curiosity.... why is it that a lot of web developers think that Clojure isn't an adequate solution for lightweight apps?" and I remember saying something like "Well.... I think because it's not like a full-fledged framework with built-in ORM and a prescribed workflow" etc. etc. and as I was saying it I had this epiphany -- a lot of the JVM guys are so used to figuring out tooling and library integration that while the rest of the world is looking in and saying "How do you start from scratch like that?" a lot of them are looking out and saying "How come you guys are trying to solve a variety of problems all using a single tool?". Code is code, and a lot of web programming is just accumulating strings. So yeah I'd say I'm pretty early in my endeavors (I mean I code using a Java tool for a corporation but there is a pretty strict workflow for that) but as far as open source & my actual education is concerned, ok I'll give you tech advice -- short answer: https://spring.io/guides 1. Java has a number of MVC solutions. Pick one & study it, probably with a tutorial/guide. Don't focus on the amount of configuration available (the cruft), just follow a tutorial to get a few hello world kindof pages. You'll see that it's not nearly as difficult…
sgt · 2026-03-30
I hear you, but there's genuine excitement still about Spring Boot and related technologies. See [1] Spring Cloud. [1]https://spring.io/projects/spring-cloud
microflash · 2026-01-20
Why should I use this over say Strands Agents [1] or Spring AI [2]? [1]: https://strandsagents.com [2]: https://spring.io/projects/spring-ai
nmadden · 2025-10-12
Do you really think that in 26 years of professional Java programming I’d have never touched Spring? I’ve been using Spring since it was first released. I’ve found CVEs in Spring (https://spring.io/security/cve-2020-5408). Trust me when I say that my dislike for Spring (and annotations) is not based on ignorance.
Beltran · 2025-08-28
Yes, another example of brownout at https://spring.io/blog/2022/12/14/notice-of-permissions-changes-to-rep… It is probably the only way to warn users when you do not know the contact info.
brabel · 2025-02-19
But Javas has so many of these web frameworks?! * Spring (https://spring.io/) * Spring Boot (https://spring.io/projects/spring-boot) * Helidon (https://helidon.io/) * Micronaut (https://micronaut.io/) * Quarkus (https://quarkus.io/) * JHipster (https://www.jhipster.tech/) * Vaadin (https://vaadin.com/) That's just to mention the bigger ones, there's lots of mini frameworks like Javalin (https://javalin.io/) and Dropwizard (https://www.dropwizard.io/en/stable/)... There's even the previous generation of big app servers like Weblogic and JBoss. It's just incredibly weird for me to see someone say Java is missing some sort of framework, it just has EVERY kind you can probably imagine.
throwaway03452 · 2024-12-19
I choose Spring Boot anytime I have to create a service, just for that reason. The eco system is a huge force multiplier, and is constantly evolving. Spring Boot simplifies that a lot by simplifying the setup to the point where you often only have to add a single dependency, and everything is configured with default configurations (which you can change if necessary of course) Just look at all the different projects under the Spring banner: https://spring.io/projects One example is the new Spring AI, where they have abstracted a lot of functionality and you can change providers (OpenAI, Mistral, AWS, Azure, Google) easily.
Alupis · 2024-12-18
Boot has an "app" (err, lib) for everything. It's fully featured, and highly opinionated. Pretty much any modern computing problem you have, Boot has you covered[1]. So while you may not have ever used a Streaming library before, if you know Boot, then the Spring Boot Streaming library will already be familiar. [1] https://spring.io/projects/spring-boot
koevet · 2024-07-01
I'm writing a book about the Spring Modulith project (https://spring.io/projects/spring-modulith).
pron · 2024-05-22
The JVM cold-starts, loads a Hello, World program from a compressed JAR, runs it and shuts down in 40ms. But Clojure compiles quite a bit of Clojure code generating hundreds if not thousands of classes and then loads them before starting up the Clojure program. Still, there's ongoing work on the JVM (Project Leyden [1]) to speed up both startup and warmup even of such programs by caching more state. [1]: E.g. see https://spring.io/blog/2023/10/16/runtime-efficiency-with-spring
> Today with Spring Boot, for instance, you can bootstrap and develop your app as quickly and easily as any other cool and alternative framework but with the advantage of using a really popular and fast language. Looking at the Spring Boot guides, the amount of setup, complexity and lines of code just to get an application running with MySQL doesn't support this statement: https://spring.io/guides/gs/accessing-data-mysql/ Even 20 years ago this would be easier in Rails. Or try building the blog demo that's build on the Rails homepage video in Spring Boot. 35 minutes to build a blog with rich text (including image uploads), live comments, notification mails and tests. And after changing the database to PostgreSQL, deploy it to production. https://rubyonrails.org/

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close