springboot里注解的学习

前言

springboot里有大量的注解,每个注解都有自己的作用,如果少了某个注解,项目可能就跑不起来了。开始接触项目的时候不太懂注解的作用,也没有系统地学习过,随着自己接触项目越来越深入,发现注解的学习非常必要。于是,专门写一篇博客来记录下自己学习注解踩过的坑和学习到的知识吧。

正文

@SpringBootApplication

这个注解是启动类注解,一般在root目录下。这个注解等于@Configuration、@EnableAutoConfiguration、@ComponentScan三个注解。正是因为有@Configuration的功能,在启动类里用@Bean标注的方法同样会生成bean被spring容器管理到。

@ComponentScan

查找资料,@ComponentScan 注解会自动扫描指定包下的全部标有 @Component注解 的类,并注册成bean,当然包括 @Component 下的子注解@Service、@Repository、@Controller。@ComponentScan 注解没有类似 、的属性。有一点需要注意的是,@ComponentScan后的value是要扫描的目录,可以是单个目录,也可以是多个目录,多个目录用大括号包起来,以","分隔,具体如下:
扫描单个目录:

@ComponentScan("edu.zju.ccnt")

扫描多个目录:

@ComponentScan({"edu.zju.ccnt.newconfig","edu.zju.ccnt.service","edu.zju.ccnt.dao"})

当不带value时,会扫描当前package,这一点容易被忽略。一般启动类在根目录下,而有了@SpringBootApplication等同于有了@ComponentScan,这样就可以扫描所有的bean了。

@Controller

@Controller注解通常作用于controller上,它也是一种特殊的@Component,也就是说,用@Controller标注的Controller同样会被注册为bean。如果我想在main函数里调用某个controller,我只要通过容器获得这个bean,然后调用controller里面的方法就可以了。
对于生成bean的那些注解,比如@Component @Service @Controller @Repository,如果可以添加value作为bean的名称,那么生成的bean就是这个指定的value。如果没有指定value,那么会给一个默认的bean的名称,命名规则很简单,如果类名第一和第二个字母均为大写,则保持和类名一致,如果不是则将首字母变为小写。参考这篇文章:https://yq.aliyun.com/articles/600531?utm_content=m_1000000551

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值