近期看github上Java項目接觸到多種註解,這裏對其使用場景作簡單的整理java
問題:git
1. 爲何要用註解?不用註解是否能夠實現?github
2. 註解的組成?spring
註解相似一個接口json
註解能夠定義可指定的屬性app
3. 如何自定義註解?框架
4. java spring框架中有哪些已有的註解?單元測試
註解 | 使用場景 | 備註 |
---|---|---|
@Configuration | 相似於xml中<beans>標籤 | |
@Bean | 相似於xml中<bean>標籤 | 常與@Configuration配合使用 |
@ComponentScan | 可指定掃描類的範圍 @ComponentScan(basePackages="org.jc" ) |
|
@Component | ||
@Resource | 屬於javax.annotation.Resource,默認按name注入,可指定按name或type注入。若是同時指定了name和type,則從Spring上下文中找到惟一匹配的bean進行裝配,找不到則拋出異常。 | |
@Autowired | 是spring提供的註解,告知spring容器某個屬性須要自動注入,按type注入 能夠結合@Qualifier按name注入 | |
@Injected | 與Autowired相似 | |
@Import | ||
@Profile | 指定運行環境,如 @Profile("local") | |
@Value | 注入靜態變量,如 @Value("${my.name}") |
|
@Repository | 數據訪問組件,一個容器類,可能是數據源配置 | |
@Service | 自定義服務,默認自動加載到spring容器 | |
@Controller | 控制層組件 | |
@RequestMapping | 用於映射請求,指定處理哪一個或哪類url的請求;可做用於類 和 方法,如@RequestMapping(value = "/mylink", method = RequestMethod.GET) |
|
@RequestBody | ||
@RequestParam | ||
@ResponseBody | 能夠根據請求方的返回格式的要求,返回json或xml格式,不單單返回string | |
@EnableScheduling | ||
@Scheduled | 定時任務 | |
@Transaction | 事務 | |
@Thrift | ||
@SpringBootAplication | ||
@Test | 單元測試,用於修復方法 | |
@SpringBootTest | 是多個註解的組合 = @Configuration,@EnableAutoConfiguration,@ComponentScan | |
@RunWith | 用於單元測試,如@RunWith(SpringJUnit4ClassRunner.class) | |
@ApplicationPath | ||
@ContextConfiguration | 如@ContextConfiguration(locations = { "org.springframework.amqp.rabbit.log4j.config.server" }, loader = AnnotationConfigContextLoader.class) | |
@RabbitListner | ||
@RabbitHandler |