SSM/SpringBoot中常用注解

常用注解:

  1. @Autowired
  • @Autowired顾名思义,就是自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。
  • @Autowired默认按类型匹配的方式,在容器查找匹配的Bean,当有且仅有一个匹配的Bean时,Spring将其注入@Autowired标注的变量中。
  • @Autowired默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如@Autowired(required=false)
  1. @Resource
  • @Resource的作用相当于@Autowired

  • @Autowired按byType自动注入

  • @Resource默认按 byName自动注入

  • @Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。

  • @Resource装配顺序
      (1). 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
      (2). 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
      (3). 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
      (4). 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配

  1. @Autowired和@Resource区别
  • 用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
  1. @Configuration
  • 如果容器中有一个以上匹配的Bean,则可以通过@Qualifier注解限定Bean的名称
  • 用法:直接在@Autowired下方@Qualifier(“bean”)
  1. @Component
  • 把普通pojo实例化到spring容器中,相当于配置文件中的
       <bean id="" class=""/>
  1. @Controller
  • 在控制层使用(controller层)
  • 标识一个Spring类是Spring MVC controller处理器
  • 返回的内容就是对应的页面
  1. @RestController
  • @RestController是@Controller和@ResponseBody的结合体
  • 如果使用@RestController注解Controller,则Controller中的方法无法返回页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是return里的内容。(一般返回JSON内容)
  1. @Service
  • 在业务逻辑层使用(service层)
  • 自动根据bean的类名实例化一个首写字母为小写的bean
  • 例如Bean实例化为bean,自定义名字名字:@Service(“name”)
  1. @Repository
    • 在数据访问层使用(dao层)
    • @Repository用于标注数据访问组件,即DAO组件
  2. @Mapper
  • 代替Mybatis的mapper映射文件
  • 把mapper这个DAO交給Spring管理
  • 自动根据一个添加@Mapper注解的接口生成一个实现类
  1. @Scope
  • 值有:singleton,prototype,request,session,globalSession
  • request,session和global session类型只适用于web程序
  • singleton:表明容器中创建时只存在一个实例,所有引用此bean都是单一实例(即单例模式)。
  • prototype:spring容器在进行输出prototype的bean对象时,会每次都重新生成一个新的对象给请求方(即原型模式)。
  • request:spring容器中XmlWebApplicationContext会为每个HTTP请求创建一个全新的RequestPrecessor对象,当请求结束后,该对象的生命周期即告结束。
  • session:Spring容器会为每个独立的session创建属于自己的全新的。UserPreferences实例,比request scope的bean会存活更长的时间。
  • globalSession:global session只有应用在基于porlet的web应用程序中才有意义,它映射到porlet的global范围的session,如果普通的servlet的web 应用中使用了这个scope,容器会把它作为普通的session的scope对待。
  1. @PostConstruct
  • 相当于init-method,使用在方法上,当Bean初始化时执行。
  1. @PreDestroy
  • 相当于destory-method,使用在方法上,当Bean销毁时执行。
  1. @Lazy
  • 表示懒加载,即延迟初始化
  1. @Qualifier
  • 如果容器中有一个以上匹配的Bean,则可以通过@Qualifier注解限定Bean的名称
  • 用法:直接在@Autowired下方@Qualifier(“bean”)
  1. @Primary
  • 作用与@Qualifier类似
  • 如果容器中有一个以上匹配的Bean,则注入@Primary注解的类
  1. @Async
  • 基于@Async标注的方法,称之为异步方法
  • 这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。

注解applicationContext配置:

1.使用annotation-config

    <context:annotation-config/>
  • 是用于激活那些已经在spring容器里注册过的bean上面的注解。
  • (无论是通过xml的方式还是通过package sanning的方式)

2.使用component-scan

<context:component-scan base-package="" />
  • component-scan除了具有annotation-config的功能之外,
  • component-scan还可以在指定的package下扫描以及注册javabean。

如果你觉得不错,欢迎关注我的公众号

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值