Spring、SpringBoot常用註解(二)

上一篇介紹了部分的常用注解,喜欢的小伙伴可以看一看,本期继续列举一些常用的注解。

Spring、SpringBoot常用註解(一)


@Service    -- service标注业务层组件
这个注解是写在类上面的,标注将这个类交给Spring容器管理,spring容器要为他创建对象。默认按照名称进行装配,名称可以通过name属性指定,如果没有name属性,注解写在字段上时,默认取字段名进行查找,如果注解写在setter方法上,默认按照方法属性名称进行装配。当找不到匹配的bean时,才按照类型进行装配,如果name名称一旦指定就会按照名称进行装配

@Component

最基本的bean注入注解,直接注解在类上,将普通pojo实例化到spring容器中,标注将这个类交给Spring容器管理,之后这个pojo可以相互使用spring容器中的其它对象;(之前在使用时遇到了一个坑,当时使用多线程去定时执行多个定时任务,定时任务中心类没有使用注解注入到spring容器中,导致整线程一直报错提示找不到该类)

@Component
public class CallAPIService implements CallAPIServiceInterface {

/**
*    由于TaskCenterService 这个类时使用spring的注解注入到容器中,调用了通过使用@Autowired注入,
* 那么调用类本身也应被Spring容器管理
*/
	@Autowired
	private TaskCenterService service;
	
}

对比下@Controller 、 @Repository、@Service、和 @Component ,这几个注解都是用来将类标记位bean,交给spring容器管理,但是作用范围又有不同。spring默认扫描的注解类型是@Component,不过在@Component的语义基础之上细化为@Reposity,@Service,@Controller。

  • @Controller用在控制层,使用该注解的类将会变为一个springMVC Controller对象,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping注解;
  • @Service 标注业务层组件,默认按照名称进行装配,名称可以通过name属性指定
  • @Repository 此注解式持久层组件,用于标注数据访问组件,即DAO组

@Primary 自动装配时当出现多个Bean候选于标者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常。

@SerializedName 用于json字段匹配自定义属性名。Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。使用Gson解析json成对象时默认的是将json里对应字段的值解析到java对象里对应字段的属性里面。对于自定义属性名称与json字段不对应时,可以使用@SerializedName注解来将对象里的属性跟json里字段对应值匹配起来。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值