diff --git a/spring-boot-modules/spring-boot-data-3/pom.xml b/spring-boot-modules/spring-boot-data-3/pom.xml
index cf53c25697..fcf7451c61 100644
--- a/spring-boot-modules/spring-boot-data-3/pom.xml
+++ b/spring-boot-modules/spring-boot-data-3/pom.xml
@@ -25,8 +25,13 @@
spring-boot-starter-data-jpa
- com.mysql
- mysql-connector-j
+ com.amazonaws.secretsmanager
+ aws-secretsmanager-jdbc
+ ${aws.secrets.manager.jdbc}
+
+
+ mysql
+ mysql-connector-java
runtime
@@ -34,6 +39,11 @@
spring-boot-starter-test
test
+
+ io.awspring.cloud
+ spring-cloud-starter-aws-secrets-manager-config
+ ${aws.secrets.manager.config}
+
@@ -45,4 +55,9 @@
+
+ 2.4.4
+ 1.0.11
+
+
\ No newline at end of file
diff --git a/spring-boot-modules/spring-boot-data-3/src/main/java/com/baeldung/startdbwithawssecretsmanager/StartWithAWSSecretsManagerApplication.java b/spring-boot-modules/spring-boot-data-3/src/main/java/com/baeldung/startdbwithawssecretsmanager/StartWithAWSSecretsManagerApplication.java
new file mode 100644
index 0000000000..0bcbef7729
--- /dev/null
+++ b/spring-boot-modules/spring-boot-data-3/src/main/java/com/baeldung/startdbwithawssecretsmanager/StartWithAWSSecretsManagerApplication.java
@@ -0,0 +1,29 @@
+package com.baeldung.startdbwithawssecretsmanager;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Profile;
+
+import javax.annotation.PostConstruct;
+
+@SpringBootApplication
+@Profile("aws")
+public class StartWithAWSSecretsManagerApplication {
+ @Value("${api-key1}")
+ private String apiKeyValue1;
+
+ @Value("${api-key2}")
+ private String apiKeyValue2;
+
+ @PostConstruct
+ private void postConstruct() {
+ System.out.println(apiKeyValue1);
+ System.out.println(apiKeyValue2);
+ }
+
+ public static void main(String[] args) {
+ SpringApplication.run(StartWithAWSSecretsManagerApplication.class, args);
+ }
+
+}
diff --git a/spring-boot-modules/spring-boot-data-3/src/main/java/com/baeldung/startdbwithawssecretsmanager/controller/UserController.java b/spring-boot-modules/spring-boot-data-3/src/main/java/com/baeldung/startdbwithawssecretsmanager/controller/UserController.java
new file mode 100644
index 0000000000..08745db3f0
--- /dev/null
+++ b/spring-boot-modules/spring-boot-data-3/src/main/java/com/baeldung/startdbwithawssecretsmanager/controller/UserController.java
@@ -0,0 +1,38 @@
+package com.baeldung.startdbwithawssecretsmanager.controller;
+
+import com.baeldung.startdbwithawssecretsmanager.model.UserEntity;
+import com.baeldung.startdbwithawssecretsmanager.repository.UserRepository;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("users")
+public class UserController {
+
+ private final UserRepository userRepository;
+
+ public UserController(UserRepository userRepository) {
+ this.userRepository = userRepository;
+ }
+
+ @GetMapping(value = "/{id}", produces = "application/json")
+ public @ResponseBody UserEntity getUser(@PathVariable Long id) {
+ return userRepository.findById(id).get();
+ }
+
+ @PostMapping
+ public UserEntity createUser(@RequestBody UserEntity userEntity) {
+ return userRepository.save(userEntity);
+ }
+
+ @DeleteMapping(value = "/{id}")
+ public void removeUser(@PathVariable Long id) {
+ userRepository.deleteById(id);
+ }
+}
diff --git a/spring-boot-modules/spring-boot-data-3/src/main/java/com/baeldung/startdbwithawssecretsmanager/model/UserEntity.java b/spring-boot-modules/spring-boot-data-3/src/main/java/com/baeldung/startdbwithawssecretsmanager/model/UserEntity.java
new file mode 100644
index 0000000000..285e7094dd
--- /dev/null
+++ b/spring-boot-modules/spring-boot-data-3/src/main/java/com/baeldung/startdbwithawssecretsmanager/model/UserEntity.java
@@ -0,0 +1,40 @@
+package com.baeldung.startdbwithawssecretsmanager.model;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+@Entity
+public class UserEntity {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Long id;
+
+ private String name;
+
+ public UserEntity() {
+ }
+
+ public UserEntity(Long id, String name) {
+ this.id = id;
+ this.name = name;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
diff --git a/spring-boot-modules/spring-boot-data-3/src/main/java/com/baeldung/startdbwithawssecretsmanager/repository/UserRepository.java b/spring-boot-modules/spring-boot-data-3/src/main/java/com/baeldung/startdbwithawssecretsmanager/repository/UserRepository.java
new file mode 100644
index 0000000000..e2abfe88e6
--- /dev/null
+++ b/spring-boot-modules/spring-boot-data-3/src/main/java/com/baeldung/startdbwithawssecretsmanager/repository/UserRepository.java
@@ -0,0 +1,10 @@
+package com.baeldung.startdbwithawssecretsmanager.repository;
+
+import com.baeldung.startdbwithawssecretsmanager.model.UserEntity;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface UserRepository
+ extends CrudRepository {
+}
diff --git a/spring-boot-modules/spring-boot-data-3/src/main/resources/application-aws.properties b/spring-boot-modules/spring-boot-data-3/src/main/resources/application-aws.properties
new file mode 100644
index 0000000000..07c4b0a4d6
--- /dev/null
+++ b/spring-boot-modules/spring-boot-data-3/src/main/resources/application-aws.properties
@@ -0,0 +1,9 @@
+spring.datasource.driver-class-name=com.amazonaws.secretsmanager.sql.AWSSecretsManagerMySQLDriver
+spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
+spring.datasource.url=jdbc-secretsmanager:mysql://database-1.cwhqvgjbpgfw.eu-central-1.rds.amazonaws.com:3306/test
+spring.datasource.username=rds/credentials
+
+#Overwriting application.properties configuration back to default.
+spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=true
+
+spring.config.import=aws-secretsmanager:test/secret/