spring boot 注解总结

梦里梦外; 2022-04-23 11:44 347阅读 0赞

spring boot注解总结

    • @SpringBootApplication
    • @Configuration
    • @Bean
    • @EnableAutoConfiguration
    • @ComponentScan
    • @Component
    • @ConditionalOnBean、@ConditionalOnMissingBean
    • @Primary
    • @RequestMapper
    • @ResponseBody
    • @Controller
    • @RestController
    • @ControllerAdvic
    • @InitBinder
    • @ModelAttribute
    • @Autowired
    • @RequestParam
    • @Param
    • @PathVariable
    • @RequestBody
    • @JsonBackReference
    • @RepositoryRestResourcepublic
    • @Import
    • @ImportResource
    • @Service
    • @Value

@SpringBootApplication

  1. @SpringBootApplication:声明让spring boot自动给程序进行必要的配置,
  2. 等价于已默认属性使用@Configuration @EnableAutoConfiguration @ComponentScan

@Configuration

  1. @Configuration:标注在类上,相当于把该类作为springxml配置文件中的<beans>
  2. 作用为:配置spring容器(应用上下文)。

@Bean

  1. @Bean:标注在方法上(返回某个实例),等价于springxml配置文件中的<bean>,
  2. 作用为:注册bean对象。

@EnableAutoConfiguration

  1. @EnableAutoConfiguration:注解告诉spring boot根据添加的jar依赖,猜测你想如何配置spring
  2. 通常会根据你的类路径和你的bean定义自动配置。

@ComponentScan

  1. @ComponentScan:会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component@Service,@Repository,@Controller都会自动注册成springBeans

@Component

  1. @Component:元注解,可用于标注其它注解,被它标注的注解起到和它相同或类似的作用。

@ConditionalOnBean、@ConditionalOnMissingBean

  1. @ConditionalOnBean@ConditionalOnMissingBean(保证在其它用户定义的bean后加载) 根据特定的类是否存在决定bean的包含。
  2. 可根据valuetypenamesearch 属性用于限制搜索beans时需考虑ApplicationContext的层次。
  3. 注:需主要bean的添加顺序,因为这些条件的计算是基于目前处理内容的。

@Primary

  1. @Primary:注解的实例优先于其它注解实例被注入。(两个type相同的情况 spring不知先注入谁)

@RequestMapper

  1. @RequestMapper:提供路由信息,负责URLController中的具体函数的映射。

@ResponseBody

  1. @ResponseBody:表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful(一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件)的api。在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。该注解一般会配合@RequestMapping一起使用

@Controller

  1. @Controller:用于定义控制器类,在spring 项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping

@RestController

  1. @RestController:注解是@Controller@ResponseBody的合集,告诉spring已字符串的形式渲染结果,并直接返回给调用者。(控制层组件如struts中的action)。

@ControllerAdvic

  1. @ControllerAdvic:拦截异常并统一处理,可用于定义@ExceptionHandler@InitBinder@ModelAttribute
  2. 并应用到所以的@RequestMapping中。
  3. ## @ExceptionHandler
  4. @ExceptionHandler:异常处理器,只有一个参数value,指定需要处理的异常类型。使用@ExceptionHandler注解的一个优点是,在需要返回json数据错误信息的时候特别有用。在@ExceptionHandler注解的方法上再加上@ResponseBody注解即可。

@InitBinder

  1. @InitBinder:解决类型转换问题。

@ModelAttribute

  1. @ModelAttribute:用于绑定请求参数到命令对象。

@Autowired

  1. @Autowired:自动导包。

@RequestParam

  1. @RequestParam:获取参数,获取url ? 后面的参数。 URL是这样的:http://host:port/path?参数名=参数值。

@Param

  1. @RequestParam:注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中
  2. 注: 使用@RequestParam需配合@Param一起使用

@PathVariable

  1. @PathVariable:获取参数,获取url / 后面的参数。URL是这样的:http://host:port/path/参数值。

@RequestBody

  1. @RequestBody:获取参数,获取对象参数。

@JsonBackReference

  1. @JsonBackReference:解决嵌套外链问题。

@RepositoryRestResourcepublic

  1. @RepositoryRestResourcepublic配合spring-boot-starter-data-rest使用。

@Import

  1. @Import:用来导入其它配置类。

@ImportResource

  1. @ImportResource:用来加载xml配置文件。

@Service

  1. @Service:一般用于修饰service层的组件。

@Value

  1. @Value:注入Spring boot application.properties配置的属性的值。
  2. 参数可以是两种形式:
  3. @Value("#{configProperties['t1.msgname']}"):这种形式的配置中有“configProperties”,其实它指定的是配置文件的加载对象。
  4. @Value("${t1.msgname}"):这种形式不需要指定具体加载对象,这时候需要一个关键的对象来完成PreferencesPlaceholderConfigurer,这个对象的配置可以利用上面配置1中的配置,也可以自己直接自定配置文件路径。

发表评论

表情:
评论列表 (有 0 条评论,347人围观)

还没有评论,来说两句吧...

相关阅读