SpringBoot 常用注解总结归纳

个人总结在工作和学习中 所了解的Java开发注解总结欢迎大家留言评论

Mybatis常用注解总结

SQL语句

@Insert : 实现新增

在这里插入图片描述

@Update: 实现更新

在这里插入图片描述

@Delete: 实现删除

在这里插入图片描述

@Select: 实现查询

在这里插入图片描述

2、结果集映射

@Result@Results@ResultMap是结果集映射的三大注解。

首先说明一下:

@Results各个属性的含义,id为当前结果集声明唯一标识,value值为结果集映射关系

@Result代表一个字段的映射关系,column指定数据库字段的名称,
property指定实体类属性的名称,jdbcType 数据库字段类型

@Result里的id值为true表明主键,默认false使用@ResultMap来引用映射结果集
其中value可省略。

@Results 注解

代替的是标签 <resultMap>

@Resutl 注解

代替了 <id> 标签和<result> 标签

@ResultMap

实现引用 @Results 定义的封装

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这样就不用每次需要声明结果集映射的时候都复制冗余代码,简化开发,提高了代码的复用性。

3、关系映射

@one注解:用于一对一关系映射 (一对一)

代替了<assocation> 标签,是多表查询的关键,在注解中用来指定子查询返回单一对象

在这里插入图片描述

@many注解:用于一对多关系映射 (多对一)

代替了<assocation> 标签,是多表查询的关键,在注解中用来指定子查询返回单一对象

@Select("select * from t_class where id=#{id}")  
@Results({
    
      
    @Result(id=true,column="id",property="id"),  
    @Result(column="class_name",property="className"),  
    @Result(property="students", column="id", many=@Many(select="cn.mybatis.mydemo.mappers.StudentMapper.getStudentsByClassId"))  
    })  
public Class getClass(int id); 

@CacheNamespace:

实现注解二级缓存的使用 建议百度 http://www.mybatis.cn/archives/128.html

Spring5中常用注解

将实体类存入Spring的IOC容器:

@Component: 用于创建对象的,作用于类。
value:指定 bean 的 id。如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小写。
@Controller: 一般用于表现层的注解。
@Service 一般用于业务层的注解。
@Repository 一般用于持久层的注解。
@Bean
作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中
属性:name:用于指定bean的id。当不写时,默认值是当前方法的名称
细节:当我们使用注解配置方法时如果方法有参数spring框架会去容器中
查找有没有可用的bean对象。查找的方式和Autowired注解的作用是一样的

用于注入数据的:

@Autowired:自动按照类型注入。当使用注解注入属性时, set 方法可以省略。它只能注入其他 bean 类型。当有多个类型匹配时,使用要注入的对象变量名称作为 bean 的 id,在 spring 容器查找,找到了也可以注入成功。找不到就报错。
@Qualifier:
作用:在自动按照类型注入的基础之上,再按照 Bean 的 id 注入。它在给字段注入时不能独立使用,必须和
@Autowired 一起使用;但是给方法参数注入时,可以独立使用属性:value:指定 bean 的 id
@Resource:
作用:直接按照 Bean 的 id 注入。它也只能注入其他 bean 类型。
属性:name:指定 bean 的 id。
@Value:
作用:注入基本数据类型和 String 类型数据的
属性:value:用于指定值

改变作用范围的:

@Scope:

作用:指定 bean 的作用范围。
属性:value:指定范围的值。
取值:singleton(单例的) prototype(多例的)

request:每次http请求都会创建一个bean,该作用域仅在基于web的Spring ApplicationContext情形下有效。

session 在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。

globalsession:在一个全局的HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。缺省的Spring bean 的作用域是Singleton.

和生命周期相关的:

@PostConstruct:
作用:用于指定初始化方法
@PreDestroy
作用:用于指定销毁方法

配置类相关:

