Spring學習筆記(二)——註解建立物件和注入屬性
阿新 • • 發佈:2019-02-18
一、Bean相關的註解
與SpringBean相關的註解有以下四大類:
@Component
:標註一個普通的Spring Bean類@Controller
:標註一個控制器元件類@Service
:標註一個業務邏輯元件類@Repository
:標註一個DAO元件類
如果我們需要定義一個普通的Spring Bean,那麼直接使用@Component標註即可。但如果用@Repository、@Service或者@Controller來標註,那麼這個Bean類將被作為特殊的JavaEE元件來對待。在Spring的未來版本中,@Controller、@Service和@Repository也許還能攜帶更多的語義,因此,如果需要在JavaEE應用中使用這些註解時,儘量考慮使用@Controller、@Service和@Repository來代替普通的@Component註解。
二、使用註解來建立物件
1、匯入jar包
我們除了在:戳我一下中需要的jar包外,還需要匯入:
2、配置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/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- bean definitions here -->
<!-- 開啟註解掃描 -->
<!-- 開啟註解掃描後,它會到你的包裡掃描類,方法,屬性上的註解 -->
<context:component-scan base-package="com.jiayifan.ano">
<!-- 這裡的如果有多個包,我們可以用"com.jiayifan"來代替以此為開頭的所有包 -->
<!-- 只掃描屬性上的註解 -->
<!-- <context:annotation-config></context:annotation-config> -->
</beans>
3、寫一個類
package com.jiayfian.test;
import com.jiayifan.ano.*;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestAnno {
@Test
public void test1() {
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
Bean1 b = (Bean1) context.getBean("Bean1");
System.out.println(b);
b.add();
}
}
4、執行結果截圖
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
Bean1 b = (Bean1) context.getBean("Bean1");
System.out.println(b);
b.add();
我們可以感覺到用註解的方法來建立類要比配置檔案簡單一點。
三、用註解來注入物件屬性
(1)建立dao和service物件
(2)在service類裡面定義一個dao型別屬性
(3)在dao屬性上使用@AutoWired
註解自動完成注入(我們也可以通過使用@Resource(name="建立的物件的名稱,寫在value中的")
完成注入)
service類
package com.jiayifan.ano;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component(value="service")
public class Bean2Service {
//得到Dao物件
//1、先建立一個Dao型別屬性
//2、在dao屬性上使用註解完成物件注入
@Autowired
private Bean2Dao dao;
//使用註解方法時不需要set方法
public void add() {
System.out.println("Bean2Service");
dao.add();
}
}
dao類
package com.jiayifan.ano;
import org.springframework.stereotype.Component;
@Component(value="dao")
public class Bean2Dao {
public void add() {
System.out.println("Bean2Dao");
}
}
執行程式碼
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
Bean2Service b = (Bean2Service) context.getBean("service");
System.out.println(b);
b.add();
結果截圖
四、配置檔案和註解混合使用
1、建立物件操作使用配置檔案實現
2、注入屬性的操作使用註解方式實現
發現了一個講解Spring註解的博文,推薦一下:戳我一下