1. 聲明Bean的註解:
1.1 @Component : 組件,沒有明確的角色
1.2 @Service : 在業務邏輯層(service層)使用
1.3 @Repository : 在數據訪問層(dao層)使用
1.4 @Controller : 在展示層(MVC--SpringMVC)使用web
2. 注入Bean的註解:
2.1 @Autowired : Spring提供的註解
對類成員變量、方法及構造函數進行標註,完成自動裝配的工做。經過 @Autowired的使用來消除set ,get方法
默認按類型裝配(這個註解是屬業spring的),默認狀況下必需要求依賴對象必須存在,若是要容許null 值,能夠設置它的required屬性爲false,
如:@Autowired(required=false) ,若是咱們想使用名稱裝配能夠結合@Qualifier註解進行使用spring
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時,纔可以經過運行時的反射機制來處理註解.-->指定攔截規則mvc
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緩存支持;app
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 前初始化webapp