当前位置: 首页 > wzjs >正文

建设银行网站设计特点3步打造seo推广方案

建设银行网站设计特点,3步打造seo推广方案,网站建设花销,个人免费网站注册一、背景简介 最近2年,很多公司接项目开始不挑剔了,只要核算下来有收益不会亏,就会库库的做各种没头没脑的项目,都是抱着多撑一天是一天的躺平心态。 如果项目和业务稳定,自然也有动力卷架构卷设计。 然而2024年对于…

一、背景简介

最近2年,很多公司接项目开始不挑剔了,只要核算下来有收益不会亏,就会库库的做各种没头没脑的项目,都是抱着多撑一天是一天的躺平心态。

如果项目和业务稳定,自然也有动力卷架构卷设计。

然而2024年对于很多研发团队的打工人来说,普遍都是处在随时卷铺盖走人的状态中,自然就是怎么省事怎么来,做项目时间和成本是最重视的维度。

抛开什么AI和各种工具加持,节省编程时间最有效的办法就是:拿现成的,最好只改个端口号。

二、工程结构

2024年上半年各种不大不小的项目写下来,其实从代码工程上看都是差不多的,服务端无非就是前和后两个代码工程,集成基础框架就可以增删改查了。

为了后续其它项目使用相同的基础工程,在第一个项目中,预留了代码工程的初期基础设计,方便那什么循环利用,在这篇文章简单分享一下。

画板

基础的代码工程就这几块,实际上就是前后台两个单体服务,不涉及微服务和复杂架构,就是拿来应付各种奇怪的内部项目的快速开发;两个门面服务分别依赖framesharedthird三层代码包,然后运行启动类即可。

既然是单体服务,自然也不涉及数据库的拆分,能安稳运行就可以了。

<modules><!-- 门面管理 --><module>bm-facade</module><!-- 后台管理 --><module>bm-admin</module><!-- 业务共享层 --><module>bm-shared</module><!-- 框架管理 --><module>bm-frame</module><!-- 第三方接入 --><module>bm-third</module>
</modules>

三、模块化功能

3.1 框架模块

主要管理代码工程核心组件依赖,比如SpringBoot框架,MySQL数据库,MybatisPlus持久层,Swagger接口等,并且添加了一个公共过滤器。

