spring:注解@Resource,实现引用类型的赋值
生活随笔
收集整理的這篇文章主要介紹了
spring:注解@Resource,实现引用类型的赋值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
注解@Resource,?根據byName賦值,找不到. 就會根據byType再找一次,賦值
@Resource和@Autowired的區別: @Autowired來自spring框架, 而?@Resource來自jdk.
package com.atChina.Test6;import javax.annotation.Resource;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 org.springframework.stereotype.Controller; import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service;/** @Component: 創建對象,默認創建的是單例對象* 屬性: value,表示對象的id* 位置: 在類的上面,表示創建該類的對象* @Component(value="myStudent")等同于<bean id="myStudent" class="com.atChina.Test.Student" /> * */ @Component("student") public class Student {@Value("宋江")private String name;private int age;/** 引用類型,使用框架的自動注入: * @Resource:來自jdk中的注釋,給引用類型賦值,支持byName,byType. 默認是byName* 位置:1)在屬性定義的上面,推薦使用,無需set方法* 2)在set方法的上面*/@Resource // 如果根據byName賦值,找不到. 就會根據byType再找一次,賦值private School school;public void setName(String name) {System.out.println("setName:"+name);this.name = name;}@Value("23")public void setAge(int age) {System.out.println("setAge:"+age);this.age = age;}@Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + ", school=" + school+ "]";} }?Student類中有一個School屬性.
package com.atChina.Test6;import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;@Component("sch") public class School {@Value("海洋大學")private String name;@Value("深海")private String address;public void setName(String name) {this.name = name;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "School [name=" + name + ", address=" + address + "]";} }?
注解@Resource,?只按byName賦值
package com.atChina.Test7;import javax.annotation.Resource;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 org.springframework.stereotype.Controller; import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service;/** @Component: 創建對象,默認創建的是單例對象* 屬性: value,表示對象的id* 位置: 在類的上面,表示創建該類的對象* @Component(value="myStudent")等同于<bean id="myStudent" class="com.atChina.Test.Student" /> * */ @Component("student") public class Student {@Value("宋江")private String name;private int age;/** 引用類型,使用框架的自動注入: * @Resource:來自jdk中的注釋,給引用類型賦值,支持byName,byType. 默認是byName* 位置:1)在屬性定義的上面,推薦使用,無需set方法* 2)在set方法的上面*/@Resource(name="sch") // 只按byName,需要指定@Resource的name屬性,name指定bean對象的名稱private School school;public void setName(String name) {System.out.println("setName:"+name);this.name = name;}@Value("23")public void setAge(int age) {System.out.println("setAge:"+age);this.age = age;}@Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + ", school=" + school+ "]";} }?
總結
以上是生活随笔為你收集整理的spring:注解@Resource,实现引用类型的赋值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring12:注解的方式实现di(依
- 下一篇: spring17:Bean的生命始末标签