SpringBoot注解
实体类
@Data:注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法
@AllArgsConstructor 添加一个全参构造函数
@NoArgsConstructor 创建一个无参构造函数 构造函数:初始化对象,为对象成员变量赋初始值。 User a = new User();(无参初始化)
@Builder 建造者模式。简单来说,就是一步步创建一个对象 https://www.jianshu.com/p/d08e255312f9
@SupperBuilder 继承时,使子类可以获取到父类的成员属性进行builder构造 注意事项
Mapper层
注解方式配置mybatis映射,一般使用Mapper结合以下四种注解(不用配置mapper.xml文件了)。
@Mapper 给接口自动生成一个实现类,由Mybatis创建并将其实现类对象存储到spring容器中。 mybatis的注解 dao层
@Insert 返回值为插入数据库的条数,可以用int(建议用int,避免null引起空指针)/Integer。
@Delete 返回值为删除的数据条数
@Update 返回值为数据库中匹配条数(不论最终是否对数据进行了修改,只要某条记录符合匹配条件,返回值就加1),但是可以近似理解为更新的行数。
@Select
- 查到一条记录,直接返回查询结果。 ⚠️必须指定返回值类型:常用类型/包装类/自定义类型,不能返回Boolean类型(查到了返回true,没查到返回null,会报错)
- 查到多条记录,返回用List接收。 ⚠️Select通过selectone方法查询,默认是返回一条记录的,即查到多条记录时会报错。
@Options(useGeneratedKeys=true,keyProperty="id") 设置对象中自增主键"id"的值(insert一条记录时,会返回该记录的id,获取时通过实体类的对象获取),例如:
datasetMapper.insertDataset(dataset);
Integer datasetId = dataset.getId();
@SelectProvider注解详解:@Select和@SelectProvider不能同时使用
@Param("name") String name 自定义参数名字。方法有多个参数时,给参数定义名字来代替顺序下标0,1,2,3....的形式,否则数据库找不到参数会报错。
- ✅无论你传的参数是什么样的,最后mybtis都会将你传入的转换为map的。当我们要传入多个参数时,直接给与map类型 / 多个参数分别传入
@Results 用于在结果映射(Result Mapping)中定义多个 @Result
注解。它主要用于将 SQL 查询结果映射到 Java 对象中,以实现从数据库到对象之间的转换。
@Result 修饰返回的结果集,关联实体类属性和数据库字段一一对应,如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。
用法:https://blog.csdn.net/cherlshall/article/details/80950150
Service层
@Service 注在类上,标注业务层组件,将这个类交给Spring容器管理,spring容器为他创建对象(实例化)。
@Repository 持久层
@Controller 控制层
@Component是任何Spring管理组件的通用构造型,可以将类自动检测并注册为 Spring 应用上下文中的 Bean。
@Autowired注解
-
Spring提供的注解
-
是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。如果我们想使用按照名称(byName)来装配,可以结合@Qualifier注解一起使用。
@Resource注解
-
JDK提供的注解
-
默认按名称装配。名称可以通过@Resource的name属性指定,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象。
Controller层
@RestController 注在类上,@Controller和@ResponseBody注解的组合
- 1. 有Controller的作用,定义一个控制器类
- 2. 有ResponseBody作用,将此类下所有成员方法的返回结果转换成json格式(入参不转换)
@RequestMapping("/test")。 注在类/方法上,用于将 HTTP 请求映射到具体的处理方法上。
- 可以用@RequestMapping(method=RequestMethod. GET/POST )映射对应类型的请求。 https://www.cnblogs.com/SpaceKiller/p/12312344.html
- produces:指定返回内容的类型 (Content-Type),例如application/json, text/html;
- consumes: 指定请求的提交内容类型
@GetMapping 将HTTP GET请求映射到特定处理程序方法
@PostMapping 将HTTP POST请求映射到特定处理程序方法
⚠️Restful风格时,知道需要的是哪种请求时,可以使用相应的Mapping比较好。
请求——获取前端传来http请求中的各类信息(用在方法里)
以下几种注解是用来接收前端传递给后端的数据
@RequestHeader 获取请求头中的数据
@RequestBody 获取请求体中的数据
@PathVariable("name") 获取url中的数据(路径参数)
@RequestParam("name") String name 获取查询参数的值;
- 可以有多个,每个分别接收 https://www.cnblogs.com/zhlblogs/p/9553491.html
- 适用于GET、POST请求
- value,请求参数的别名,如果不设置则会默认为参数名
- required,是否必传参数。默认为true
- defaultValue,参数默认值,在请求参数未提供时设置一个默认值
-
public String greet(@RequestParam(value = "name", required = false, defaultValue = "World") String name, @RequestParam(value = "age", required = false, defaultValue = "0") int age) {}
响应——返回数据给前端(用在方法上)
@ResponseBody 将controller中方法的返回对象的格式转换为json/XML,写入到response对象的body区。
- 可以用@RestController替代
Test类
通过@RunWith 和 @SpringBootTest启动spring容器
@RunWith (SpringRunner.class) 就是一个运行器,让测试运行于Spring测试环境。
@SpringBootTest (classes = {ApplicationLoader.class}) 加载ApplicationContext,启动spring容器。
@Test 标明测试方法
配置类
@Configuration 注在类上,告诉Spring boot这是一个配置类
@Bean 注在方法上,一般标明返回的对象直接被Spring管理起来
- @Bean("tom") 自定义组件名
其他
@PostConstruct 被注解的方法,在对象加载完所依赖的组件后才执行,并且只执行一次。
- 通常一些初始化的类上会使用该注解
@Value("${sso.client.id}") 变量替换,把配置文件的属性读进来
- @Value("张三") 把常量注入到变量中
@Slf4j:使用@Slf4j以后,默认的Slf4j对象就是log,所以使用时候可以直接log.info()、log.error()……
@SuppressWarnings:对代码元素内部的某些警告保持静默。
@SneakyThrows 自动捕获并处理异常(使用的是骗过JVM的方式,并没有处理?)
@Deprecated 废弃(类/方法……)
参考资料
参考:MyBatis中Mapper的返回值类型(✅)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?