常见框架--Spring、SpringBoot、MP等
一、Spring
1.介绍:
(1)Spring是核心框架,它是轻量级的。它对表现层框架SpringMVC和持久层框架Mybatis有着很好的支持
(2)Spring的AOP对事物提供很好的支持
2..核心:
(1)IOC(控制反转):
将对象的创建、依赖管理交给 Spring 容器,避免手动 new 对象和处理依赖,降低耦合
(2)AOP切面编程:
在不修改业务代码的前提下,对方法进行增强(如事务控制、日志记录)
AOP思想:在某个方法前后做一些操作(如开始事务、提交事务、回滚)
3.Spring是由哪几个模块组成的?
(1)Core Container 核心模块(IOC容器:控制反转,之前需要自己new对象的过程现在交给IOC容器来处理) ;
(2)AOP[面向切面编程]模块,
AOP底层是基于动态代理设计模式来实现的[在某个方法前后做一些操作],主要用于事务处理的问题;
(3)Web模块(SpringMVC表现层的框架),
SpringMVC的底层对Servlet进行了封装--DispatcherServlet(核心的前端控制器),用于处理客户端请求,
(4)Data Access模块:Spring提供了对0RM框架(对象关系映射,如Mybatis)的支持
4.常用核心注解:
(1)@Component :标记普通组件类,由 Spring 容器管理;衍生注解 @Controller (表现层)、 @Service (业务层)、 @Repository (持久层),用于明确分层。
(2)@Autowired :自动注入 Spring 容器中的 Bean(按类型匹配); @Resource 类似,可按名称匹配。
(3)@Configuration :标记配置类,替代 XML 配置文件; @Bean 用于在配置类中定义 Bean。
(4)@Transactional :声明式事务注解,标记在业务方法上,实现事务的提交、回滚。
二、SpringMVC
1.介绍:
是 Spring 家族的表现层框架,基于 MVC 设计模式,负责:
(1)接收前端请求(如浏览器的 HTTP 请求);
(2)调用业务层处理逻辑;
(3)渲染响应(如跳转 JSP 页面、返回 JSON 数据)。
(4)它让表现层的请求映射、参数绑定、结果处理更加高效。
2.常用核心注解:
(1)@Controller :标记类为 SpringMVC 控制器,处理前端请求。
(2)@RequestMapping :映射请求 URL 到方法;衍生注解 @GetMapping (处理 GET 请求)、 @PostMapping (处理 POST 请求)等,更精准控制请求类型。
(3) @RequestParam :绑定请求参数到方法参数; @PathVariable 绑定 URL 路径中的变量(如 /user/{id} 中的 id )。
(4)@ResponseBody :标记方法返回值直接作为响应体(如 JSON 数据);
(5)@RestController 是 @Controller + @ResponseBody 的组合,常用于前后端分离场景。
(6)@PathVariable 注解:
作用:将 URL 路径中的占位符(如 /users/{id} 中的 {id} )绑定到方法的参数上,实现动态路径的参数获取。
使用场景:
a.RESTful 风格的资源查询、更新、删除等操作,例如根据用户 ID 查询用户信息。
b.若方法参数名与 URL 占位符名称不一致,可通过 @PathVariable("占位符名称") 显式指定
示例:
a.
@RestController
@RequestMapping("/users")
public class UserController {
// 路径中的{id}会被@PathVariable绑定到方法参数id上
@GetMapping("/{id}")
public User getUserById(@PathVariable Integer id) {
// 根据id查询用户并返回
}
}
b.
@GetMapping("/{userId}")
public User getUserById(@PathVariable("userId") Integer id) {
}
3.代码示例:
@RestController
@RequestMapping("/depts")
public class DeptController {
@Autowired
private DeptService deptService;
//删除部门
@DeleteMapping("/{id}")
public Result delete(@PathVariable Integer id) {
deptService.delete(id);
return Result.success();
}
//添加部门
@PostMapping
public Result save(@RequestBody Dept dept){
deptService.save(dept);
return Result.success();
}
//根据ID查询
@GetMapping("/{id}")
public Result getById(@PathVariable Integer id){
Dept dept = deptService.getById(id);
return Result.success(dept);
}
}
三、Mybatis
1.介绍:
(1)是持久层 ORM 框架,负责数据库 CRUD 操作
(2)MyBatis 通过 XML 或注解编写 SQL,灵活控制 SQL 逻辑;
2.常用核心注解:
(1)@Mapper :标记接口为 MyBatis 的 Mapper 接口,让框架自动生成实现类。
(2)@Select / @Insert / @Update / @Delete :在 Mapper 接口中通过注解编写 SQL,替代 XML 配置
3.代码示例:
<!-- .xml文件-->
<!-- 动态更新员工-->
<update id="update2">
update emp
<set>
<if test="username!=null">username=#{username},</if>
<if test="name!=null">name=#{name},</if>
<if test="gender!=null">gender=#{gender},</if>
<if test="image!=null">image=#{image},</if>
<if test="job!=null">job=#{job},</if>
<if test="entrydate!=null">entrydate=#{entrydate},</if>
<if test="deptId!=null">dept_id=#{deptId},</if>
<if test="updateTime">update_time = #{updateTime}</if>
</set>
where id = #{id}
</update>
//mapper接口
//更新员工
@Update("update emp set username=#{username},name=#{name},gender=#{gender},image=#{image},job=#{job},entrydate=#{entrydate},dept_id=#{deptId},"+"update_time=#{updateTime} where id=#{id}")
public void update(Emp emp);
四、Mybatis-Plus
1.介绍:
MyBatis-Plus 是 MyBatis 的增强工具,提供了通用 Mapper、代码生成器、分页插件等功能,大幅减少重复 CRUD 代码的编写
2.常用核心注解--增强注解:
(1)@TableName :指定实体类对应的数据表名(当类名与表名不一致时)。
(2) @TableId :指定实体类的主键字段,可配置主键策略(如 type = IdType.AUTO 自增)。
(3)@TableField :指定实体类字段与表字段的映射关系(如字段名不一致、排除非表字段)
3.代码示例:
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("address")
@ApiModel(value="Address对象", description="")
public class Address implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "用户ID")
private Long userId;
}
五、SpringBoot
1.介绍:
(1)是框架整合工具,核心是“自动配置”
(2)内置了大量 starter 依赖(如 spring-boot-starter-web 整合 SpringMVC),无需手动配置依赖版本;
(3) 自动配置框架的核心组件(如 Spring 容器、MyBatis 数据源),大幅减少 XML/Java 配置代码;
(4)内嵌 Web 服务器(如 Tomcat),可直接打包成 Jar 包运行,简化部署流程
2.常用核心注解:
@SpringBootApplication :
标记主启动类,是 @Configuration + @EnableAutoConfiguration + @ComponentScan 的组合,开启自动配置和组件扫描
3.代码示例:
@SpringBootApplication
public class SpringbootAopApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootAopApplication.class, args);
}
}
六、补充-RESTful风格:
1.介绍:
在 Spring 生态(如 SpringMVC、SpringBoot) 中被广泛使用,是设计 API 接口的主流风格
2.RESTful 风格的核心场景与框架
(1)RESTful 是一种软件架构风格,用于设计网络 API,SpringMVC、SpringBoot 是支持它的典型框架
(2)在 SpringMVC 中,通过 @RequestMapping 、 @GetMapping 、 @PostMapping 等注解定义 RESTful 接口;
(3)SpringBoot 则进一步简化了 RESTful 接口的开发,结合自动配置和 Starter 依赖,可快速构建符合 REST 规范的服务
3.RESTful 风格的核心设计原则(结合 Spring 框架)
(1) 在 Spring 中,通过 @PathVariable 绑定 URI 中的路径变量
@GetMapping("/users/{id}")
public User getUser(@PathVariable Integer id) {
// 处理逻辑
}
(2)HTTP 方法语义化:
GET :查询资源(如 @GetMapping );
POST :创建资源(如 @PostMapping );
PUT :全量更新资源(如 @PutMapping );
DELETE :删除资源(如 @DeleteMapping )
(3)状态码与响应格式:
利用 HTTP 状态码表示操作结果(如 200 OK 表示成功, 404 Not Found 表示资源不存在);
响应通常以 JSON 格式返回,Spring 中可通过 @ResponseBody 或 @RestController 实现
七、统一结果封装的 Result 风格
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {
private Integer code;//响应码,1 代表成功; 0 代表失败
private String msg; //响应码 描述字符串
private Object data; //返回的数据
//增删改 成功响应
public static Result success(){
return new Result(1,"success",null);
}
//查询 成功响应
public static Result success(Object data){
return new Result(1,"success",data);
}
//失败响应
public static Result error(String msg){
return new Result(0,msg,null);
}
}
八、
1.SSM:Spring+SpringMVC+MyBatis
2.Spring + SpringMVC + Hibernate
(Hibernate 是另一款 ORM 框架,与 MyBatis 功能重叠但设计思路不同)
更多推荐


所有评论(0)