@Configuration:
作用:用于指定当前类是一个 spring 配置类 当创建容器时会从该类上加载注解。 获取容器时需要使用
AnnotationApplicationContext(有@Configuration 注解的类.class)。
细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。
@ComponentScan
作用:用于指定 spring 在初始化容器时要扫描的包。 作用和在 spring 的 xml 配置文件中的:
<context:component-scan base-package=“com.itheima”/>是一样的。
属性:basePackages:用于指定要扫描的包。和该注解中的 value 属性作用一样。
@Import
作用:用于导入其他的配置类
属性:value:用于指定其他配置类的字节码。
当我们使用Import的注解之后,有Import注解的类就父配置类,而导入的都是子配置类
@PropertySource
作用:用于指定properties文件的位置
value:指定文件的名称和路径。
关键字:classpath,表示类路径下

AOP相关的注解

@Aspect 声明切面类

@PonitCut 定义公共的切入点 配置到空方法上

value属性切入点表达式 引用:方法名()

配置通知类型:

@Before 前置通知

@AfterReturnint 后置通知

@AfterThrowing 异常通知

@After 最终通知

@Around 环绕通知

@EnableAspectJAutoProxy 开启对AOP注解的支持 用于纯注解使用

8 、事务相关的注解

@Transactional 需要事务的类或者方法上使用配置事务

@EnableTransactionManagement 纯注解使用 代表开启对注解事务的支持

Spring 整合 Junit:

当我们使用spring 5.x版本的时候,要求junit的jar必须是4.12及以上
@RunWith(SpringJUnit4ClassRunner.class):使用@RunWith 注解替换原有运行器

@ContextConfiguration(locations= {
    
    “classpath:bean.xml”}):

locations 属性: 用于指定配置文件的位置。如果是类路径下,需要用 classpath:表明
classes 属性: 用于指定注解的类。当不使用 xml 配置时,需要用此属性指定注解类的位置。
@Autowired:使用@Autowired 给测试类中的变量注入数据

Spring MVC的常用注解

@EnableWebMvc 在配置类中开启Web MVC的配置支持,如一些ViewResolver或者MessageConverter等,若无此句,重写WebMvcConfigurerAdapter方法(用于对SpringMVC的配置)。

@Controller 声明该类为SpringMVC中的Controller

@RequestMapping 用于映射Web请求,包括访问路径和参数(类或方法上)

@ResponseBody 支持将返回值放在response内,而不是一个页面,通常用户返回json数据(返回值旁或方法上)

@RequestBody 允许request的参数在request体中,而不是在直接连接在地址后面。(放在参数前)
默认取出的是String类型 想要Json字符串转换成Java对象必须满足
1:mvc:annotation-driver 2:请求头中有application/json(vue自动满足) 3:导入jackson依赖

@PathVariable 用于接收路径参数,比如@RequestMapping(“/hello/{name}”)申明的路径,将注解放在参数中前,即可获取该值,通常作为Restful的接口实现方法。

@RestController 该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。

@ControllerAdvice 通过该注解,我们可以将对于控制器的全局配置放置在同一个位置,注解了@Controller的类的方法可使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上,
这对所有注解了 @RequestMapping的控制器内的方法有效。

@ExceptionHandler 用于全局处理控制器里的异常

@InitBinder 用来设置WebDataBinder,WebDataBinder用来自动绑定前台请求参数到Model中。

@ModelAttribute 本来的作用是绑定键值对到Model里,在@ControllerAdvice中是让全局的

@RequestMapping 都能获得在此处设置的键值对。

restful代码编程的要求:

确定地址参数(id)如何设置路径 格式:{id}

确定如何获取到地址参数(id)在方法参数上使用注解: @PathVariable(value = “id”)

指定就对某一种提交方式有效
@RequestMapping(value = "/{idddd}.html",method = RequestMethod.GET) 只对get提交有效

在这里插入图片描述

在这里插入图片描述

在 Dubbo 中使用注解

在这里插入图片描述

注意 @Service 是导入dubbo 不是Spring

@Reference

@Reference 用来配置 Dubbo 的服务消费方

扩展了解

在这里插入图片描述

在 Dubbo 中使用注解

在这里插入图片描述

注意 @Service 是导入dubbo 不是Spring

@Reference

@Reference 用来配置 Dubbo 的服务消费方

扩展了解

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_48134878/article/details/112664846
今日推荐