Spring注解

1. @Component

通知Spring为这个类创建bean。通过组件扫描实现,组件扫描默认不启动。
e.g. @Component(“testName”) 为当前bean指定名称。不指定则默认为类名的首字母小写

2. @ComponentScan

通知Spring扫描组件,默认扫描与当前类相同的包。

  • 可指定basePackages属性,指定包名
  • 可指定basePackageClasses属性,指定类

3. @SpringJUnit4ClassRunner

在测试开始的时候自动创建Spring的应用上下文

4. @ContextConfiguration

通知Spring在当前类中加载配置。e.g. @ContextConfiguration(class=OneConfigClass.class)

5. @Named

@Component的替代方案。大多数场景中可以互相替换

6. @Autowired

自动装配
可以将属性required设置为false,否则匹配不到bean时会抛出异常,需要进行null检查

  • 为变量赋值
    @Autowired
    Person person;
  • 为方法赋值
    @Autowired
    public goToSchool(Person person)

7. @Inject

自动装配,大多数场景下与autowired可以互相替换

8. @Configuration

创建配置类

9. @Bean

  • 可以给方法添加@Bean注解,这个注解会告诉Spring:这个方法会返回一个对象,该对象要注册为Spring应用上下文中的bean。
  • 默认情况下,bean的ID与带有@Bean注解的方法名一致。可以通过设置name属性来手动重命名。
  • 对于添加了@Bean注解的方法,Spring会拦截所有对它的调用,并确保直接返回已经创建好的bean,而不是每次调用都执行这个方法。
  • 默认情况下,Spring中的bean都是单例的

10. @Profile

指定当前bean的激活场景

  • e.g.
@Profile"dev"@Bean
 		  public DataSource......
  • 激活profile的方法:
    1、spring.profiles.active与spring.profiles.default
    2、@ActiveProfiles(“dev”)

11. @Conditional

条件化实例化bean
e.g.

@Bean
@Conditional(MagicExistsCondition.class)
public MagicBean...

其中,MagicExistsCondition须继承接口Condition

12. @Primary

bean通过type进行自动装配,当有多个bean满足自动装配要求时,会导致NoUniqueBeanDefinitionException异常。 使用@Primary可以标示首选的bean。
当多个bean使用@Primary时,依然存在bean冲突的问题。

13. @Qualifier

限定bean,用于在注入的时候指定想要注入的是哪个bean。
1.基础用法
e.g

@Autowired
@Qualifier("oneid")
public void setBean(TestBean oneBean).....
@Bean
@Qualifier("oneid")
public class Person(){..........

2.进阶用法

@Target({ElementType.CONSTRUCTOR,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
public @interface Student{...}

在定义自定义注解时添加@Qualifier注解,这个注解就有了@Qualifier注解的特性

14. @PropertySource

加载指定的配置文件
e.g

@PropertySource("classpath:/com/test/resources/app.properties")
public class ExConfig{
@Autowired
Environment env;

public String test(){
return env.getProperty("article.title");
}
}

15. @Value

获取值,可结合属性占位符使用

@Value("#{article.title}") 
String title;

16. @Valid

参数校验使用,使用此注解会告诉spring,要对这个对象进行校验。校验内容如下:

  • @AssertFalse
    被注解的元素必须为boolean类型,且值为false
  • @AssertTrue
    被注解的元素必须为boolean类型,且值为true
  • @DecimalMax
    被注解的元素必须为数字,值要<=给定的BigDecimalString值
  • @DecimalMin
    被注解的元素必须为数字,值要>=给定的BigDecimalString值
  • @Digits
    被注解的元素必须是数字,且它的值必须有指定的位数
  • @Future
    必须是一个将来的日期
  • @Past
    必须是一个过去的日期
  • @Max
    必须是数字,值要小于等于给定的值
  • @Min
    必须是数字,值要大于等于给定的值
  • @NotNull
    不能为null
  • @Null
    必须为null
  • @Pattern
    必须匹配给定的正则表达式
  • @Size
    必须是String、集合或数组,且长度要符合给定的范围
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值