spring mvc 注解詳解(springMvc mybatis spring)



1. 聲明Bean的注解:
1.1 @Component : 組件,沒有明確的角色
1.2 @Service : 在業務邏輯層(service層)使用
1.3 @Repository : 在數據訪問層(dao層)使用
1.4 @Controller : 在展現層(MVC--SpringMVC)使用

2. 注入Bean的注解:
2.1 @Autowired : Spring提供的注解
對類成員變量、方法及構造函數進行標注,完成自動裝配的工作。通過 @Autowired的使用來消除set ,get方法
默認按類型裝配(這個注解是屬業spring的),默認情況下必須要求依賴對象必須存在,如果要允許null 值,可以設置它的required屬性為false,
如:@Autowired(required=false) ,如果我們想使用名稱裝配可以結合@Qualifier注解進行使用

2.2 @Inject : JSR-330(Java的依賴注入標准)提供的注解
和@Aautowired一樣

2.3 @Resource : JSR-250提供的注解
默認安照名稱進行裝配,名稱可以通過name屬性進行指定,
如果沒有指定name屬性,當注解寫在字段上時,默認取字段名進行按照名稱查找,如果注解寫在setter方法上默認取屬性名進行裝配。 當找不到與名稱匹配的bean時才按照類型進行裝配。但是需要注意的是,如果name屬性一旦指定,就只會按照名稱進行裝配。

2.4 三者的區別
@Autowired和@Inject,都是通過AutowiredAnnotationBeanPostProcessor類實現的依賴注入,二者具有可互換性。
@Resource通過CommonAnnotationBeanPostProcessor類實現依賴注入
@Autowired and @Inject
Matches by Type
Restricts by Qualifiers
Matches by Name
@Resource
Matches by Name
Matches by Type
Restricts by Qualifiers (ignored if match is found by name)

3. 配置文件的注解:
3.1 @Configuration : 聲明當前類是個配置類,相當於一個Spring配置的xml文件.
3.2 @ComponentScan (cn.test.demo): 自動掃描包名下所有使用 @Component @Service @Repository @Controller 的類,並注冊為Bean
3.3 @WiselyConfiguration : 組合注解 可以替代 @Configuration和@ComponentScan
3.4 @Bean : 注解在方法上,聲明當前方法的返回值為一個Bean.
3.5 @Bean(initMethod="aa",destroyMethod="bb")--> 指定 aa和bb方法在構造之后.Bean銷毀之前執行.

4. AOP切面編程注解:
@Aspect : 聲明這是一個切面
@After @Before. @Around 定義切面,可以直接將攔截規則(切入點 PointCut)作為參數
@PointCut : 專門定義攔截規則 然后在 @After @Before. @Around 中調用
@Transcational : 事務處理
@Cacheable : 數據緩存
@EnableAaspectJAutoProxy : 開啟Spring 對 這個切面(Aspect )的支持
@Target (ElementType.TYPE):元注解,用來指定注解修飾類的那個成員 -->指定攔截規則
@Retention(RetentionPolicy.RUNTIME) --->當定義的注解的@Retention為RUNTIME時,才能夠通過運行時的反射機制來處理注解.-->指定攔截規則

5. @Enable*注解:
@EnableAsync : 開啟異步任務的支持(多線程)
@EnableScheduling : 開啟對計划任務的支持(定時器)
@EnableWebMVC : 開啟對Web MVC 的配置支持
@EnableAaspectJAutoProxy : 開啟Spring 對 這個切面(Aspect )的支持
@EnableConfigurationProperties 開啟對@ConfigurationProperties注解配置Bean的支持
@EnableJpaRepositories : 開啟對Spring Data JAP Repository 的支持
@EnableTransactionManagement 開啟對注解式事物的支持
@EnableCaching開啟注解是緩存的支持.
@EnableDiscoveryClient 讓服務發現服務器,使用服務器.Spring cloud 實現服務發現
@EnableEurekaServer 注冊服務器 spring cloud 實現服務注冊@
@EnableScheduling 讓spring可以進行任務調度,功能類似於spring.xml文件中的命名空間<task:*>
@EnableCaching 開啟Cache緩存支持;

6. SpringMVC 常用注解:
@Controller : 注解在類上 聲明這個類是springmvc里的Controller,將其聲明為一個spring的Bean.
@RequestMapping :可以注解在類上和方法上 映射WEB請求(訪問路徑和參數)
@RequestMapping(value= "/convert",produces+{"application/x-wisely"}) 設置訪問URL 返回值類型
@ResponseBody : 支持將返回值放入response體內 而不是返回一個頁面(返回的是一個組數據)
@RequestBody : 允許request的參數在request體中,而不是直接連接在地址后面 次注解放置在參數前
@Path Variable : 用來接收路徑參數 如/test/001,001為參數,次注解放置在參數前
@RestController : @Controller + @ResponseBody 組合注解
@ControllerAdvice : 通過@ControllerAdvice可以將對已控制器的全局配置放置在同一個位置
@ExceptionHandler : 用於全局處理控制器的異常
@ExceptionHandier(value=Exception.class) -->通過value屬性可過濾攔截器條件,攔截所有的異常
@InitBinder : 用來設置WebDataBinder , WebDataBinder用來自動綁定前台請求參數到Model中.
@ModelAttrbuute : 綁定鍵值對到Model中,
@RunWith : 運行器
@RunWith(JUnit4.class)就是指用JUnit4來運行
@RunWith(SpringJUnit4ClassRunner.class),讓測試運行於Spring測試環境
@RunWith(Suite.class)的話就是一套測試集合,
@WebAppConfiguration("src/main/resources") : 注解在類上,用來聲明加載的ApplicationContex 是一個WebApplicationContext ,它的屬性指定的是Web資源的位置,默認為 src/main/webapp ,自定義修改為 resource
@Before : 在 xxx 前初始化


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM