1.简单类型的属性赋值@Value(value=“属性值”)
1.1特点:无需set方法,可以在属性上面也可以在set上面
1.2直接在类里面的定义的属性值上面加入@Value(value=“属性值”)
2.也可以在set方法上面@Value(value=“属性值”)
2.引用类型的注解赋值直接用@Autowired
2.1特点:无需set方法,可以在属性上面也可以在set上面
2.2支持byName,byType(默认);直接在配置文件里面找
2.2.3怎么使用byName()除了要实用@Autowired还要使用@Qualifier(“对象名”)
2.3@Autowired()的()里面有个参数required是一个boolean
2.2.3@Autowired(required=true)当这个对象不存在的时候报错(企业常用)
2.2.4@Autowired(required=false)当这个对象出错的时候,不会报错
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201031152453625.png#pic_center)
package org.example.ba01;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* @compatent:创建对象的,等同于<bean>功能 属性value就是对象的名称,也就是bean的id值
* value值是唯一的,创建的对象在整个Spring容器中只有一个
* 位置:在类的是上面
* 等同于<bean id="myStudent" class="ba01.student" />
* 需要配置文件resource里面
*/
@Component(value = "myStudent")
public class Student {
@Value(value = "张三")
private String name;
@Value(value = "18")
private int age;
//这里使用byName
// @Autowired
// @Qualifier("my_School")
@Autowired
private School school;
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", school=" + school +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201031145550795.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1aWd1b18=,size_16,color_FFFFFF,t_70#pic_center)
3.JDK的注解@Resource自动注入
1.支持byName(默认),byType
2.特点:使用byName,如果找不到,再使用byType
3.只使用byName@Resource(name=“对象名”)