java @Value注解,@Data注解 与 lombok插件
java @Value注解 和 @Data注解
@Value注解
service层代码
@Service
public class HelloServiceImpl implements HelloService {
@Autowired
private MyConfig myConfig;
@Value(value = "${user.userName}")
private String userName;
@Value("${user.sex}")
private String sex;
}
解释: @Autowired
注解已经把相关的配置文件联系了进来,相关的配置文件里面存在user
配置参数并且user
下存在username
和sex
元素,因此@Value(value = "${user.userName}")
可以将user.username
的值赋给当前的username
;@Value("${user.sex}")
同上。
@Data注解
@Data
public class login{
private String id;
private String name;
private Integer age;
}
解释: 虽然login
里面没有写get(),set()
方法,但是@Data
注解会自动帮你配置好get(),set()
方法,将login
依赖注入后,可以使用login.set()
或者login.get()
方法都是有效的。`
===================================
@Data 注解的主要作用
是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法;
引入lombok
要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。
第一步,在maven中添加依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
第二步,安装插件
这里以IDEA为例,在setting的plugin里搜索lombok plugin,安装插件。
使用案例
常规的写法:
public class Person {
private String name;
private String address;
private Integer age;
private String hobbit;
private String phone;
public Person() {
}
public Person(String name, String address, Integer age, String hobbit, String phone) {
this.name = name;
this.address = address;
this.age = age;
this.hobbit = hobbit;
this.phone = phone;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getHobbit() {
return hobbit;
}
public void setHobbit(String hobbit) {
this.hobbit = hobbit;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", address='" + address + '\'' +
", age=" + age +
", hobbit='" + hobbit + '\'' +
", phone='" + phone + '\'' +
'}';
}
}
用@Data的写法:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
private String name;
private String address;
private Integer age;
private String hobbit;
private String phone;
}