javascript
JAVAEE框架之Spring注解
四.注解
? 通過注解來實現依賴注入,為什么要學這個呢???之前的bean的配置都在哪里呢?都放在了beans.xml這個文件里面。當項目有很多個bean需要配置的時候,假設有30張表,需要配置每個表對應的dao實現類、service實現類,會導致配置文件比較臃腫。今天通過使用注解來簡化bean文件的配置。
? 在項目開發中,使用xml文件和注解都可以來實現依賴注入。
4.1 pom.xml
<!--導入jar依賴--> <dependencies><!--Spring:jar依賴--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.7.RELEASE</version></dependency><!--jUnit:jar依賴--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency> </dependencies>4.2 beans.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--需要注意:掃描包,來找到需要注入的Bean的包位置;base-package:基本掃描路徑,去哪個包下進行掃描;--><context:component-scan base-package="com.aaa.pojo"/></beans>4.3 分層構建
在之前的JAVA WEB項目有dao層、service層、controller層。
丁磊–》163郵箱起家–>大話西游 等游戲,養豬;
張朝陽–>搜狐老板–》養狐貍
馬化騰–》騰訊老板–>養企鵝
馬云–>養貓
劉強東–》養狗
4.4 注解標簽
@Component:將類注冊為Spring的Bean組件value="原來的id值"value也可以省略,“id的值"如果不寫("id值"),會怎么樣???默認為:首字母小寫的類名--------------------------------------------- 自動裝配: @Autowired:按照Bean的類型進行裝配;byType按類型裝配,只能裝配一個類型實現類;如果存在多個相同類型的實現類,需要針對每個實現類,增加一個注解@Qualifer("實現類的id名")注:@Qualifer不能單獨使用,需要和@Autowird一起使用 @Resource(name = "fox"):按照Bean的name來進行裝配注入;byName實現類:
@Component public class PigImpl implements IAnimal{//這些私有屬性,任意發揮,這里不是重點;private double weight;private String color;//在方法的實現;public void run() {System.out.println("小豬在跑...");} }Person類:注意這時候沒有Qualifier
@Component public class Person {//這時候要養豬,理解一下;注入值;//自動裝配的方式;//Qualifier(value="值")不是name;@Autowiredprivate IAnimal animal;public void feed(){animal.run();System.out.println("開始喂養");}@Overridepublic String toString() {return "Person{" +"animal=" + animal +'}';} }不管是哪種裝配Bean的方式,都需要增加裝配Bean的包路徑。
<!--需要注意:掃描包,來找到需要注入的Bean的包位置;base-package:基本掃描路徑,去哪個包下進行掃描; --> <context:component-scan base-package="com.aaa.pojo,com.aaa.dao"/>4.5
總結:
1.為什么要使用注解注入和裝配;
2.掌握@Component注解,理解@Autowired 按類型裝配和@Resource按name裝配;
3.使用@Component注解的時候,切記要增加掃描包的配置,注解哪個Bean,就要增加哪個掃描包路徑。
l.run();
System.out.println(“開始喂養”);
}
@Override
public String toString() {
return “Person{” +
“animal=” + animal +
‘}’;
}
}
4.5
注意的問題:
[外鏈圖片轉存中…(img-CcHERyds-1592274645404)]
有兩個IAnimal接口的實現類的時候,報錯了。
[外鏈圖片轉存中…(img-QmgktRb9-1592274645407)]
[外鏈圖片轉存中…(img-YET1Q6DV-1592274645409)]
[外鏈圖片轉存中…(img-MKslce4f-1592274645414)]
總結:
1.為什么要使用注解注入和裝配;
2.掌握@Component注解,理解@Autowired 按類型裝配和@Resource按name裝配;
3.使用@Component注解的時候,切記要增加掃描包的配置,注解哪個Bean,就要增加哪個掃描包路徑。
總結
以上是生活随笔為你收集整理的JAVAEE框架之Spring注解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA就业面试题之单例模式
- 下一篇: JAVAEE框架之Spring新注解