在參加完研究生考試後,感覺像是放下了一個大負擔,但並不能就此以為什麼都結束了。反而,當我今天去看了一下之前老師帶領我們班級做的一個maven項目,感覺像是第一次看到這個,十分陌生。這對於敲程式碼的人來講是十分危險的訊號,所以要趁早亡羊補牢,把遺忘的東西補一補。就此,我決定回顧這個讓我感到陌生的maven項目用到的有關的spring boot的知識點。
1 @RestController
2 @RequestMapping("/checkgroup") //映射到帶有參數「checkgroup」的頁面
3 public class CheckGroupController { //表明這個類是一個控制類
4 XXXXX5 }
1 @RequestMapping("/account")
2 public class AccountController {
3 @RequestMapping("/findAccount")
4 public String findAccount() {
5 System.out.println("查詢了賬戶。。。。");
6 return "success";
7 }
8 }
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <title>requestmapping 的使用</title>
5 </head>
6 <body>
7 <!-- 第一種訪問方式 -->
8 <a href="${pageContext.request.contextPath}/account/findAccount">
9 查詢賬戶
10 </a>
11 <br/>
12 <!-- 第二種訪問方式 -->
13 <a href="account/findAccount">查詢賬戶</a>
14 </body>
15 </html>
@Reference是dubbo的註解,也是注入,他一般注入的是分散式的遠程服務的對象,需要dubbo配置使用。除此之外的注入註解還有@Autowired(SpringBoot項目中常用。簡單來說就是引入由Spring容器管理的bean)和@resource(作用相當於@Autowired,只不過@Autowired是byType自動注入,而@Resource默認byName自動注入),而spring中的依賴注入是spring的的兩大核心之一,也叫控制反轉,他的作用是將創建對象的管理交給spring容器,以前寫項目會用new people的方式來創建一個people類,現在用了spring後,可以在xml中配置,也可以用註解的方式,在class文件開始部分寫下面的程式碼,然後在這個class文件中使用到people就可以直接用people,而不需要用new來創建了,這樣也大大降低了耦合性。
@PreAuthorize是Spring Security許可權訪問的一個註解,需要在設置好Spring Security的相關配置後,此註解才起作用。具體使用方法我暫時還沒有搞懂,故先暫時擱置。
1、@controller 控制器(注入服務)
用於標註控制層,相當於struts中的action層
2、@service 服務(注入dao)
用於標註服務層,主要用來進行業務的邏輯處理
3、@repository(實現dao訪問)
用於標註數據訪問層,也可以說用於標註數據訪問組件,即DAO組件.
4、@component (把普通pojo實例化到spring容器中,相當於配置文件中的 <bean id=”” class=””/>)
泛指各種組件,就是說當我們的類不屬於各種歸類的時候(不屬於@Controller、@Services等的時候),我們就可以使用@Component來標註這個類。
說明:
下面寫這個是引入component的掃描組件 (這是在配置文件中的書寫格式,如spring mvc中的applicationcontent.xml,在spring boot中的話,因採用的是零配置所以要直接在類上加入@component註解就可以了)
<context:component-scan base-package=」com.mmnc」>
上面的這個例子是引入Component組件的例子,其中base-package表示為需要掃描的所有子包。
共同點:被@controller 、@service、@repository 、@component 註解的類,都會把這些類納入進spring容器中進行管理
6.@Service
@Service如上所示是用於標註服務層,主要用來進行業務的邏輯處理,這裡介紹一個用法,就是當你在寫某個函數的serviceImpl類時,可以在頂部添加程式碼
1.@Service(interfaceClass = XXXService.class)
來映射對應的XXXservice,具體原理我還不知道,只是簡單列出來。