Spring和Springboot常的注解【杭州多测师】【杭州多测师_王sir】()

Spring和Springboot常的注解

spring常注解:

@Controller:标注个控制器组件类

@Service:标注个业务层0组件类

@Repository:标注个DAO组件类

@Component:标注个普通的spring Bean类

注:@Component、@Repository、@Service、@Controller实质上属于同类注解,法相同,功能相同,区别在于标识组件的类型

@Configuration:把个类作为个IoC容器,它的某个法头上如果注册了@Bean,就会作为这个Spring容器中的Bean

@Autowired:于为类的属性、构造器、法进注值,默认情况下,其依赖的对象必须存在(bean可),如果需要改变这种默认式,可以设置其required属性为false。默认按类型装配,如果我们想使按名称装配,可以结合@Qualifier注解起使。如:

@Autowired@Qualifier(“BeanName”) ,存在多个实例时使

@Resource:它并不属于spring的注解,是来于JSR-250。其默认情况下按照bean的名称进注,当找不到匹配项时会按照类型装配。当按照名称进装配时,可以指定其name属性,倘若没有指定,注解标注在哪个字段上,其默认名称就是那个字段的名称

@PostConstruct :在构造法和init法(如果有的话)之间得到调,且只会执次。

@PreDestory :注解的法在destory()法调后得到执

@RequestMapping:是个来处理请求地址映射的注解,可于类或法上。于类上,表类中的所有响应请求的法都是以该地址作为路径

@RequestParam:于绑定request请求参数到指定的法

@PathVariable:于法修饰法参数,会将修饰的法参数变为可供使的uri变量(可于动态绑定)

@Transactional:在处理dao层或service层的事务操作时,譬如删除失败时的回滚操作,可到@Transactional注解

@Aspect:标明该类为切类,并启AspectJ注解,注:在使时要同@Component起使,否则不会被扫描到加容器

@Pointcut:定义切点

@Before:定义前置通知,在标法执前执

@After:定义后置通知,在标法执后执,不论是标法执正常后退出,还是抛出异常后退出,均会被执

@Around:定义环绕通知,在标法执前后嵌相关业务逻辑.

@AfterReturning:标法执正常退出后执

@AfterThrowing:标法执抛出异常后执

注:@Aspect、@Pointcut、@Before、@Around、@After、@AfterReturning、@AfterThrowing属于spring aop模块

@Value:从properties件中的取值赋给修饰的字段

@Primary:动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为选者,否则将抛出异常

@Lazy:于注解类,延迟初始化。

@Named:和@Component功能相同。@Named可以有值,如果没有值成的Bean名称默认和类名相同

@RequestHeader,@CookieValue:处理request header部分的注解

@RequestParam:作是提取和解析请求中的参数。@RequestParam持类型转换,类型转换前持所有的基本Java

@RequestBody:有个默认属性required,默认是true,当body没内容时抛异常

@SessionAttributes:即将值放到session作域中,写在class上。

@ModelAttribute:该Controller的所有法在调前,先执此@ModelAttribute法,可于注解和法参数中,可以把这个

@ModelAttribute特性,应在BaseController当中,所有的Controller继承BaseController,即可实现在调Controller时,先执

@ModelAttribute法

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

@Scope:配置bean的作域,默认是单例模式,即@Scope(“singleton”).

注: singleton:单例,即容器只有个实例对象。

prototype:多对象,每次请求都会产个新的bean实例,Spring不法对个prototype bean的整个命周期负责,容器在初始化、配置、装饰或者是装配完个prototype实例后,将它交给客户端,由程序员负责销毁该对象,不管何种作域,容器都会调所有对象的初始化命周期回调法,对prototype,任何配置好的析构命周期回调法都将不会被调

request:对每次HTTP请求都会产个新的bean,同时该bean仅在当前HTTP request内有效

@RestController:@Controller + @ResponseBody。是2个注解的合并效果,即指定了该controller是组件,指定法返回的是String或json类型数据。

@ResponseStatus:于修饰个类或者个法,修饰个类的时候,般修饰的是个异常类,当处理器的法被调

时,@ResponseStatus指定的code和reason会被返回给前端。value属性是http状态码,如404,500等。reason是错误信息

