当前位置: 首页> 娱乐> 明星 > 新疆建设工程信息网招标_app是怎么制作的_销售策略和营销策略_成都网站建设公司排名

新疆建设工程信息网招标_app是怎么制作的_销售策略和营销策略_成都网站建设公司排名

时间:2025/7/9 2:47:37来源:https://blog.csdn.net/weixin_65552509/article/details/148615723 浏览次数:0次
新疆建设工程信息网招标_app是怎么制作的_销售策略和营销策略_成都网站建设公司排名

目录

  • 1. 常用易混淆注解解释
    • 1.1 @Resource和@Autowired注解的区别
    • 1.2 @PathVariable和@RequestParam注解的区别
  • 2. Mybatis-Plus高级特性
    • 2.1 强大的通用CRUD接口
    • 2.2 代码生成器
  • 3. IDEA实用快捷键
  • 4. 前后端联调关键点
    • 4.1 代码示例
    • 4.2 联调要点
    • 4.3 调试技巧

1. 常用易混淆注解解释

1.1 @Resource和@Autowired注解的区别

在Spring框架中,@Resource@Autowired都是用于依赖注入的注解,但有以下关键区别:

特性@Autowired@Resource
来源Spring框架Java标准(JSR-250)
注入方式默认按类型(byType)默认按名称(byName)
必需性默认必须(可设required=false)非必须
指定名称需配合@Qualifier直接使用name属性
构造函数注入支持不支持
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import javax.annotation.Resource;// 服务接口
interface PaymentService {void pay();
}// 实现类1
@Service("wechatPay")
class WechatPay implements PaymentService {public void pay() {System.out.println("微信支付");}
}// 实现类2
@Service("aliPay")
class AliPay implements PaymentService {public void pay() {System.out.println("支付宝支付");}
}// 客户端类
@Service
class ShoppingCart {/* 最常用场景对比 */// 1. 按类型注入(默认方式)@Autowired  // Spring方式:存在多个实现时会报错private PaymentService typeInjectedService;@Resource   // Java标准方式:会退化成按名称注入(变量名作为bean名称)private PaymentService resourceInjectedService;// 2. 按名称注入(解决多个实现问题)@Autowired@Qualifier("wechatPay")  // Spring方式:需要两个注解private PaymentService qualifiedService;@Resource(name = "aliPay")  // Java标准方式:一个注解搞定private PaymentService namedResourceService;// 3. 构造函数注入(推荐方式)private final PaymentService constructorInjected;@Autowired  // 唯一支持构造器注入的方式(Spring 4.3+可省略)public ShoppingCart(PaymentService constructorInjected) {this.constructorInjected = constructorInjected;}/* 实际使用示例 */public void checkout(int paymentType) {switch(paymentType) {case 1:qualifiedService.pay();    // 明确使用微信支付break;case 2:namedResourceService.pay(); // 明确使用支付宝break;default:constructorInjected.pay(); // 使用默认注入的实现}}
}

1.2 @PathVariable和@RequestParam注解的区别

这两个注解都用于从HTTP请求中获取参数,但使用场景不同:

特性@PathVariable@RequestParam
参数位置URL路径部分URL查询字符串
示例URL/user/{id}/user?id=123
是否必需默认必需可选(可设required=false)
多值处理不支持支持(数组/集合)
// @PathVariable 示例
@GetMapping("/users/{userId}")
public User getUser(@PathVariable String userId) {// ...
}// @RequestParam 示例
@GetMapping("/users")
public User getUser(@RequestParam(required = false) String name) {// ...
}

2. Mybatis-Plus高级特性

Mybatis-Plus在Mybatis基础上提供了诸多便利功能:

2.1 强大的通用CRUD接口

内置通用Mapper,无需编写简单SQL

分类方法示例说明
插入insert(T entity)插入一条记录
删除deleteById(Serializable id)根据ID删除
deleteBatchIds()批量删除(根据ID集合)
更新updateById(T entity)根据ID更新
update(entity, wrapper)根据条件更新
查询selectById()根据ID查询
selectOne()查询一条记录(结果多条会报错)
selectList()查询列表
selectCount()查询总数
分页selectPage()分页查询

2.2 代码生成器

一键生成Entity、Mapper、Service等

在这里插入图片描述

3. IDEA实用快捷键

功能Windows快捷键
全局搜索Double Shift
当前文件查找Ctrl+F
在所有文件/模块/文件夹查找Ctrl+Alt+F
代码格式化Ctrl+Alt+L
重写方法Ctrl+O
重写/实现方法Ctrl+I
AI智能补全Tab
输入表达式后使用此后缀快速生成变量.var

4. 前后端联调关键点

4.1 代码示例

// 正确示例 - 参数名与后端一致
methods: {deleteInterviewer(interviewerId) {...}).then(() => {var params = {interviewerId: interviewerId}
deleteInterviewer: function(params) {return instance({url: '/interviewer/delete',method: 'delete',params: params})
}

后端接口:

@DeleteMapping("/delete")
public Result delete(@RequestParam String interviewerId) {// 参数名必须与前端一致service.delete(interviewerId);return Result.ok();
}

4.2 联调要点

  1. 命名一致性:前后端参数名严格一致
  2. 请求方式匹配
    • GET - 查询
    • POST - 创建
    • PUT - 更新
    • DELETE - 删除
  3. 数据格式
    • 明确约定JSON字段命名风格(驼峰/下划线)
    • 日期格式统一(如yyyy-MM-dd HH:mm:ss)

4.3 调试技巧

使用Postman测试接口

在这里插入图片描述

开启SpringBoot的SQL日志:

mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
关键字:新疆建设工程信息网招标_app是怎么制作的_销售策略和营销策略_成都网站建设公司排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: