@注解

注解大全

 只记录常见的和学习的,其他的请参考文献

 

 

 

MyBatis注解式开发

 参考文献:

  1. 详细: Mybatis注解开发
代码 介绍 作用位置 更多
@MapperScan("zhe.xin.*.*.mapper") 用于在Spring Boot项目的启动类上配置,用于扫描指定路径下的所有接口,包括Mapper接口。 入口处,如Springboot启动类 * 号可以通配
@EnableTransactionManagement 开启事务处理 , 使这个类支持事务 入口处,,如Springboot启动类  
@Insert 增,返回值Int,表示增加的行数。 某接口的方法 写在一个接口类的方法上
@Delete 删,返回值Int,表示被成功删除的记录数。
@Update 改,返回值Int,表示被成功修改的记录数
@Select 查,返回值Int,纪录被成功删除的记录数。
@Results 自定义映射合集
@Results(
  id = "userDiyMapper" ,
  value = {
    @Result(id = true,property = "id",column = "id"),
    @Result(property = "username",column = "username1"),
})
@Result 单个自定义映射 id    是否是主键字段
column    数据库的列名  -- 自定义的名称
property    需要装配的属性名  --原有名称
one    需要使用的@One 注解(@Result(one=@One)()))
many    需要使用的@Many 注解(@Result(many=@many)()))
@One  代替了<assocation>标签,是多表查询的关键,在注解中用来指定子查询返回单一对象。一对一 @One 注解属性介绍:
select 指定用来多表查询的 sql mapper
fetchType 会覆盖全局的配置参数 lazyLoadingEnabled。
使用格式:@Result(column=" “,property=”",one=@One(select=""))
@Many  代替了<collection>标签,是是多表查询的关键,在注解中用来指定子查询返回对象集合。多对一 注意:聚集元素用来处理“一对多”的关系。需要指定映射的 Java 实体类的属性,属性的 javaType(一般为 ArrayList)但是注解中可以不定义。
使用格式:@Result(property="",column="",many=@Many(select=""))
在MyBatis中有@SelectProvider@UpdateProvider@DeleteProvider@InsertProvider注解。当使用这些注解时将不在注解中直接编写SQL,而是调用某个类的方法来生成SQL。 实现动态 SQL 映射
// 生成根据任意条件查询的Sql语句
public String findByConditionSql(User user){
  StringBuffer sb = new StringBuffer("select * from user where 1=1 ");
  if (user.getUsername() != null && user.getUsername().length() != 0){
    sb.append(" and username like #{username} ");
   }
  if (user.getSex() != null && user.getSex().length() != 0){
    sb.append(" and sex = #{sex} ");
   }
  if (user.getAddress() != null && user.getAddress().length() != 0){
    sb.append(" and address = #{address} ");
   }
  return sb.toString();
}
@CacheNamespace 开启二级缓存 接口的类上 blocking=true

 



 

 

Junit测试类

 参考文献:

  1. Junit - 基础注解
代码 介绍 作用位置 更多
@Test 声明这个方法是给测试方法 , 声明后这个方法可以直接执行 方法 测试包.测试类下的方法
@Before 这个测试类中,所有测试方法执行前都先执行此方法
@After  这个测试类中,所有测试方法执行后都会执行此方法

 



 

Spring

 参考文献:

  1. 这个看着很乱 :  Spring中的注解大全与详解_
  2. 推荐: Spring 注解大全与详解

支持注解需要添加头文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
              http://www.springframework.org/schema/beans/spring-beans.xsd
              http://www.springframework.org/schema/context
              http://www.springframework.org/schema/context/spring-context.xsd">

</beans>
代码 介绍 作用位置 更多

@Component("studentDao")

以下三个作用相同 , 仅为分层

  • @Repository用于Dao层
  • @Service用于Service层
  • @Controller用于Controller层
将此类注册为:bean 某个类 若为仅仅只有@Component, 没有括号, 则id为此类名的小写
@Autowired

写在属性上方进行依赖注入时,可以省略setter方法。

意思是 :  自动注入

属性上方、setter方法上方、构造方法上方。

容器中有多个对象匹配类型时,会找beanId等于属性名的对象,找不到会报错。

先找名称 , 后找标签

 @Qualifier("bean的id") 在按照类型注入对象的基础上,再按照bean的id注入。 @Qualifier必须和@Autowired一起使用。
@Value("注入到Spring") 直接注入值, 只能  注入基本数据类型 属性上方

spring如果配置了:

<context:property-placeholder location="db.properties"/>

就可以: @Value("${jdbc.url}")