@ControllerAdvice:该注解作对象为TYPE,包括类、接和枚举等,在运时有效,并且可以通过Spring扫描为bean组件。其可以包含由@ExceptionHandler、@InitBinder 和@ModelAttribute标注的法,可以处理多个Controller类,这样所有控制器的异常可以在个地进处理。

@ExceptionHandler:当个Controller中有法加了@ExceptionHandler之后,这个Controller其他法中没有捕获的异常就会以参数的形式传加了@ExceptionHandler注解的那个法中

注:如果单使@ExceptionHandler,只能在当前Controller中处理异常。但当配合@ControllerAdvice起使的时候,就可以摆脱那个限制,对所有controller层异常进处理。

SpringBoot

spring在注解在springboot中也可以使,不过springboot新添了些注解

@SpringBootApplication:Springboot项的类,启动类。

从源码中发现@SpringBootApplication源码中包含下三个注解:

@SpringBootConfiguration:作与@Configuration作相同,都是来声明当前类是个配置类.可以通过@Bean注解成IOC容器管理的bean.

@EnableAutoConfiguration:是springboot实现动化配置的核注解,通过这个注解把spring应所需的bean注容器中

@ComponentScan:动态确定动扫描范围,类型已经不扫描的类型.默认情况下:它扫描所有类型,并且扫描范围是

@ComponentScan注解所在配置类包及包的类

@GetMapping: 等同于 @RequestMapping(method = RequestMethod.GET)

@PostMapping :等同于 @RequestMapping(method = RequestMethod.POST)

@PutMapping :等同于 @RequestMapping(method = RequestMethod.PUT)

@DeleteMapping: 等同于 @RequestMapping(method = RequestMethod.DELETE)

@PatchMapping :等同于 @RequestMapping(method = RequestMethod.PATCH)

@RunWith(SpringRunner.class) :RunWith就是个运器,@RunWith(JUnit4.class)就是指JUnit4来运

,@RunWith(SpringJUnit4ClassRunner.class),让测试运于Spring测试环境,@RunWith(Suite.class)的话就是套测试集合,

@SptingBootTest:是springboot 于测试的注解,可指定启动类或者测试环境等

————————

Spring和Springboot常的注解

spring常注解:

@Controller:标注个控制器组件类

@Service:标注个业务层0组件类

@Repository:标注个DAO组件类

@Component:标注个普通的spring Bean类

注:@Component、@Repository、@Service、@Controller实质上属于同类注解,法相同,功能相同,区别在于标识组件的类型

@Configuration:把个类作为个IoC容器,它的某个法头上如果注册了@Bean,就会作为这个Spring容器中的Bean

@Autowired:于为类的属性、构造器、法进注值,默认情况下,其依赖的对象必须存在(bean可),如果需要改变这种默认式,可以设置其required属性为false。默认按类型装配,如果我们想使按名称装配,可以结合@Qualifier注解起使。如:

@Autowired@Qualifier(“BeanName”) ,存在多个实例时使

@Resource:它并不属于spring的注解,是来于JSR-250。其默认情况下按照bean的名称进注,当找不到匹配项时会按照类型装配。当按照名称进装配时,可以指定其name属性,倘若没有指定,注解标注在哪个字段上,其默认名称就是那个字段的名称

@PostConstruct :在构造法和init法(如果有的话)之间得到调,且只会执次。

@PreDestory :注解的法在destory()法调后得到执

@RequestMapping:是个来处理请求地址映射的注解,可于类或法上。于类上,表类中的所有响应请求的法都是以该地址作为路径

@RequestParam:于绑定request请求参数到指定的法

@PathVariable:于法修饰法参数,会将修饰的法参数变为可供使的uri变量(可于动态绑定)

@Transactional:在处理dao层或service层的事务操作时,譬如删除失败时的回滚操作,可到@Transactional注解

@Aspect:标明该类为切类,并启AspectJ注解,注:在使时要同@Component起使,否则不会被扫描到加容器

@Pointcut:定义切点

@Before:定义前置通知,在标法执前执

@After:定义后置通知,在标法执后执,不论是标法执正常后退出,还是抛出异常后退出,均会被执

@Around:定义环绕通知,在标法执前后嵌相关业务逻辑.

