spring boot 实体类中如何拿pom.xml里面的properties配置

在 Spring Boot 中,可以使用 @Value 注解来引用 application.properties 或 application.yml 配置文件中的属性,也可以使用 Environment 对象访问配置文件中的属性。如果 pom.xml 文件中定义了 ,并且在 中定义了一些属性,那么这些属性将会在编译时被解析,并替换成实际的值。因此,可以在 application.properties 或 application.yml 文件中使用这些属性。
例如,如果在 pom.xml 文件中定义了如下的 :

<profiles>
  <profile>
    <id>dev</id>
    <properties>
      <jdbc.url>jdbc:mysql://localhost:3306/mydb</jdbc.url>
      <jdbc.username>root</jdbc.username>
      <jdbc.password>password</jdbc.password>
    </properties>
  </profile>
</profiles>

则在 application.properties 或 application.yml 文件中使用这些属性:

spring.datasource.url=${jdbc.url}
spring.datasource.username=${jdbc.username}
spring.datasource.password=${jdbc.password}

或者在 application.yml 中使用这些属性:

spring:
  datasource:
    url: ${jdbc.url}
    username: ${jdbc.username}
    password: ${jdbc.password}

在 Spring Boot 应用程序中,可以使用 @Value 注解来引用这些属性,例如:

@Component
public class MyComponent {
    @Value("${jdbc.url}")
    private String jdbcUrl;
    
    @Value("${jdbc.username}")
    private String jdbcUsername;
    
    @Value("${jdbc.password}")
    private String jdbcPassword;
    
    // ...
}

或者使用 Environment 对象来访问这些属性,例如:

@Component
public class MyComponent {
    @Autowired
    private Environment env;
    
    public void doSomething() {
        String jdbcUrl = env.getProperty("jdbc.url");
        String jdbcUsername = env.getProperty("jdbc.username");
        String jdbcPassword = env.getProperty("jdbc.password");
        
        // ...
    }
}

需要注意的是,如果应用程序需要支持多个环境,例如开发环境、测试环境和生产环境,可以在 application.properties 或 application.yml 文件中使用不同的配置属性,例如:

# 开发环境配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydb-dev
spring.datasource.username=root
spring.datasource.password=password
# 测试环境配置
# spring.datasource.url=jdbc:mysql://localhost:3306/mydb-test
# spring.datasource.username=testuser
# spring.datasource.password=testpassword
# 生产环境配置
# spring.datasource.url=jdbc:mysql://localhost:3306/mydb-prod
# spring.datasource.username=produser
# spring.datasource.password=prodpassword

在启动应用程序时,可以通过设置 SPRING_PROFILES_ACTIVE 环境变量来指定当前的环境,例如:

$ export SPRING_PROFILES_ACTIVE=dev
$ java -jar myapp.jar

或者在 application.properties 或 application.yml 文件中指定当前的环境,例如:

spring.profiles.active=dev
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的使用 Spring Boot 框架实现的用户登陆注册以及查询用户列表的示例项目,包含了 pom.xml 文件pom.xml 文件: ```xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>user-management</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.2</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <java.version>11</java.version> </properties> <dependencies> <!-- Spring Boot web framework --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot data JPA --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- H2 in-memory database --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <!-- Spring Boot test framework --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <!-- Spring Boot Maven plugin --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> ``` 该项目使用了 Spring Boot 的 web 和 data JPA 模块,以及 H2 内存数据库。其,web 模块用于实现 RESTful API,data JPA 模块用于实现数据库访问功能,H2 内存数据库用于存储用户信息。 下面是项目的核心代码: User.java 文件: ```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @NotBlank @Size(max = 50) @Email private String email; @NotBlank @Size(max = 120) private String password; // getters and setters } ``` 该类是一个实体类,用于映射数据库的用户表。其,id 为用户的唯一标识,email 为用户的邮箱,password 为用户的密码。 UserController.java 文件: ```java @RestController @RequestMapping("/api/users") public class UserController { @Autowired private UserRepository userRepository; @GetMapping("") public List<User> getAllUsers() { return userRepository.findAll(); } @PostMapping("/register") public ResponseEntity<?> registerUser(@Valid @RequestBody User user) { if (userRepository.existsByEmail(user.getEmail())) { return ResponseEntity.badRequest().body("Email already exists"); } user.setPassword(new BCryptPasswordEncoder().encode(user.getPassword())); userRepository.save(user); return ResponseEntity.ok("User registered successfully"); } @PostMapping("/login") public ResponseEntity<?> authenticateUser(@RequestBody User user) { User existingUser = userRepository.findByEmail(user.getEmail()) .orElseThrow(() -> new ResourceNotFoundException("User", "email", user.getEmail())); if (!new BCryptPasswordEncoder().matches(user.getPassword(), existingUser.getPassword())) { return ResponseEntity.badRequest().body("Invalid password"); } return ResponseEntity.ok("User authenticated successfully"); } } ``` 该类是一个控制器类,用于处理用户相关的请求。其,`@RestController` 注解表明该类是一个 RESTful API 控制器,`@RequestMapping` 注解指定了该控制器处理的请求路径前缀。`@Autowired` 注解用于自动注入 `UserRepository` 对象,该对象用于访问数据库。 `@GetMapping` 注解用于处理 GET 请求,该方法返回所有用户的列表。`@PostMapping` 注解用于处理 POST 请求,`/register` 路径用于注册新用户,`/login` 路径用于验证用户身份。 以上就是一个简单的使用 Spring Boot 框架实现的用户登陆注册以及查询用户列表的示例项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值