Guava VS Spring

Compare Guava vs Spring and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
Guava Spring
58 78
49,364 55,064
0.5% 0.9%
9.6 10.0
6 days ago 5 days ago
Java Java
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Guava

Posts with mentions or reviews of Guava. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-23.
  • Lists: do you know the nature of yours? The strange story of a data container in Java
    2 projects | dev.to | 23 Nov 2023
    The first problem is at the level of Type System, given that a situation more correct would allow us to distinguish through the Collection Type which abstraction we are operating with, species if definable as mutable or immutable. The JCF was born at a time when great care was taken to offer immediate operational data structures, and with attention to performance, but with less attention to constructs or uses that are now seen as common. These concepts have been taken up by other infrastructures from which we certainly cannot fail to mention: Eclipse Collection, Guava Collections, and VAVR.
  • Google/guava: Google core libraries for Java
    3 projects | news.ycombinator.com | 8 Nov 2023
    Even better is getting Gradle/Maven to correctly pull "plain" vs "Android" versions of the package instead of them just publishing the diverging code base as two repository packages.

    https://github.com/google/guava/issues/2914

  • Guava 32.0 (released today) and the @Beta annotation
    5 projects | /r/java | 30 May 2023
    I'll admit I'm surprised to see that BOMs have been documented on maven.apache.org since mid-2008. It looks like Spring, for example, didn't adopt them until mid-2014. I don't know how widely they caught on in other areas. The first discussion of them in the context of Guava may have been in 2018, as I don't see mention of them in the various issues from 2011-2015 (#605, #1329, #1471, #1954.
  • Best Practice of Guava ImmutableList
    1 project | /r/learnjava | 8 May 2023
    And a quick peek at the source code for ImmutableList seems to confirm this (https://github.com/google/guava/blob/master/guava/src/com/google/common/collect/ImmutableList.java - it goes via a bunch of methods, but ends up using Arrays.copyOf(), which creates a fixed-size array).
  • Genuine question: how do you all use Haskell IRL?
    7 projects | /r/haskell | 22 Apr 2023
    The guava library of Java has some of these data structures implemented: https://github.com/google/guava/wiki/ImmutableCollectionsExplained , but implementations of the above book in many languages can be found on github (say, this one for Haskell: https://github.com/aistrate/Okasaki )
  • Murmurhash -criando um rollout progressivo via backend
    3 projects | dev.to | 21 Apr 2023
  • Один из примеров почему ChatGPT еще очень далеко до замены программистов, та и остальных профессий тоже.
    7 projects | /r/tjournal_refugees | 13 Apr 2023
    Java Mask: Java Mask is a library that offers various string masking techniques for sensitive data such as credit card numbers, email addresses, and more. You can find the library at: https://github.com/miguelfreitas93/java-mask DataMasker: DataMasker is a Java library specifically designed for masking sensitive data, including credit card numbers, using customizable masking patterns. Visit the GitHub repository for more information and usage examples: https://github.com/GDSSecurity/DataMasker Maskify: Maskify is a simple Java library that can be used to mask credit card numbers, Social Security numbers, and other sensitive information. You can find the library at: https://github.com/jonathancarvalhoalves/maskify CreditCardUtils: This is a lightweight Java library that provides utility methods for validating, formatting, and masking credit card numbers. Visit the GitHub repository for more information: https://github.com/malkusch/creditcardutils Google Guava: Google Guava is a popular set of Java libraries containing a wealth of utilities for working with strings, collections, and more. While not specifically designed for masking credit card information, you can use Guava's string manipulation methods to mask sensitive data: https://github.com/google/guava
  • Twitter makes some of its source code public
    3 projects | /r/Twitter | 2 Apr 2023
    I mean, I guess, technically? If you define it like that, then Microsoft has people working for them for free, as does Google, as does Apple, etc. It's not that weird, and you can try to twist it to be weird, but those of us in the software industry largely regard this as a good thing.
  • Managing unfixable CVEs
    1 project | /r/ExperiencedDevs | 11 Mar 2023
    So we have https://github.com/google/guava/issues/4011
  • Java 17 migration: bias locks regression
    1 project | dev.to | 16 Feb 2023
    Ok, so let's implement our lazy initialization more smartly to avoid acquiring the lock every time and use old fashion but still working double-checked locking. I've found it implemented by Suppliers.memoize in guava library.

Spring

Posts with mentions or reviews of Spring. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-30.
  • Restrictive Abstractions
    2 projects | dev.to | 30 Mar 2024
    This interface is a simplified version of real caching abstractions from Java technologies such as the ones from Spring or JCache (JSR-107). Both are part of quite complex solutions, having more generic types and different capabilities. Also, annotations would be preferred to using Cache directly in most Java applications.
  • They said to use the Default Dispatchers but I found out it was Unconfined
    1 project | dev.to | 21 Mar 2024
    Cross-post: Controller code using Unconfined Dispatcher #32032
  • Spring 6.1 now compatible with virtual threads and JDK 21 overall
    1 project | /r/hypeurls | 19 Aug 2023
  • What's New in Spring Framework 6.1
    5 projects | news.ycombinator.com | 16 Aug 2023
  • CWE Top Most Dangerous Software Weaknesses
    4 projects | news.ycombinator.com | 13 Jul 2023
    Mitre really lost a lot of respect with CVE-2016-1000027. Every few weeks a warning that any SpringBoot 2.x project has a CVSS 9.8, which causes all sorts of heartache for those of us bound to CVE remediation. Every blasted security tool reports this one. Spring reviewed and rejected, as did our very, very large organization. Comically, this has become the CVE we use to see how our tools allow us to white/black list entries.

    Thank god Spring dropped this interface in the Framework 6.x / Boot 3.x release, and the end for non-commercial support is this year for the old stuff.

    https://github.com/spring-projects/spring-framework/issues/2...

  • Help with GetMapping annotation
    1 project | /r/javahelp | 1 Jul 2023
    Referring to https://github.com/spring-projects/spring-framework/blob/main/spring-web/src/main/java/org/springframework/web/bind/annotation/GetMapping.java, the value could have got assigned to any of the other members like name, path, params, etc. Is there any logic involved that enables the single value passed to the GetMapping annotation to be assigned to the value member?
  • What's your most painful experience of debugging an issue that only reproduced in production?
    1 project | /r/java | 11 May 2023
    This one. In short, JMS listeners stopped working randomly (of course only on Saturdays, and only under load), but at first we didn't know that and suspected the message broker at fault. We had quite extensive logging, but no observability on the broker. Can't remember all the details, but eventually we figured out it was the listener container, and I could reproduce it after debugging deeply into Spring code during a load test.
  • 10+ Open-Source Projects For Web Developers In 2023
    14 projects | dev.to | 10 Apr 2023
    GitHub Stars: 51 K GitHub Link: https://github.com/spring-projects/spring-framework
  • Dropwizard 3.0.0 and 4.0.0 have been released
    1 project | /r/java | 31 Mar 2023
    It still has, but it is more of "imaginary" one (https://github.com/spring-projects/spring-framework/issues/24434).
  • how does spring webflux interact with the java servlet api?
    1 project | /r/java | 7 Mar 2023
    Simple: Spring WebFlux does not require Servlet, but can adapt to it. We essentially built our own reactive HTTP abstraction, without any Servlet dependencies. Then we made adapters that use said abstraction for (Reactor) Netty and Servlet. Note that we have specific adapters for Tomcat, Jetty, and Undertow, relying on non-blocking native APIs.

What are some alternatives?

When comparing Guava and Spring you can also consider the following projects:

JGit - JGit project repository (jgit)

Jooby - The modular web framework for Java and Kotlin

javatuples - Typesafe representation of tuples in Java.

Vaadin - Vaadin 6, 7, 8 is a Java framework for modern Java web applications.

Caffeine - A high performance caching library for Java

Ninja - Ninja is a full stack web framework for Java. Rock solid, fast and super productive.

Eclipse Collections - Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API.

Spring Boot - Spring Boot

Hashids.java - Hashids algorithm v1.0.0 implementation in Java

Google Web Toolkit - GWT Open Source Project

Gephi - Gephi - The Open Graph Viz Platform

Play - The Community Maintained High Velocity Web Framework For Java and Scala.