栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

OAuth2角色

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OAuth2角色

同程旅游项目月总结 技术架构

开发流程

项目工程结构

项目结构

里程碑

整个项目中,关键节点的里程碑计划。

搜索模块

搜索
枚举获取添加项
路径不是search驼峰格式,用-
枚举值在一个表里面,表结构合理
1后端接口添加、删除都是
2获取筛选4个用一个接口
3酒店搜索接口
不用restful风格,接口名清楚
对表设计、接口
酒店列表数据库
自己定义document就是ES里面的
点击就有酒店ID,搜索酒店系统
给经纬度接口就行
附近:
不做3级里面详细东西(价格、星级)(筛选:不做)(医院、机场就行)

关注admin、search
API:用java操作search
不管MySQL,只管ES增删改查
中间件canal保证数据同步,BLOG文件变动后在ES里面,不通过程序保证同步
先改MySQL,中间件就不用调用ES接口了,最终数据以数据库为准
方案一:MySQL出错就不添加ES了,MySQL成功了,ES失败就错了,job同步一直扫描 再同步,程序很麻烦
canal部署麻烦
底层订阅了BLOG文件,操作的日志
主从同步,也是订阅的BLOG文件,涉及到

方案二:
Redis:主从、哨兵
MySQL:双机热备
api快速构建了restful风格请求,ES里面快速响应,API很方便
是java写的,看源码,看官方文档

数据库


注意

1.设置非空验证
官网:http://hibernate.org/validator
例:

public class Car {
   @NotNull
   private String manufacturer;
   @NotNull
   @Size(min = 2, max = 14)
   private String licensePlate;
   @Min(2)
   private int seatCount;
   // ...
}

2.一些配置不要放在业务层
例:

@Configuration
public class DruidConfig {
    
    @Bean
    @ConditionalOnMissingBean
    public ServletRegistrationBean druidStartViewServlet() {
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        // 白名单
//        servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
        // 黑名单
        servletRegistrationBean.addInitParameter("deny", "192.168.1.100");
        // 登录查看信息的账密,用于登录Druid监控后台
        servletRegistrationBean.addInitParameter("loginUsername", "druid");
        servletRegistrationBean.addInitParameter("loginPassword", "druid");
        // 是否能够重置数据
        servletRegistrationBean.addInitParameter("resetEnable", "true");
        return servletRegistrationBean;
    }

3.不用try catch(影响可读性)
使用全局捕捉异常例GlobalExceptionHandler、ApiException直接引common模块使用。

4.if else问题
可以直接if return让代码简洁。

if{
        ...
}
return ...

5.日志打印问题
在主要流程打印日志,节约资源。

6.接口注释写好增加可读性。

7.if else特别多时用switch语句,让代码干净整洁些。

8.相应模块写在对应模块里,例如admin的写admin模块里。

9.使用mybatis-plus 例如Service直接继承Iservice的方法简洁代码

10.minio上传文件单独写一个service

11.字符串拼接问题

12.redis的使用要修改

13.mybatis-plus使用LambdaQueryWrapper通过方法引用的方式来使用实体字段名的操作
例:

        LambdaQueryWrapper lambda3 = Wrappers.lambdaQuery();
        lambda3.like(User::getName, "雨").lt(User::getAge, 40);

14.大小写问题例如DTO、VO

15.非空用hutool工具

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/856599.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号