SpringBoot入门篇(注解篇一)

在说明Spring的注解前先来理解一下Spring中最重要的两个概念,一个是“依赖注入”,另一个是“控制反转”。依赖注入,我理解的就是在开发中我们需要依赖于Spring主动注入的一些实例化对象来作为资源提供给我们进行使用,简称“开发者依赖Spring的资源注入来完成开发”;而控制反转,即开发者将手动new对象的工作交给了Spring来完成,这是一个由主动创建到被动接受的过程,也就是将控制实例化对象的权力反转给了Spring容器来完成。

----------------------------------------------------------------------------------
@RestController 称为构造型注解,相当于@ResponseBody + @Controller合在一起的作用,提示Spring此类扮演着一个特殊的角色,对于web项目来说,所有相关的处理进来后都要询问此类。

@Controller(控制器,提供控制服务,对应的是工程中的Action)

  • 两者间的关系与区别:@RestController注解相当于@ResponseBody + @Controller合在一起的作用,若只使用RestController进行注释,则此类中的方法无法返回jsp或则html界面,因为此时配置的视图解析器 InternalResourceViewResolver已经失效 了,所以只能将Return 里的内容进行返回。而如果想要返回一些视图界面则需要用 @Controller配合视图解析器InternalResourceViewResolver。如果需要返回JSON,XML或自定义的mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解,如:public @ResponseBody String uploadFile();

@service(业务层、服务层,一般需要注入dao层,自身要注入到controller中(及action),工程中对应在Service层)。

@Repository (持久层、数据访问层注解)用于标注数据访问组件,即DAO组件。

@Component 是一个泛指组件,当组件不好归类的时候,我们又想交给Spring去管理,此时可以使用这个注解进行标注,如在Dao 层就可以使用这个注解,这样可以将Dao层成功在Service中进行注入。

  • 共同点:被@controller 、@service、@repository 、@component 注解的类,都会自动将这些类纳入进spring容器中进行管理。

----------------------------------------------------------------------------------

@Autowired  可以对类成员变量(不推荐)、方法及构造函数(官方推荐)进行标注,来完成自动装配的工作,其按照类型来装配依赖对象,默认情况下它要求依赖对象必须存在的,如果想按照名称进行装配可以结合@Qualifier进行使用。使用此注解可以消除 set和get方法。详细的使用推荐可参考这边博客https://www.jianshu.com/p/4babcee0774c。

@Qualifier  (注,此注解要与@Autowired一起使用)的意思是合格者,它表明了哪个实现类才是我们所需要的,使用方法如:@Qualifier("myService"),使用此注解时需要注意的是其参数名称应该是我们之前所定义@Service注解的名称之一。

@resource (建议在setter方法上进行标注)此注解与@Autowired具有同样的作用,但是默认使用的方法是相反的,其包含了两个参数,分别是命名和类型,默认按照命名进行自动装载,也可进行标注如@Resource(name="myDao"),或者使用类型进行装载。(注,如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配)

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

未完待续,每天进步一点点----------------------------------------------------------------------------
 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值