# Integrations > You can integrate Vaadin with many other Java application technologies, such as Spring, CDI, OSGi, and Karaf. You can also embed Vaadin applications/components in other applications or web pages. Parent index: [Vaadin Docs](https://vaadin.com/docs/v23/llms.txt) ## Overview - [Integrations](https://vaadin.com/docs/v23/integrations.md): You can integrate Vaadin with many other Java application technologies, such as Spring, CDI, OSGi, and Karaf. You can also embed Vaadin applications/components in other applications or web pages. ## Spring - [Spring](https://vaadin.com/docs/v23/integrations/spring.md): Spring is part of the recommended toolchain, and in fact Vaadin applications are by default Spring Boot applications. - [Spring Boot](https://vaadin.com/docs/v23/integrations/spring/spring-boot.md) - [Spring MVC](https://vaadin.com/docs/v23/integrations/spring/spring-mvc.md) - [Routing](https://vaadin.com/docs/v23/integrations/spring/routing.md) - [Scopes](https://vaadin.com/docs/v23/integrations/spring/scopes.md) - [Configuration](https://vaadin.com/docs/v23/integrations/spring/configuration.md) ## CDI - [CDI](https://vaadin.com/docs/v23/integrations/cdi.md): Contexts and dependency injection (CDI) is a framework for injecting dependency objects in different contexts. It's part of the Java EE platform, but its purpose is similar to autowiring in Spring. - [Using CDI Beans](https://vaadin.com/docs/v23/integrations/cdi/instantiated-beans.md) - [Vaadin CDI Scopes](https://vaadin.com/docs/v23/integrations/cdi/contexts.md) - [Observable Vaadin Events](https://vaadin.com/docs/v23/integrations/cdi/events.md) - [Vaadin Service Interfaces as CDI Beans](https://vaadin.com/docs/v23/integrations/cdi/service-beans.md) ## Embedding - [Embedding](https://vaadin.com/docs/v23/integrations/embedding.md): In addition to running Vaadin as an application in a web page, you can embed it in a web page which could be part of some other application. - [Tutorial](https://vaadin.com/docs/v23/integrations/embedding/exporter.md) - [Application Properties](https://vaadin.com/docs/v23/integrations/embedding/properties.md) - [Theming](https://vaadin.com/docs/v23/integrations/embedding/theming.md) - [Configuring Push](https://vaadin.com/docs/v23/integrations/embedding/push.md) - [Security](https://vaadin.com/docs/v23/integrations/embedding/security.md) - [Preserve on Refresh](https://vaadin.com/docs/v23/integrations/embedding/preserveonrefresh.md) - [Limitations](https://vaadin.com/docs/v23/integrations/embedding/limitations.md) ## OSGi - [OSGi](https://vaadin.com/docs/v23/integrations/osgi.md): OSGi is an open source specification that describes a modular system and a dynamic service platform for Java. Application and component bundles can be remotely installed, started, stopped, updated, and uninstalled without requiring a reboot. - [Using Services with Vaadin](https://vaadin.com/docs/v23/integrations/osgi/advanced.md) - [Apache Karaf](https://vaadin.com/docs/v23/integrations/osgi/karaf.md): Apache Karaf is based on OSGi and provides a lightweight container within which various components and applications can be deployed. It provides some enterprise-ready features, such as shell console, remote access, hot deployment, and dynamic configuration. ## Quarkus - [Quarkus](https://vaadin.com/docs/v23/integrations/quarkus.md): Quarkus is an open source, Kubernetes-native Java framework made for Java virtual machines and native compilation. It optimizes Java specifically for containers, enabling it to become an effective platform for serverless, cloud, and Kubernetes environments. ## Portlet Support - [Portlet Support](https://vaadin.com/docs/v23/integrations/portlet.md): Portlet is a technology for building web components to be placed on Web Portals. Vaadin provides the API to create a UI to be visible in Portlets in the same way as for a Vaadin Servlet-based application. - [Creating Vaadin Portlets](https://vaadin.com/docs/v23/integrations/portlet/creating-vaadin-portlets.md): Describes how to build your own Vaadin Portlets and run them. - [Handling Portlet Phases](https://vaadin.com/docs/v23/integrations/portlet/handling-portlet-phases.md): Introduces the API to use to interact with the Portlet phases and Portlet requests - [Inter-Portlet Communication](https://vaadin.com/docs/v23/integrations/portlet/inter-portlet-communication.md): Describes how to enable Portlets to communicate with other Portlets (Vaadin or non-Vaadin) on the Portal page - [Creating Multi-Module Portlet Project](https://vaadin.com/docs/v23/integrations/portlet/creating-multi-module-portlet-project.md): Shows how to create a multi-module Vaadin Portlet Maven project, in which each portlet is in its own module, and frontend assets are in one module - [Adding a Vaadin Portlet Module to an Existing Multi-Module Project](https://vaadin.com/docs/v23/integrations/portlet/adding-portlet-module.md): Shows how to add a new Vaadin Portlet Module to an existing Vaadin or non-Vaadin multi-module project - [Appendix A - Address Book Example Project Demonstration](https://vaadin.com/docs/v23/integrations/portlet/demo-address-book.md): Describes how to build two Vaadin Portlets that communicate with each other as a multi-module project ## Databases - [Databases](https://vaadin.com/docs/v23/integrations/databases.md): Using a database in Vaadin applications - [PostgreSQL](https://vaadin.com/docs/v23/integrations/databases/postgresql.md): Use PostgreSQL in your Vaadin application. - [MariaDB](https://vaadin.com/docs/v23/integrations/databases/mariadb.md): Use MariaDB in your Vaadin application. - [MySQL](https://vaadin.com/docs/v23/integrations/databases/mysql.md): Use MySQL in your Vaadin application.