SpringBoot配置文件注入值数据校验

  1 package com.hoje.springboot.bean;
  2 
  3 import org.springframework.beans.factory.annotation.Value;
  4 import org.springframework.boot.context.properties.ConfigurationProperties;
  5 import org.springframework.boot.context.properties.EnableConfigurationProperties;
  6 import org.springframework.stereotype.Component;
  7 import org.springframework.validation.annotation.Validated;
  8 
  9 import javax.validation.constraints.Email;
 10 import java.util.Date;
 11 import java.util.List;
 12 import java.util.Map;
 13 
 14 /**
 15  * 将配置文件中配置的每一个属性的值,映射到这个组件中
 16  * @ConfigurationProperties :告诉SpringBOot将本类中的所有属性和配置文件中相关配置进行绑定;
 17  * prefix = "person":配置文件中哪个下面的所有属性进行一一映射
 18  *
 19  * 只有这个组件是容器中的组件,才能使用容器中的功能;
 20  */
 21 @Component
 22 @ConfigurationProperties(prefix="person")
 23 @Validated
 24 public class Person {
 25 
 26     /**
 27      *<bean class="Person">
 28      *     <property name="LastName" value="字面量/${key}从环境变量、配置文件中获取值/#{SpEL}"></>
 29      * </>
 30      */
 31    /* @Value("${person.last-name}")*/
 32     @Email
 33      private String lastName;
 34    /* @Value("#{11*2}")*/
 35      private Integer age;
 36    /*  @Value("true")*/
 37      private Boolean boss;
 38      private Date bitrh;
 39      private Map<String,Object> maps;
 40      private List<Object>  lists;
 41      private Dog dog;
 42 
 43     @Override
 44     public String toString() {
 45         return "Person{" +
 46                 "lastName='" + lastName + '\'' +
 47                 ", age=" + age +
 48                 ", boss=" + boss +
 49                 ", bitrh=" + bitrh +
 50                 ", maps=" + maps +
 51                 ", lists=" + lists +
 52                 ", dog=" + dog +
 53                 '}';
 54     }
 55 
 56     public String getLastName() {
 57         return lastName;
 58     }
 59 
 60     public void setLastName(String lastName) {
 61         this.lastName = lastName;
 62     }
 63 
 64     public Integer getAge() {
 65         return age;
 66     }
 67 
 68     public void setAge(Integer age) {
 69         this.age = age;
 70     }
 71 
 72     public Boolean getBoss() {
 73         return boss;
 74     }
 75 
 76     public void setBoss(Boolean boss) {
 77         this.boss = boss;
 78     }
 79 
 80     public Date getBitrh() {
 81         return bitrh;
 82     }
 83 
 84     public void setBitrh(Date bitrh) {
 85         this.bitrh = bitrh;
 86     }
 87 
 88     public Map<String, Object> getMaps() {
 89         return maps;
 90     }
 91 
 92     public void setMaps(Map<String, Object> maps) {
 93         this.maps = maps;
 94     }
 95 
 96     public List<Object> getLists() {
 97         return lists;
 98     }
 99 
100     public void setLists(List<Object> lists) {
101         this.lists = lists;
102     }
103 
104     public Dog getDog() {
105         return dog;
106     }
107 
108     public void setDog(Dog dog) {
109         this.dog = dog;
110     }
111 }

 

转载于:https://www.cnblogs.com/hoje/p/10782713.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为AI助手,我无法提供完整的代码,但是可以提供一些基本的代码示例和思路: 1. 创建 Token 在 Spring Boot 中,我们可以创建一个 Token 来管理 token 的生成和校验。可以根据具体需求来定义 Token 的属性和方法。以下是一个简单的 Token 示例: ``` public class Token { private String secretKey; // 密钥 private long expireTime; // 过期时间 // 构造方法 public Token(String secretKey, long expireTime) { this.secretKey = secretKey; this.expireTime = expireTime; } // 生成 token public String generateToken(Map<String, Object> claims) { Date now = new Date(); Date expireDate = new Date(now.getTime() + expireTime); return Jwts.builder() .setClaims(claims) .setExpiration(expireDate) .signWith(SignatureAlgorithm.HS512, secretKey) .compact(); } // 校验 token public boolean validateToken(String token) { try { Jwts.parser().setSigningKey(secretKey).parseClaimsJws(token); return true; } catch (Exception e) { return false; } } } ``` 在上述 Token 中,我们使用了 jjwt 库来生成和校验 token。 2. 在 Spring Boot 中使用 Token 在 Spring Boot 中,我们可以在需要使用 token 的地方注入 Token ,然后调用 generateToken 方法来生成 token,调用 validateToken 方法来校验 token。以下是一个简单的示例: ``` @RestController public class UserController { @Autowired private Token token; @PostMapping("/login") public ResponseEntity<?> login(@RequestBody User user) { // 登录逻辑 // ... // 生成 token Map<String, Object> claims = new HashMap<>(); claims.put("userId", user.getId()); String tokenStr = token.generateToken(claims); return ResponseEntity.ok(new LoginResponse(tokenStr)); } @GetMapping("/user") public ResponseEntity<?> getUser(@RequestHeader("Authorization") String tokenStr) { if (!token.validateToken(tokenStr)) { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build(); } // 查询用户信息 // ... return ResponseEntity.ok(userInfo); } } ``` 在上述示例中,我们在 UserController 中注入了 Token ,并在 login 和 getUser 方法中使用了 Token 的方法来生成和校验 token。 3. 在配置文件配置 Token 如果我们希望在配置文件配置 Token 的属性,例如密钥和过期时间,可以使用 @ConfigurationProperties 注解来实现。以下是一个简单的示例: ``` @Configuration @ConfigurationProperties(prefix = "token") public class TokenConfig { private String secretKey; // 密钥 private long expireTime; // 过期时间 // getter 和 setter 方法 // 创建 Token @Bean public Token token() { return new Token(secretKey, expireTime); } } ``` 在上述示例中,我们使用了 @ConfigurationProperties 注解来将配置文件中以 token 开头的属性注入到 TokenConfig 中,并使用 @Bean 注解来创建 Token 的实例。然后在需要使用 Token 的地方注入 Token 即可。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值