Spring 下注解说明

1. Spring4.3中引进了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},来帮助简化常用的HTTP方法的映射,并更好地表达被注解方法的语义。

以@GetMapping为例,Spring官方文档说:
@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。该注解将HTTP Get 映射到 特定的处理方法上。

2. @Resource 和@Autowired 的区别对比

@Resource 和@Autowired 都是做bean 的注入时使用,其实@Resource 并不是Spring 的注解,它的包是javax.annotation.Recource,需要导入,但是Spring 支持该注解的注入。

  2.1 共同点

  两者都可以写在字段和setter 方法上。两者如果都写在字段上,那么就不需要再写setter 方法。

 2.2 不同点

 (1) @Autowired

  @Autowired 为Spring 提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;只按照byType 注入。

public class TestServiceImpl {
    // 下面两种@Autowired只要使用一种即可
    @Autowired
    private UserDao userDao; // 用于字段上
    
    @Autowired
    public void setUserDao(UserDao userDao) { // 用于属性的方法上
        this.userDao = userDao;
    }
}

@Autowired 注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null 值,可以设置它的required属性为false.

如果我们想使用按照名称(byName) 来装配,可以结合@Qualifier 注解一起使用。如下:

public class TestServiceImpl{
   
   @Autowired
   @Qualifier("userDao)
  private UserDao userDao;

}

(2)@Resource

@Resource默认按照ByName自动注入,由J2EE提供,需要导入包javax.annotation.Resource。@Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以,如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不制定name也不制定type属性,这时将通过反射机制使用byName自动注入策略

3. 项目中用到得注解

 (1)、@CrossOrigin (2)、@RestController (3)、@Autowired  (4)、@RequestMapping  (5)、@FeignClient (6)、@Configuration

(7)、@EnableCaching (8)、@EnableFeignClients  (9)、@EnableEurekaClient  (10)、@SpringBootApplication (11)、@Override

(12) @Aspect   (13)、@Component  (14)、 @Pointcut (15)、@Before  (16)、@AfterReturning  (17)、@RequestParam  (18)、@RequestBody

(19)、@EnableDiscoverClient  (20)、@ComponentScan 、 (21)、@MapperScan (22)、@Service (23)、@Scheduled (25)、@Value

(26)、Import  (27)、@Bean  (28)、@DependsOn  (29)、@ConditionalOnMissingBean (30)、@ServerEndpoint (31)、@OnOpen

(32)、Onclose  (33)、OnMessage  (34)、OnError  (35)、@CrossOrigin 

4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的 
<bean id="" class=""/>)

泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
案例: 
<context:component-scan base-package=”com.*”> 
上面的这个例子是引入Component组件的例子,其中base-package表示为需要扫描的所有子包。 
共同点:被@controller 、@service、@repository 、@component 注解的类,都会把这些类纳入进spring容器中进行管理
 

转载于:https://my.oschina.net/kuchawyz/blog/1816777

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值