Spring——注释

关于在spring容器中增加注释的功能,我们需要增加以下说明:
在这里插入图片描述
然后需要在IOC容器中开启扫描注解:
在这里插入图片描述

用于创建对象的

该类注解相当于:<bean id=" " class=" ">

@Component

,他的作用是把资源让给spring来管理,相当于在xml中配置一个bean,其中的属性:value指定bean的id。如果不指定value属性,默认bean的id是当前类的类名。首字母小写

@Controller、@Service、@Repository

它们三个注解都是针对一个的衍生注解,它们的作用属性都是一摸一样的,只不过提供了更加明确的语义化

  • @Controller:一般用于表现层的注解
  • @Service:一般用于业务层的注解
  • @Repository:一般用于持久层的注解

用于注入数据的

相当于:
<property name=" " ref=" “>
<property name=” " value=" ">

@Required

@Required注释适用于bean对象的依赖注入方法(即要有set方法):
在这里插入图片描述

@Autowired

@Autowired适用于字段,构造函数和多参数方法,允许通过参数中的限定符注释缩小范围

  1. 用于构造函数:
    在这里插入图片描述
  2. 用于set方法:
    在这里插入图片描述
  3. 用于普通函数
    在这里插入图片描述

对于@Autowired存在的问题是:@Autowired是首先按照类型自动装配,它会先去IOC容器中寻找是否具有该类型的bean的对象,如果IOC容器中存在多个该类型的bean对象,那么它就会通过变量名/方法名在IOC容器中匹配:
在这里插入图片描述
通常@Autowired要和@Qualifier一起配合使用:
在这里插入图片描述

@Resource

该注解直接按照bean的id注入,它也只能注入其他bean类型,其中name属性指定了bean的id

@Value

该注解注入基本数据类型和S挺类型数据的,其中value属性用于指定值

用于改变范围的

相当于:
<bean id=" " class=" " scope=" ">

@Scope

该注解的作用是指定bean的作用范围,其中的value属性指定了范围的值

关于spring注解和XML的比较

在这里插入图片描述

新注解

我们发现,对于上面的注解,我们还需要在xml中开启注解扫描:

<context:component-scan:base-package=" "/>
@Configuration

该注解的作用是用于指定当前类是一个spring配置类,当创建容器时会从该类上加载注解,获取容器时需要使用的配置文件:

@Configuration
public class SpringConfiguration{
}
@ComponentScan

我们已经用注解Configuration指定了配置文件用类来替代,但是我们还是需要告知springioc容器要扫描的包,这样我们就用到@ComponentScan注解
该注解的作用是用于指定spring在初始化容器时要扫描的包,作用和在spring的xml配置文件的:

<context:component-scan base-packege=" " />

在这里插入图片描述

@Bean

该注解只能写在方法上,表明使用此方法创建一个对象,并且放入spring容器中,其中的name属性给当前@Bean注解方法创建的对象指定一个名称(即bean的id)
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值