@Configuration 表示该类是一个配置类 配置类上方
@ComponentScan("zhe.xin") 初始化Spring时, 自动扫描这个包下的@Component  bean 入口处,,如Springboot启动类
@PropertySource 代替配置文件中的<context:property-placeholder>扫描配置文件  @PropertySource("classpath:db.properties")   便于Value注入 ,  classpath:为配置路径
@Import(JdbcConfig.class)

如果配置过多,会有多个配置类,该注解可以为主配置类导入其他配置类

主配置类上方

@Bean 将一个方法返回的类,  注册为Bean 某个方法

于@Component相比, 一个在类 , 一个在方法   参考:@Bean

 



SpringMVC+SpringBoot

 参考文献:

  1. Spring及SpringMVC注解大全_注解spring:spring mvc命名空间和声明控制类注解
代码 介绍 作用位置 更多

@RequestMapping("/c3") 通用

@GetMapping    查询请求
@PostMapping    添加请求
@PutMapping    更新请求
@DeleteMapping    删除请求

更多请求:请求方式

给控制器方法设置   请求路径

需要同时添加@Controller 注解注册bean

涉及:RESTful API 一种流行的 API 设计风格

方法或类上方。用于类上,表示类中的所有控制器方法都是以该地址作为父路径。
  • value/path:请求路径
  • method:指定请求方式
  • params:规定必须发送的请求参数
  • headers:规定请求必须包含的请求头
@RequestParam(name = "username",defaultValue = "sxt",required = false 设置请求参数名称  , 默认是方法参数名 请求方法 的 参数前
  • name:指定请求参数名称
  • defaultValue: 为参数设置默认值
  • required:设置是否是必须要传入的参数
@RequestHeader("User-Agent" 获取请求头信息 请求方法 的 参数前 这个参数的值 , 不再是请求内容 , 而是请求头内容
@CookieValue("JSESSIONID") 获取Cookie信息 请求方法 的 参数前 这个参数的值 , 不再是请求内容 , 而是Cookie内容
@SessionAttributes("name")
将模型中的name数据保存到session中
@RequestMapping声明的类 原本只在本此请求中的model添加的session中
@ModelAttribute

1. 被@ModelAttribute注释的方法会在此controller每个方法执行前被执行。因此对于一个controller映射多个URL的用法来说,要谨慎使用。

2.被@ModelAttribute注释参数,从 model.addAttribute 中获取值

注解在方法上

一个方法的参数

先用@ModelAttribute注释的类添加: model.addAttribute("name","小姐姐");

再从方法参数中获取 , String t1(@ModelAttribute("name") String name)name的值

@PathVariable  

  URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到控制器处理方法的形参中

请求方法 的 参数前 这个参数的值 , 不再是请求内容 , 而是占位符的内容
@PostConstruct

在自动注入(@AutoWired)  注入后执行一些初始化操作

方法 PostConstruct注解详细使用说明及理解_思维的深度的博客-CSDN博客
@Nullable

允许传递参数是此参数为null

请求方法 的 参数前
@RequiredArgsConstructor

写在类上面可以代替@AutoWired注解,需要注意的是:在注入的时候需要用final定义,或者使用@notnull注解

注解@RequiredArgsConstructor详解-CSDN博客WW
 

 

   

 



 

 

Fashjson序列化

 参考文献:

  1. FastJson的枚举类和常用注解
代码 介绍 作用位置 更多
@JSonField 可在进行序列化和反序列化时   进行  个性功能 定制。 用于方法上,字段上和参数上
  • name,指定序列化后的名字。name值应该在此类中唯一
  • ordinal,指定序列化后的字段顺序 属性值越小,顺序越靠前
  • format,指定序列化后的格式
  • serialize,指定是否序列化该字段,默认是true
  • deserialize,指定是否序列化该字段
  • serialzeFeatures序列化时的特性定义(就是上面的SerializerFeature枚举类)
@JSonType 该注解作用于类上,对该类的字段进行序列化和反序列化时的特性功能定制 类上
  • 注解的属性includes,要被序列化的字段
  • 注解的属性includes,要被序列化的字段的顺序
  • 注解属性serialzeFeatures,和前面内容一样,不再赘述

 


 

SpringbootSocket

参考文献:

代码 介绍 作用位置 更多
@ServerEndpoint("/ws/")
注册当前类为Socket路径为:ws 要启动:
 @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
 

才会被扫描

 
     
@OnClose
关闭 方法  // 执行关闭连接时的操作
@OnMessage
接收消息 方法 // 处理客户端发送的消息
@OnOpen
连接  方法 // 在建立连接时执行的操作

 



 

 

模板

 参考文献:

代码 介绍 作用位置 更多
       
       
       

 



 

 

 

 

 

 

 

 

 

 

 

 

模板

 参考文献:

代码 介绍 作用位置 更多
       
       
       

 



 

posted @ 2023-11-06 08:28  哲_心  阅读(5)  评论(0编辑  收藏  举报