zoukankan      html  css  js  c++  java
  • Spring 相关注解

    • spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller。
      在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。
      虽然目前这3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。
      所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用上述注解对分层中的类进行注释。
      @Service 用于标注业务层组件
      @Controller 用于标注控制层组件(如struts中的action)
      @Repository 用于标注数据访问组件,即DAO组件
      @Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
      Spring2.5为我们引入了组件自动扫描机制,他在类路径下寻找标注了上述注解的类,并把这些类纳入进spring容器中管理。

    • @RestController
      为了方便Rest开发,通过新的 @RestController 指定在控制器上,就不需要在每个 @RequestMapping 方法上加 @ResponseBody 了。
      可以这样理解:

    1. 单独使用 @Controller,页面进行跳转。
    2. 使用 @Controller + @ResponseBody,将 return 的值写入Response对象的body数据区,用来返回 json、xml 等格式的数据。
    3. @RestController = @Controller + @ResponseBody。
    • @RequestMapping
      此注解提供路由信息。

    • @ResponseBody
      作用:
      该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
      使用时机:
      返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

    1. 这样配置:
    @RequestMapping("[url]") 
    @ResponseBody 
    

    将会在访问的页面上输出字符串,而不会跳转到指定的页面。
    只需删除注解:@ResponseBody 便可以返回页面,且不会在页面上输出字符串。

    • @Autowired 自动装配
      Spring 2.5 引入了 @Autowired 注解,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。

    • @EnableAutoConfiguration
      此注解的作用:让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,这就减少了开发人员的工作量。
      如果配置了 spring-boot-starter-web,会添加 Tomcat 和 Spring MVC,所以auto-configuration将假定你正在开发一个web应用,并对Spring进行相应地设置。

    • @SpringBootApplication
      注解等价于以默认属性使用@Configuration,@EnableAutoConfiguration和@ComponentScan

    • @Import
      用来导入其他配置类。

    • @ImportResource
      用来加载xml配置文件。

    • @Bean
      用@Bean标注方法等价于XML中配置的bean。

    • @Value
      注入Spring boot application.properties配置的属性的值。

    • @Qualifier
      @Qualifier限定描述符除了能根据名字进行注入,还能进行更细粒度的控制如何选择候选者,具体使用方式如下:

        @Autowired
        @Qualifier(value = "demoInfoService") 
        private DemoInfoService demoInfoService;
    
    • @Inject
      等价于默认的@Autowired,只是没有required属性。
  • 相关阅读:
    inMap 经纬度 全国 全球
    SpringCloud Stream 使用
    beta阶段贡献分配实施
    20181113-3 Beta阶段贡献分配规则
    作业 20181120-3 Beta发布
    β发布:文案+美工展示博客
    Scrum立会报告+燃尽图(十一月二十七日总第三十五次):β阶段最后完善
    Beta发布——视频博客
    Scrum立会报告+燃尽图(十一月二十六日总第三十四次):上传β阶段展示视频
    Scrum立会报告+燃尽图(十一月二十五日总第三十三次):展示博客
  • 原文地址:https://www.cnblogs.com/cag2050/p/6873208.html
Copyright © 2011-2022 走看看