springboot 之 常用注解说明

@RequestMapping

用在类和方法上,用于类上表示父路径,如demo,方法上表示子路径,如demo1。访问路径为:demo/demo1

属性:params, headers, value, method, consumes, produces

@PathVariable

 路径上的变量,用在参数前,路径上的变量名和参数名称一致

@RequestMapping("demo/demo1/{name}")

public String say(@PathVariable String name){

}

@RequestParam

等价于下面代码
String name = request.getParameter("name");

@RequestBody

 方法参数绑定到HTTP请求的Body上,前端需要用json提交。

@RequestMapping(value = "/something", method = RequestMethod.PUT)

public void handle(@RequestBody String body,@RequestBody User user){

//可以绑定自定义的对象类型

}

@ResponseBody

 表示输出的格式是json,用返回值填补HTTP的Body

@Bean

相当于xml里面配置<bean></bean>, 放在方法上面,而不是类,意思是产生一个bean并交给spring管理

@Autowired

Spring的注释,可用于类的属性,构造器,方法进行注释

@Qualifier

当有同一类型的Bean时,可以用@Qualifier("name")来指定。与@Autowired配合使用

@Resource

 java的注释,为目标bean指定协作者Bean,相当与Autowired,但是以名字方式注入,Autowired以类型方式注入(但是可以配合Qualifier使用,否则一个类多个对象会抛出异常)。

@Repository

标注一个DAO组件类

@Service

标注一个业务逻辑组件类,可以自定义Bean名称,但必须唯一。

@Controller

标注一个控制器组件类

@Component

可以替代@Repository、@Service、@Controller,因为三个注解都被@Component标注。被注解的java类当做Bean实例,Bean实例的名称默认是Bean类的首字母小写,其他不变。

@SpringBootApplication

包含@Configuration、@EnableAutoConfiguration、@ComponentScan,通常用在启动类上。

@RestController

@Controller和@ResponseBody的集合。并且将函数的返回值直接填入HTTP的响应体中,是REST风格的控制器。

@JsonBackReference

解决嵌套外链接问题

@ComponentScan

组件扫描。如果扫描到有@Component @Controller @Service等这些注解的类,则把这些类注册为bean。让springboot扫描到Configuration类,并把它加入到程序上下文。自动发现和装配Bean

 

 

@Conditional

用来标致一个spring bean或者configuration配置文件,当满足指定的条件才开启配置

@ConditionalOnBean

组合@Conditional注解,当容器中有指定的Bean才开启配置。

@ConditionalOnMissingBean

和上面的注解相反,当容器中没有指定的Bean才开启配置。

@ConditionalOnClass

 

@ConditionalOnMissingClass

组合@Conditional,两者为相反注解,当容器中没有/有指定class才开启配置。

@ConditionalOnWebApplication

 

@ConditionalOnNotWebApplication

同上,当前项目类型是或者不是web项目才开启配置。

@ConditionalOnProperty

组合@Conditional注解,当指定的属性有指定的值时才开启配置。

@ConditionalOnJava

当运行的java JVM在指定版本范围内时才开启配置

@ConditionalOnResource

当类路径下有指定的资源才开启配置。

@COnditionalOnSingleCandidate

当指定的class在容器中只有一个Bean,或者同时有多个但为首选时才开启配置。

 

 

@ConfigurationProperties

用来加载额外的配置,用在@Configuration注解类或者@Bean注解方法上面。

@EnableConfigurationProperties

配合@ConfigurationProperties注解使用,用来开启对@ConfigurationProperties注解配置Bean的支持。

@AutoConfigureAfter

 

@AutoConfigureBefore

表示该自动配置类需要在另外指定的自动配置类配置前/后配置

@Configuration

指出该类是Bean配置的信息源,相当于XML中的<beans></beans>,一般加在主类上,配置文件里能做的事可以在注解下面的类做。

 

@Configuration是随容器启动开始加载的,始终存在的单例模式。 @Component是使用一次即实例化一次

 

 

@Profiles

Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。
 

任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。

@Configurationbr/>@Profile("prod")

public class ProductionConfiguration {

// ...

}

@Vaue

注入application.properties配置的属性的值
 

@Value("${defaultPageNum}")

private String message;

@ImportResource

有些通过类的注册方式配置不了的,可以使用这个注解指定xml文件,老的配置很管用

@Import:

用来引入额外的一个或者多个 @Configuration 修饰的配置文件类. 多个配置类嵌套使用时有用。

@SpringBootConfiguration

@Configuration的变体,作用一样。

@RequestHeader

获取http请求头某个变量信息

@GetMapping

get提交,参数在url中

@PostMapping

post提交,参数在body中

@DeleteMapping

delete提交,参数在url中

@PutMapping

put提交,参数在url中,一般用于更新

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章