本文大概1000字,阅读大概需要5分钟
**
一、springboot属性注入
1.1 属性注入
如下图新建beans文件夹,并且新建User类和Address类:
写入如下代码:
User类:
package com.example.demo.beans;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Component;
@Component
// @ConfigurationProperties 常用于bean属性和配置文件的绑定,通过prefix可以指定配置文件中某一个节点,该节点中的子节点将自动和属性绑定
@ConfigurationProperties(prefix="user")
public class User {
// 可以通过@Value + SPEL 直接绑定springboot配置文件中的值 或者 直接写prefix="user"就不用一个个配置了。
// @Value("${user.username}")
private String username;
private Integer age;
private Date birthday;
private List<String> hobbies;
private Map<Integer, String> girlFriend;
private Address address;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public List<String> getHobbies() {
return hobbies;
}
public void setHobbies(List<String> hobbies) {
this.hobbies = hobbies;
}
public Map<Integer, String> getGirlFriend() {
return girlFriend;
}
public void setGirlFriend(Map<Integer, String> girlFriend) {
this.girlFriend = girlFriend;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", age=" + age +
", birthday=" + birthday +
", hobbies=" + hobbies +
", girlFriend=" + girlFriend +
", address=" + address +
'}';
}
}
Address类:
package com.example.demo.beans;
public class Address {
private Integer id;
private String desc;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
application.properties写入:
server.port = 8088
spring.profiles.active = dev
user.username = Jack
user.age = 18
user.birthday = 2004/01/01
user.hobbies[0] = code
user.hobbies[1] = singsong
user.girlFriend.18 = Jane
user.address.id = 1
user.address.desc = Amoy
如下图写入:
package com.example.demo;
import com.example.demo.beans.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DemoApplicationTests {
@Autowired
private User user;
@Test
void contextLoads() {
System.out.println(user);
}
}
我们运行这个DemoApplicationTests效果如下:
1.2 更多使用方法
可以看到这边属性注入已经接收到了。
另外在application.properties中可以使用表达式
${}
去引用上面的值。
更多使用,以及随机值可以看
Configuring Random Values
。
1.3 数据校验
依赖:
pom.xml写入:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
NotNull选择Javax里的。
User类中注解:
运行报错就出来了不允许为空:
在学习springboot的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。
版权声明:本文为weixin_44103733原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。