spring 0.4.8

Rust microservice framework like spring boot in java
Documentation
# Changelog

## 0.4.7

- **changed**: upgrade `schemars` 0.9 to 1.1 ([#197])

[#197]: https://github.com/spring-rs/spring-rs/pull/197

## 0.4.6

- **added**: refactor `shutdown_signal` ([#180])

[#180]: https://github.com/spring-rs/spring-rs/pull/180

## 0.4.5

- **added**: Nested and circular dependency injection ([#173])

[#173]: https://github.com/spring-rs/spring-rs/pull/173

## 0.4.4

- **added**: export `spring::submit_config_schema`

## 0.4.3

- **added**: Service support inject None ([#160])

[#160]: https://github.com/spring-rs/spring-rs/pull/160

## 0.4.2

- **changed**: upgrade `toml` 0.8 to 0.9 ([#154])
- **changed**: upgrade `tokio` 1.44 to 1.46 ([#154])
- **changed**: upgrade `serde-toml-merge` 0.3.8 to 0.3.10 ([#154])

[#154]: https://github.com/spring-rs/spring-rs/pull/154

## 0.4.1

- **changed**: fix Immediately built plugins can't access config ([#145])

[#145]: https://github.com/spring-rs/spring-rs/pull/145

## 0.4.0

- **breaking**: upgrade `spring-macros` 0.3 to 0.4 ([#132])

[#132]: https://github.com/spring-rs/spring-rs/pull/132

**Migrating from 0.3 to 0.4**

```diff
 #[derive(Clone, Service)]
+#[service(prototype = "build")]
-#[prototype = "build"]
 struct UserService {
     #[inject(component)]
     db: ConnectPool,
     #[inject(config)]
     config: UserConfig,
 }
```

## 0.3.1

- **breaking**: remove `ComponentRegistry::create_service` ([#112])
- **added**: Added prototype service derived macro generation `build` function ([#112])

[#112]: https://github.com/spring-rs/spring-rs/pull/112

## 0.3.0

- **breaking**: refactor dependency inject ([#105])
- **changed**: use `TypeId` instead of `type_name` to improve performance ([#105])

[#105]: https://github.com/spring-rs/spring-rs/pull/105

**Migrating from 0.2 to 0.3**

```diff
 #[derive(Clone, Service)]
 struct UserService {
-    #[component]
+    #[inject(component)]
     db: ConnectPool,
-    #[config]
+    #[inject(config)]
     config: UserConfig,
 }
```

## 0.2.9

- **added**: toml support Environment variable interpolator ([#95])

[#95]: https://github.com/spring-rs/spring-rs/pull/95

## 0.2.8

- **added**: banner & Fancy Starting Logs ([#91])
- **added**: add `App::global()` ([#d1fa98])

[#91]: https://github.com/spring-rs/spring-rs/pull/91
[#d1fa98]: https://github.com/spring-rs/spring-rs/commit/d1fa983bc41750777c4bb12c5fa03479d273e977

## 0.2.7

- **added**: support `include_str!` compile configuration files into the application ([#85])
- **changed**: rename `config_file` to `use_config_file` ([#85])

[#85]: https://github.com/spring-rs/spring-rs/pull/85

## 0.2.6

- **changed**: fix concurrent scheduler ([#81])

[#81]: https://github.com/spring-rs/spring-rs/pull/81

## 0.2.5

- **changed**: fix exported `build` method ([#75])

[#75]: https://github.com/spring-rs/spring-rs/pull/75

## 0.2.4

- **added**: App add `get_env` ([#74])
- **added**: AppBuilder export `build` method ([#74])

[#74]: https://github.com/spring-rs/spring-rs/pull/74

## 0.2.3

- **added**: AppBuilder add `get_env` ([#65])
- **added**: AppBuilder add `add_layer` to support extends `tracing-rs` ([#65])
- **added**: support immediately Plugin ([#65])

[#65]: https://github.com/spring-rs/spring-rs/pull/65

## 0.2.2

- **added**: support shutdown hook ([#61])

[#61]: https://github.com/spring-rs/spring-rs/pull/61

## 0.2.1

- **added**: support config logger time pattern ([#59])
- **added**: support config logger add with_fields ([#59])

[#59]: https://github.com/spring-rs/spring-rs/pull/59

## 0.2.0

- **added**: add `Service` support dependency inject ([#54])
- **added**: add `get_component` ([#54])
- **breaking**: rename origin `get_component` to `get_component_ref` ([#54])

[#54]: https://github.com/spring-rs/spring-rs/pull/54

## 0.1.3

- **changed**: refactor toml config registry ([#1a750a])

[#1a750a]: https://github.com/spring-rs/spring-rs/commit/1a750a7d82871632bad7cee73ec418b5a28924ea

## 0.1.2

- **changed**: add DeserializeErr ([#44])

[#44]: https://github.com/spring-rs/spring-rs/pull/44

## before 0.1.1

see [CHANGELOG](../CHANGELOG.md)