注解的使用之Resource注解的使用

引用类型@Resource
@Resource 来自JDK中的注解,spring框架提供了对这个注解的功能支持,可以使用它给引用类型赋值
使用的也是自动注入原理,支持byName,byType,默认是byName
位置:1.在属性定义的上面,无需set方法,推荐使用。
2.在set方法的上面
package com.example.ba06;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;


@Component("myStudent")
public class Student {

    @Value(value = "张飞")
    private String name;
    @Value(value = "27")
    private Integer age;

    /*引用类型
    * @Resource 来自JDK中的注解,spring框架提供了对这个注解的功能支持,可以使用它给引用类型赋值
    *           使用的也是自动注入原理,支持byName,byType,默认是byName
    * 位置:1.在属性定义的上面,无需set方法,推荐使用。
    *      2.在set方法的上面
    * */
    //默认是byName:先使用byName自动注入,如果byName赋值失败,再使用byType
    @Resource
    private School school;

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
    
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", school=" + school +
                '}';
    }
}

学校类:

package com.example.ba06;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("mySchool")
public class School {
    @Value(value = "白皮大学")
    private String name;
    @Value(value = "广州")
    private String address;

    public void setName(String name) {
        this.name = name;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "School{" +
                "name='" + name + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

运行结果:

注解的使用之Resource注解的使用

 

 

上面代码可以看到,默认是byName,学校类中并没有声明的名称,程序也可以正常运行且输出正确结果,原因是:先使用byName自动注入,如果byName赋值失败,再使用byType

若要使用byName方法,只需要在@Resource后面加入(name=“mySchool”)

注解的使用之Resource注解的使用

 

 

 
上一篇:项目实训第三周1


下一篇:本地测试没问题, 打jar包后在Linux为找不到资源