Spring中常用注解及作用

1.@Component

类注解,设置该类为spring管理的bean,属性可以定义bean的id,添加在类定义的上方,@Component注解不可以添加在接口上,因为接口无法创建对象。

eg:

步骤1:删除原XML配置

 

步骤2:在Dao上添加@Component注解

步骤3:配置Spring的注解包扫描

为了让Spring框架能够扫描到写在类上的注解,要在配置文件中进行包扫描。

 

XML与注解配置的对应关系

2.@ComponentScan

用于设定扫描路径,此注解只能添加一次,多个数据用数组格式,可以替换掉配置文件中的扫描

eg:

 

3.@Configuration

类注解,设置该类为spring配置类,添加在类定义的上方,属性可以写入定义bean的id。

eg:

步骤1:删除配置文件,创建一个配置类,在配置类上添加@Configuration注解,标识该类为配置类,替代掉XML配置文件

步骤2:在配置类上添加包扫描注解@ComponentScan替换配置文件中的扫描

 

4.@Scope

类注解,设置在类的上方,设置该类创建对象的作用范围,可以用来设置创建出来的bean是否为单例对象,属性定义bean的作用范围,默认为singleto(单例),可填prototype(非单例)

 

5.@PostConstruct

        方法注解,写在方法上面,设置该方法为初始化方法

   @PreDestroy

        方法注解,写在方法上面,设置该方法为销毁方法

eg:

 

注意:使用时如果找不到注解,需要导入依赖

 6.@Autowired

属性注解,方法注解,方法形参注解,分别可以写在属性定义上方,标准set方法上方,类set方法上方或方法形参前,为引用类型属性设置值

 @Autowired可以写在属性上,也可也写在setter方法上,最简单的处理方式是写在属性上并将 setter方法删除掉

为什么setter方法可以删除呢?

1.自动装配基于反射设计创建对象并通过暴力反射为私有属性进行设值

2.普通反射只能获取public修饰的内容

3.暴力反射除了获取public修饰的内容还可以获取private修改的内容

所以此处无需提供setter方法

7.@Qualifier

属性注解或方法注解。写在属性定义的上方,或标准set方法上方或类set方法上方。当根据类型在容器中找到多个bean,注入参数的属性名又和容器中bean的名称不一致,这个时候就需要使用到@Qualifier来指定注入哪个名称的bean对象。@Qualifier注解的属性值就是需要注入的bean的名称。@Qualifier不能独立使用,必须和@Autowired一起使用。

8.@Value

属性注解或方法注解,写在属性定义的上方或标准set方法上方或类set方法上方,为基本数据类型 或字符串类型属性设置值。属性值为要注入的属性值。一般会被用在从properties配置文件中读取内容进行使用。

9.@PropertySource

类注解,写在类定义的上方,用来加载properties文件中的属性值,属性值用来设置加载的properties文件对应的文件名或文件名组成的数组

@Value和@PropertySource实现案例

步骤1.在resource下准备properties文件

步骤2.用@PropertySource注解加载properties配置文件

 

 步骤3.用@Value注解读取配置文件的内容

 

10.@Bean

 方法注解,写在方法定义的上方,用来设置该方法的返回值作为spring管理的bean,属性中要写定义的bean的id。

11.@Import

类注解,写在类定义的上方,用来导入配置类,属性中定义导入的配置类类名,当配置类有多个时使用数组格式一次性导入多个配置类。

总结:

 

 

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值