肝了一个半月的Java项目快速开发脚手架:Chewing,java面试简历项目经验

|— util // 工具

MyAppcation.java // 应用启动类

src/main/resources

|— config // 配置文件

|— mapper // 映射文件

|— static // 静态文件

|— templates // 页面文件

application.properties // 应用配置文件

quartz.properties // 调度配置文件

2、代码说明

==========

(1)路由

=========

  • /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”));

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

最新整理面试题
在这里插入图片描述

上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题

最新整理电子书

在这里插入图片描述

最新整理大厂面试文档

在这里插入图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-wkSuZWSA-1712043875525)]

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

最新整理面试题
[外链图片转存中…(img-0deqEeWZ-1712043875525)]

上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题

最新整理电子书

[外链图片转存中…(img-dXO8Qkuw-1712043875526)]

最新整理大厂面试文档

[外链图片转存中…(img-ryj6Ju6a-1712043875526)]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值