常用的注解--spring

常见注解

  • @ResponseBody

    • 应用于controller层,作用在方法上,将java对象转为json格式的数据。
    • 效果等同于通过response对象输出指定格式的数据。
  • @RequestBody

    • 用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上
    • 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
  • @RequestMapping

    • @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置

    • <servlet>
          <servlet-name>servletName</servlet-name>
          <servlet-class>ServletClass</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>servletName</servlet-name>
          <url-pattern>url</url-pattern>
      </servlet-mapping>
      
    • method 方法主要用来定义接收浏览器发来的何种请求

    • value 和 path 属性,描述请求路径

  • @Param

    • 一般应用于Dao层,简单类型(8种基本数据类型+包装类+String) 传值的时候会忽略占位符个数和命名,传给所有的占位符,使用@Param注解,可以构建一个key-value键值对

    • value:创建的键值对的key 例如:

        @Param(value="key") String value
      
  • @Component 用于创建对象,相当于在xml中配置一个bean 代码相当于()

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

    • 一般用于表现层的注解。
    • value:指定bean的id。如果不指定value属性,默认bean的id是当前类的类名。首字母小写
  • @Service

    • 一般用于业务层的注解。
    • value:指定bean的id。如果不指定value属性,默认bean的id是当前类的类名。首字母小写
  • @Repository

    • 一般用于持久层的注解。
    • value:指定bean的id。如果不指定value属性,默认bean的id是当前类的类名。首字母小写
  • @Autowired

    • 相当于:
    • 自动按照类型注入。当使用注解注入属性时,set方法可以省略。它只能注入其他bean类型。
      当有多个类型匹配时,使用要注入的对象变量名称作为bean的id,在spring容器查找,找到了也可以注入成功。找不到就报错。
    • @Autowire和@Resource都是Spring支持的注解形式动态装配bean的方式。Autowire默认按照类型(byType)装配,如果想要按照名称(byName)装配,需结合@Qualifier注解使用。
    • required:@Autowire注解默认情况下要求依赖对象必须存在。如果不存在,则在注入的时候会抛出异常。如果允许依赖对象为null,需设置required属性为false。
  • @Qualifier

    • 作用:
      在自动按照类型注入的基础之上,再按照Bean的id注入。它在给字段注入时不能独立使用,必须和@Autowire一起使用;但是给方法参数注入时,可以独立使用。
    • 属性:
      value:指定bean的id。 例如:@Qualifier(“userService”)
  • @Resource

    • 作用:采用名称加注解的方式完成自动装配,直接按照Bean的id注入。它也只能注入其他bean类型。

    • 属性:
      name:指定bean的id。

      type:用于指定要注入的bean的type

    • 装配顺序:

    • 1.如果同时指定name和type属性,则找到唯一匹配的bean装配,未找到则抛异常;
      2.如果指定name属性,则按照名称(byName)装配,未找到则抛异常;
      3.如果指定type属性,则按照类型(byType)装配,未找到或者找到多个则抛异常;
      4.既未指定name属性,又未指定type属性,则按照名称(byName)装配;如果未找到,则按照类型(byType)装配。
      
  • @Value

    • 作用:
      为基本数据类型和String类型数据的变量注入数据
    • 属性:
      value:用于指定值
  • @Scope

    • 用于改变bean的作用范围

      相当于:

    • 属性:
      value:指定范围的值。
      取值:

      • singleton:单例,prototype:多例,
      • request:产生一个新的bean,同时该bean仅在当前HTTP request内有效 ,
      • session:产生一个新的bean,同时该bean仅在当前HTTP session内有效
      • globalsession:
  • @PostConstruct

    • 作用:

      用与指定初始化方法

    • 例如:

      @PostConstruct  
      public void init() {  
          System.out.println("初始化方法执行");  
      } 
      

      类似于

       <bean id="people" class="com.java.test4.People.People" init-method="init" >
      
  • @PreDestroy

    • 作用:用与指定销毁方法

    • 例如:

      @PreDestroy  
      public void destroy() {  
          System.out.println("销毁方法执行");  
      }
      

      类似于

      <bean id="people" class="com.java.test4.People.People"  destroy-method="destory">
      
  • @ComponentScan

    • 作用:自动扫描指定包下所有使用@Service,@Component,@Controller,@Repository的类并注册
    • 属性:basePackages:用于指定要扫描的包,和value的作用一致
  • @Bean

    • 作用:
      该注解只能写在方法上,表明使用此方法创建一个对象,并且放入spring容器。
    • 属性:
      name:给当前@Bean注解方法创建的对象指定一个名称(即bean的id,默认值是当前方法的名称.)。
  • @Import

    • 作用:用于导入其他配置类
  • @Configuration

    • 作用:声明当前类为配置类,相当于xml形式的Spring配置(类上)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vxCK6USJ-1611820661933)(C:\Users\vedeng\AppData\Roaming\Typora\typora-user-images\image-20210128145141818.png)]

  • @Transactional 声明为事务的注解
  • @Cacheable声明数据缓存
  • @RestController:组合注解,组合了@Controller和@ResponseBody,当我们只开发一个和页面交互数据的控制层的时候可以使用此注解。
  • @SpingBootApplication :SpringBoot核心注解,主要目的是开启自动配置。它也是一个组合注解,主要组合了@Configuration ,@EnableAutoConfiguration(核心)和@ComponentScan。可以通过@SpringBootApplication(exclude={想要关闭的自动配置的类名.class})来关闭特定的自动配置。
  • @EnableAutoConfiguration 此注释自动载入应用程序所需的所有Bean——这依赖于Spring Boot在类路径中的查找。该注解组合了@Import注解,@Import注解导入了EnableAutoCofigurationImportSelector类,它使用SpringFactoriesLoader.loaderFactoryNames方法来扫描具有META-INF/spring.factories文件的jar包。而spring.factories里声明了有哪些自动配置。
  • @WebAppConfiguration 一般用在测试上,注解在类上,用来声明加载的ApplicationContext是一个WebApplicationContext。他的属性指定的是Web资源的位置,默认为src/main/webapp,我们可以修改为:@WebAppConfiguration(“src/main/resources”)。
  • @Override:
    • 显式地声明复写的方法。防止子类和父类的方法混在一起。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值