首页 > 代码库 > spring学习(二)——注解

spring学习(二)——注解

近期看github上Java项目接触到多种注解,这里对其使用场景做简单的整理

问题:

1. 为什么要用注解?不用注解是否可以实现?

2. 注解的组成?

注解类似一个接口

注解可以定义可指定的属性

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  
   

spring学习(二)——注解