# Introduction

DiVine is an advanced [dependency injection](https://en.wikipedia.org/wiki/Dependency_injection) framework for Java, that is inspired by the design of the TypeScript [typedi](https://github.com/typestack/typedi) library.

DiVine gets rid of massive bolilerplate codes that are caused by initialization processes. It helps you focus on the development of actual features, rather than structure.

Using DiVine also ensures, that your code is easy for unit testing. You can easily inject your mocks and modify segments of your application without the need to change the source code.

DiVine is simple. The learning curve is simple. You can enjoy its straighforward API.

### What does DiVine provide?

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Productivity</strong></td><td>Focus on the real features</td><td></td><td></td><td><a href="getting-started/quickstart">quickstart</a></td></tr><tr><td><strong>Improved testing</strong></td><td>No need to change the source code</td><td></td><td></td><td><a href="advanced-usage">advanced-usage</a></td></tr><tr><td><strong>Automation</strong></td><td>Mange service lifecycles automatically</td><td></td><td></td><td><a href="getting-started/publish-your-docs">publish-your-docs</a></td></tr></tbody></table>
