最全肝了一个半月的Java项目快速开发脚手架:Chewing,mysql性能调优面试题

最后

分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。

《Java高级面试》

《Java高级架构知识》

《算法知识》

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • /api/xxx:需要用户登录。

  • /console/xxx:需要管理员登录,登录、登出等部分接口除外。

(2)接口规范

===========

  • 页面请求:GET、URL 参数。

  • 接口请求:POST、JSON 参数。

(3)数据库初始化

=============

  • 初始化配置文件:config/dbinit.json。

  • 配置初始化标识及 SQL 语句。

初始化示例:

[

{

“initKey”: “site_config_20210110”,

“sqls”: [

“INSERT INTO t_site_config (id, code, name, content, description, public_flag, gmt_create) VALUES(NULL, ‘site_record_no’, ‘网站备案号’, '<a href=“https://beian.miit.gov.cn” class=“ml-2” target=”_blank">备案号', ‘网站备案号’, true, NOW());"

]

}

]

(4)文件上传下载

=============

  • 上传单个文件:/file/upload。

  • 上传多个文件:/file/uploads。

  • 下载文件:/file/download。

(5)Excel 导入导出

=================

  • Excel 导入导出方法:ExcelUtil.importExcel()、ExcelUtil.exportExcel()。

  • Excel 导入导出处理器接口:IExcelImportHandler、IExcelExportHandler。

导入示例:

String msg = null;

try {

String[] keys = new String[] {“username”, “realName”, “mobile”};

msg = ExcelUtil.importExcel(file.getInputStream(), keys, new IExcelImportHandler() {

@Override

public void handle(JSONObject data) {

if (StringUtils.isBlank(data.getString(“username”))) {

throw new RuntimeException(“用户名不能为空”);

}

if (StringUtils.isBlank(data.getString(“mobile”))) {

throw new RuntimeException(“手机号不能为空”);

}

// 业务处理

}

});

log.info(msg);

} catch (IOException e) {

e.printStackTrace();

}

导出示例:

ServletOutputStream os = null;

try {

String fileName = “用户列表”;

// 用户列表数据

List list = userService.list(params);

// 表头

String[] headers = new String[] {"编号 ", “用户名”, “姓名”, “手机号”, “邮箱”, “注册方式”, “注册时间”, “上次登录时间”, “是否VIP”};

os = response.getOutputStream();

// 导出

ExcelUtil.exportExcel(fileName, list, headers, os, new IExcelExportHandler() {

@Override

public List handle(User user) {

List rowDatas = new ArrayList<>();

rowDatas.add(user.getId());

rowDatas.add(user.getUsername());

rowDatas.add(user.getRealName());

rowDatas.add(user.getMobile());

rowDatas.add(user.getEmail());

rowDatas.add(RegisterType.getEnum(user.getRegisterType()).getValue());

rowDatas.add(DateUtil.format(user.getRegisterTime(), “yyyy-MM-dd HH:mm:ss”));

rowDatas.add(user.getLastLoginTime() == null ? “” : DateUtil.format(user.getLastLoginTime(), “yyyy-MM-dd HH:mm:ss”));

rowDatas.add(Boolean.TRUE.equals(user.getVipFlag()) ? “是” : “否”);

return rowDatas;

}

});

} catch (IOException e) {

e.printStackTrace();

} finally {

}

(6)获取字典

===========

  • 获取单个字典:/common/dict。

  • 获取多个字典:/common/dicts。

(7)上下文信息

============

  • UserContext:用户上下文信息。

  • AdminContext:管理员上下文信息。

(8)调度

=========

  • 新增调度任务:继承 BaseJob。

  • 调度接口执行调度任务:/console/schedule_job/run。修改调度状态:/console/schedule_job/update_status。修改调度频率:/console/schedule_job/update_cron。

(9)注解

=========

  • @Lock:分布式锁。

  • @Perm:标注需要管理员权限的接口。

(10)配置文件

============

  • 由于个人习惯,项目中使用的是 properties 配置文件,对于习惯使用 yml 配置文件的,请手动修改。

  • 如果要加载自定义的 yml 配置文件,可以使用项目中提供的 YAML 属性源工厂类:YamlPropertySourceFactory。

代码示例:

@Component

@ConfigurationProperties(prefix=“test”)

@PropertySource(value=“classpath:config/test.yml”, encoding=“UTF-8”, factory=YamlPropertySourceFactory.class)

public class TestYmlConfig {

}

(11)属性名后缀匹配查询条件

===================

BaseService 中以 JSON 对象为参数的方法,可通过在属性名后面添加后缀,来匹配查询条件。

  • xxx_begin:大于等于。

  • xxx_end:小于等于。

  • xxx_in:IN 查询。

  • xxx_like:模糊查询。

  • xxx_llike:做模糊查询。

  • xxx_rlike:右模糊查询。

  • 其他:等于。

  • 属性值为空:不参与查询。

代码示例:

@Test

public void test() {

JSONObject params = new JSONObject();

params.put(“username_like”, “test”);

List user = userService.list(params);

System.out.println(user);

}

@Test

public void test2() {

JSONObject params = new JSONObject();

params.put(“username_in”, Arrays.asList(“test”));

List user = userService.list(params);

System.out.println(user);

}

(12)…

===========

六、演示图

=========

1、前台

========

肝了一个半月的Java项目快速开发脚手架:Chewing

肝了一个半月的Java项目快速开发脚手架:Chewing

技术学习总结

学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。

最后面试分享

大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

(img-g3ENFw0V-1715612586779)]

最后面试分享

大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!

[外链图片转存中…(img-25DKbS0M-1715612586779)]

[外链图片转存中…(img-8tOmoBGJ-1715612586780)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值