@AfterReturning:标法执正常退出后执

@AfterThrowing:标法执抛出异常后执

注:@Aspect、@Pointcut、@Before、@Around、@After、@AfterReturning、@AfterThrowing属于spring aop模块

@Value:从properties件中的取值赋给修饰的字段

@Primary:动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为选者,否则将抛出异常

@Lazy:于注解类,延迟初始化。

@Named:和@Component功能相同。@Named可以有值,如果没有值成的Bean名称默认和类名相同

@RequestHeader,@CookieValue:处理request header部分的注解

@RequestParam:作是提取和解析请求中的参数。@RequestParam持类型转换,类型转换前持所有的基本Java

@RequestBody:有个默认属性required,默认是true,当body没内容时抛异常

@SessionAttributes:即将值放到session作域中,写在class上。

@ModelAttribute:该Controller的所有法在调前,先执此@ModelAttribute法,可于注解和法参数中,可以把这个

@ModelAttribute特性,应在BaseController当中,所有的Controller继承BaseController,即可实现在调Controller时,先执

@ModelAttribute法

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

@Scope:配置bean的作域,默认是单例模式,即@Scope(“singleton”).

注: singleton:单例,即容器只有个实例对象。

prototype:多对象,每次请求都会产个新的bean实例,Spring不法对个prototype bean的整个命周期负责,容器在初始化、配置、装饰或者是装配完个prototype实例后,将它交给客户端,由程序员负责销毁该对象,不管何种作域,容器都会调所有对象的初始化命周期回调法,对prototype,任何配置好的析构命周期回调法都将不会被调

request:对每次HTTP请求都会产个新的bean,同时该bean仅在当前HTTP request内有效

@RestController:@Controller + @ResponseBody。是2个注解的合并效果,即指定了该controller是组件,指定法返回的是String或json类型数据。

@ResponseStatus:于修饰个类或者个法,修饰个类的时候,般修饰的是个异常类,当处理器的法被调

时,@ResponseStatus指定的code和reason会被返回给前端。value属性是http状态码,如404,500等。reason是错误信息

@ControllerAdvice:该注解作对象为TYPE,包括类、接和枚举等,在运时有效,并且可以通过Spring扫描为bean组件。其可以包含由@ExceptionHandler、@InitBinder 和@ModelAttribute标注的法,可以处理多个Controller类,这样所有控制器的异常可以在个地进处理。

@ExceptionHandler:当个Controller中有法加了@ExceptionHandler之后,这个Controller其他法中没有捕获的异常就会以参数的形式传加了@ExceptionHandler注解的那个法中

注:如果单使@ExceptionHandler,只能在当前Controller中处理异常。但当配合@ControllerAdvice起使的时候,就可以摆脱那个限制,对所有controller层异常进处理。

SpringBoot

spring在注解在springboot中也可以使,不过springboot新添了些注解

@SpringBootApplication:Springboot项的类,启动类。

从源码中发现@SpringBootApplication源码中包含下三个注解:

@SpringBootConfiguration:作与@Configuration作相同,都是来声明当前类是个配置类.可以通过@Bean注解成IOC容器管理的bean.

@EnableAutoConfiguration:是springboot实现动化配置的核注解,通过这个注解把spring应所需的bean注容器中

@ComponentScan:动态确定动扫描范围,类型已经不扫描的类型.默认情况下:它扫描所有类型,并且扫描范围是

@ComponentScan注解所在配置类包及包的类

@GetMapping: 等同于 @RequestMapping(method = RequestMethod.GET)

@PostMapping :等同于 @RequestMapping(method = RequestMethod.POST)

@PutMapping :等同于 @RequestMapping(method = RequestMethod.PUT)

@DeleteMapping: 等同于 @RequestMapping(method = RequestMethod.DELETE)

@PatchMapping :等同于 @RequestMapping(method = RequestMethod.PATCH)

@RunWith(SpringRunner.class) :RunWith就是个运器,@RunWith(JUnit4.class)就是指JUnit4来运

,@RunWith(SpringJUnit4ClassRunner.class),让测试运于Spring测试环境,@RunWith(Suite.class)的话就是套测试集合,

@SptingBootTest:是springboot 于测试的注解,可指定启动类或者测试环境等