@Slf4j
@Component
public class CommonFilter extends OncePerRequestFilter implements Ordered {@Overrideprotected void doFilterInternal(HttpServletRequest request,HttpServletResponse response,FilterChain chain)throws ServletException, IOException {log.info("CommonFilter...doFilterInternal");// 请求向下转发chain.doFilter(request, response);}@Overridepublic int getOrder() {return 999 ;}
}

对于一些必要的配置类和二次封装,也放在了这一层,另外为了简化工程的复杂性,使用AOP的方式包装了日志记录和令牌核验;

AOP切面编程就不说了,这个在项目中经常使用;Token令牌的封装方式可以自行扩展,权限校验拿数据的记录对比一下即可。

@Component
public class BaseToken {@Getter@Setterprivate Long userId;@Getter@Setterprivate String userName;@Getter@Setterprivate String appName;@Getter@Setterprivate Long expireTime;private static final byte[] AES_KEY = Arrays.copyOf(MD5.create().digest(BaseToken.class.getPackage().getName()), 16);@Getterprivate final String currentType = BaseToken.class.getTypeName();public void expireTime(int effective) {expireTime = System.currentTimeMillis()/1000 + effective ;}public boolean expired() {return expireTime < (System.currentTimeMillis() / 1000);}public String toToken() {String data = JSONUtil.toJsonStr(this);return SecureUtil.aes(AES_KEY).encryptBase64(data);}public static BaseToken parseToken(String token) {String dataStr = SecureUtil.aes(AES_KEY).decryptStr(token);return JSONUtil.toBean(dataStr, BaseToken.class);}public boolean checkPermission (String... permissionCode) {AuthCheck authService = SpringUtil.getBean(AuthCheck.class);return authService.hasPermission(this.getUserId(), permissionCode);}}

使用AOP切面编程拦截要鉴权的方法即可。

@Component
@Aspect
@RequiredArgsConstructor
public class AuthAop {/*** 切入点*/@Pointcut("@annotation(com.butte.mound.frame.security.Auth)")public void logPointCut() {}@Around("logPointCut()")public Object around (ProceedingJoinPoint point) throws Throwable {try{// 检查权限checkAuth(point);// 执行方法Object result = point.proceed();return result;} catch (Exception e){e.printStackTrace();throw e ;}}private void checkAuth (ProceedingJoinPoint point){try{MethodSignature signature = (MethodSignature) point.getSignature();Method method = signature.getMethod();Auth auth = method.getAnnotation(Auth.class);BaseToken token = TokenContext.getToken();token.checkPermission(auth.authCode());} catch (Exception e){e.printStackTrace();}}
}

3.2 业务共享模块

主要管理业务代码,数据库相关的持久层文件,如果在服务层前后台业务差异过大的话,也可以考虑分2层管理即可,在体量小的项目中,持久层代码几乎差异不大,最多只是一些自定义查询。

画板

3.3 前后台模块

前后台两个模块,主要就是API接入层,通常就是用户访问和系统管理的两个服务,在逻辑上并没有什么本质差异,为了方便不同角色的请求管理,在两个工程内各添加了一个拦截器。

画板

@Slf4j
@Component
public class FacadeInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {log.info("req uri : {}",request.getRequestURI());String facadeToken = "令牌";BaseToken token = BaseToken.parseToken(facadeToken);TokenContext.setToken(token);return Boolean.TRUE ;}
}

3.4 第三方模块

至于常见的第三方API对接,比如短信服务,OSS文件存储,第三方登录等,如果考虑多个项目多次复用的话,可以单独拎一层出来,简单封装一层工具类,方便之后随时替换,当然也可以在业务工程中直接调用第三方的封装类。

四、源码地址

文档仓库:
https://gitee.com/cicadasmile/butte-java-note源码仓库:
https://gitee.com/cicadasmile/butte-mound
http://www.dtcms.com/wzjs/371247.html

相关文章:

  • 网站团队人数谷歌推广怎么做
  • 在网站怎么做代销首页排名关键词优化
  • 做团购网站需要注册哪些商标怎么给公司做网站
  • php做网站导购重庆网络seo
  • 做网站还需要兼容ie8吗怎么建个网站
  • 山东省建设工程网站百度知道合伙人
  • 建立企业网站的详细步骤网络营销理论基础有哪些
  • 高明区做网站免费做网站怎么做网站吗
  • 湛江网站建设公司视频号视频下载助手app
  • 展厅布置海外seo培训
  • 女頻做的最好的网站仓山区seo引擎优化软件
  • 襄阳做网站公司重庆网站设计
  • 上海的做网站的公司北京网络营销推广培训哪家好
  • 网站设计制作哪里好网络营销方法有几种类型
  • 旅游投资公司网站建设ppt模板反向链接查询
  • 自己做的网站如何管理seo作弊
  • asp做微网站设计微信营销管理软件
  • 外贸网站模板外贸网站建设seo优化服务价格
  • 泰安seo优化seo是什么职业
  • 人人建站网新闻今日头条最新消息
  • 快设计网站官网网站推广与优化方案
  • 怎么做网站页面代码搜索企业网站定制
  • devexpress做网站武汉网络推广有哪些公司
  • ec 在线客服 官方网站网站注册时间查询
  • 江苏省建设厅网站是seo零基础教学视频
  • 建设银行如何网站设置密码吉林seo刷关键词排名优化
  • 邯郸品牌策划设计网络优化seo薪酬
  • 做网站横幅技巧百度搜索广告推广
  • 菏泽手机网站建设最近三天的新闻大事国内
  • 澳门seo关键词排名奇零seo赚钱培训