大家好,欢迎来到IT知识分享网。
使用@Value+${}获取properties或yml中的值并赋值给某个变量(string和基本类型)
//直接将wangpeng赋值给name,如果属性类型不是string,或者无法转换,则会报错
@Value("wangpeng")
private String name;
//string占位符语法规则,作为将name作为key,去properties文件中寻找name=value的value值,如果找不到,则使用冒号后面的值作为默认值,如果没有默认值,直接将${name}作为普通字符串赋值给name属性
@Value("${name:wangpeng}")
private String name;
//基本类型及包装类(这里没有例举全)
@Value("${a:1}")
private byte a;
@Value("${b:100}")
private short b;
@Value("${e:5.2}")
private float e;
@Value("${g:false}")
private boolean g;
@Value("${h:h}")
private char h;
@Value("${a1:1}")
private Byte a1;
@Value("${b1:100}")
private Short b1;
@Value("${c1:3000}")
private Integer c1;
使用@Value+${}获取properties或yml中的值并赋值给某个变量(数组)
//默认值是逗号分隔
@Value("${array:1,2,3,4}")
private int[] array;
使用@Value+${}赋值给某个静态变量
//这样直接写是不能获取到配置中的值的
@Value("${name}")
private static String userName;
//可以给指定的静态变量写一个set方法
@Service
public class UserService {
private static String userName;
@Value("${name}")
public void setUserName(String userName) {
UserService.userName = userName;
}
public String test() {
return userName;
}
}
使用@Value+#{}SpEL表达式切割字符串
@Value("#{'${list}'.split(',')}")
private List list;
//对应的配置
list=10,11,12,13
//给List或者Set设置默认值空
@Value("#{'${set:}'.empty ? null : '${set:}'.split(',')}")
private Set set;
//对应的配置
set=10,11,12,13
使用@Value+#{}SpEL表达式获取bean
//作为EL表达式解析,将jdbcConfigTemplate当作beanName去容器中寻找,找到则进行注入,找不到则报错
@Value("#{jdbcConfigTemplate}")
private JdbcTemplate jdbcConfigTemplate;
使用@Value+#{}SpEL表达式获取变量
@Service
public class RoleService {
public static final int DEFAULT_AGE = 18;
public int id = 1000;
public String getRoleName() {
return "管理员";
}
public static int getParentId() {
return 2000;
}
}
@Service
public class UserService {
@Value("#{roleService.DEFAULT_AGE}")
private int myAge;
@Value("#{roleService.id}")
private int id;
@Value("#{roleService.getRoleName()}")
private String myRoleName;
@Value("#{roleService.getParentId()}")
private String myParentId;
}
使用@Value+#{}获取静态类的值
@Value("#{T(java.lang.Math).random()}")
private double randomValue;
使用@Value+#{}进行逻辑运算
//拼接字符串
@Value("#{roleService.roleName + '' + roleService.DEFAULT_AGE}")
private String value;
//逻辑判断
@Value("#{roleService.DEFAULT_AGE > 16 and roleService.roleName.equals('苏三')}")
private String operation;
//三元运算符
@Value("#{roleService.DEFAULT_AGE > 16 ? roleService.roleName: '苏三' }")
private String realRoleName;
使用@value注解写在自定义注解上,方便管理
@Value("${spring.port}")
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ServletPort {
}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/54454.html