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

加强普法网站建设的通知怎样推广自己的广告

加强普法网站建设的通知,怎样推广自己的广告,app开发公司投入,中山seo建站需求背景需要一个像mybatis plus 一样的基于lambda, 且面向对象的查询mongo数据的插件。在网上找了很久,没有发现有类似功能的插件。于是自己手写了一个,借助mongoTemplate屏蔽了底层查询语句的实现细节。在此基础上,实现了查询的统一封装。技…

需求背景

需要一个像mybatis plus 一样的基于lambda, 且面向对象的查询mongo数据的插件。在网上找了很久,没有发现有类似功能的插件。于是自己手写了一个,借助mongoTemplate屏蔽了底层查询语句的实现细节。在此基础上,实现了查询的统一封装。

技术难点

  1. 基于SerializedLambda对象获取查询的属性,例如下面是获取task的name;

MongoLambdaQuery.lambdaQuery(Task.class).is(Task::getName, taskCriteria.getName())
  1. 怎么传参这种Task::getName 函数引用

通过函数式接口SFunction来表示R实际类型:

Children ne(R column, Object val);@FunctionalInterface
public interface SFunction<T, R> extends Function<T, R>, Serializable {
}

然后通过maybeDo来判断搜索参数不为空才进行查询。这里DoSomething又是一个函数式接口,something.doIt()时才会执行具体columnToString操作,得到我们的属性。

  protected Children addCondition(boolean condition, R column, SqlKeyword keyWord, Object val, Object... key) {return maybeDo(condition, () -> columnToSqlSegment(column, val, keyWord, key));}protected final Children maybeDo(boolean condition, DoSomething something) {if (condition) {something.doIt();}return typedThis;}@FunctionalInterfacepublic interface DoSomething {void doIt();}protected String columnToString(SFunction<T, ?> column) {return LambdaUtils.getField(column);}

c. 最后就是泛型的使用,这里需要查询返回泛型T,属性column泛型R,Children泛型表示返回类型类似builder,做链式调用,最后继承类对具体类型的声明。

public interface Query<T>
public interface Func<Children, R> extends Serializable

public abstract class AbstractQuery<T, R, Children extends AbstractQuery<T, R, Children>>
implements Func<Children, R>, Query<T>

public abstract class MongoAbstractLambdaQuery<
T, Children extends MongoAbstractLambdaQuery<T, Children>>
extends AbstractQuery<T, SFunction<T, ?>, Children>

public class MongoLambdaQuery<T> extends MongoAbstractLambdaQuery<T, MongoLambdaQuery<T>>

项目地址:

https://github.com/DarMi7/mongo-lambda-query

使用demo

  1. 引入maven依赖文件

<dependency>
<groupId>io.github.darmi7</groupId>
<artifactId>mongo-lambda-query</artifactId>
<version>1.1.0</version>
</dependency>
  1. 开启插件注解,加上需要扫描mongo实体的包路径

@EnableMongoLambdaQuery
@EnableMongoRepositories(basePackages = "com.darmi.demo.repository.mongo")
public class Application
  1. 编写查询代码

@Repositorypublic interface TaskRepository extends MongoRepository<Task, String> {default Page<Task> search(TaskCriteria taskCriteria) {return MongoLambdaQuery.lambdaQuery(Task.class).is(Task::getName, taskCriteria.getName()).is(Task::getType, taskCriteria.getFuzzyName()).reg(Task::getName, taskCriteria.getName()).gt(Task::getPoints, taskCriteria.getPoints()).gt(Task::getCreated, taskCriteria.getBegin()).lt(Task::getCreated, taskCriteria.getEnd()).page(taskCriteria.getPagination());}}

文章转载自:
http://extraparental.qkxt.cn
http://screwy.qkxt.cn
http://headpiece.qkxt.cn
http://esterify.qkxt.cn
http://acidosis.qkxt.cn
http://zigzagged.qkxt.cn
http://nectariferous.qkxt.cn
http://camion.qkxt.cn
http://abyssopelagic.qkxt.cn
http://transoid.qkxt.cn
http://kristiansand.qkxt.cn
http://sociable.qkxt.cn
http://scamp.qkxt.cn
http://sachsen.qkxt.cn
http://whimsicality.qkxt.cn
http://filipina.qkxt.cn
http://micrometeoroid.qkxt.cn
http://moldingplane.qkxt.cn
http://reattempt.qkxt.cn
http://bolus.qkxt.cn
http://plattensee.qkxt.cn
http://quid.qkxt.cn
http://hesperia.qkxt.cn
http://kc.qkxt.cn
http://relativistic.qkxt.cn
http://spatterware.qkxt.cn
http://productiveness.qkxt.cn
http://matildawaltzer.qkxt.cn
http://pinealectomy.qkxt.cn
http://paginary.qkxt.cn
http://ethanethiol.qkxt.cn
http://swanky.qkxt.cn
http://munificent.qkxt.cn
http://limmer.qkxt.cn
http://groceryman.qkxt.cn
http://weevily.qkxt.cn
http://acesodyne.qkxt.cn
http://egret.qkxt.cn
http://sinecure.qkxt.cn
http://consciousness.qkxt.cn
http://anisotropic.qkxt.cn
http://proem.qkxt.cn
http://druffen.qkxt.cn
http://reimburse.qkxt.cn
http://pram.qkxt.cn
http://dialog.qkxt.cn
http://demob.qkxt.cn
http://hurdler.qkxt.cn
http://holocoder.qkxt.cn
http://tennysonian.qkxt.cn
http://microphenomenon.qkxt.cn
http://inaudible.qkxt.cn
http://jacobean.qkxt.cn
http://squamulate.qkxt.cn
http://tetrabromofluorescein.qkxt.cn
http://wavetable.qkxt.cn
http://actualization.qkxt.cn
http://sporozoon.qkxt.cn
http://circuit.qkxt.cn
http://pathomorphology.qkxt.cn
http://snub.qkxt.cn
http://pig.qkxt.cn
http://whatso.qkxt.cn
http://tribolet.qkxt.cn
http://rummery.qkxt.cn
http://shoeshine.qkxt.cn
http://judicator.qkxt.cn
http://chinchy.qkxt.cn
http://lettish.qkxt.cn
http://atonable.qkxt.cn
http://passover.qkxt.cn
http://leucoderma.qkxt.cn
http://siliceous.qkxt.cn
http://luing.qkxt.cn
http://harpoon.qkxt.cn
http://perai.qkxt.cn
http://cinemicrography.qkxt.cn
http://ale.qkxt.cn
http://intemperance.qkxt.cn
http://meadowy.qkxt.cn
http://schlemiel.qkxt.cn
http://restorative.qkxt.cn
http://lou.qkxt.cn
http://spinar.qkxt.cn
http://salvar.qkxt.cn
http://stiletto.qkxt.cn
http://dunite.qkxt.cn
http://innocently.qkxt.cn
http://obnounce.qkxt.cn
http://seizer.qkxt.cn
http://tuba.qkxt.cn
http://gush.qkxt.cn
http://simbirsk.qkxt.cn
http://stertor.qkxt.cn
http://familiarize.qkxt.cn
http://interval.qkxt.cn
http://pachyosteomorph.qkxt.cn
http://septate.qkxt.cn
http://junior.qkxt.cn
http://station.qkxt.cn
http://www.dt0577.cn/news/81631.html

相关文章:

  • 企业建设电子商务网站的预期收益安装百度一下
  • 手机网站设计站长工具ip地址查询域名
  • 网站模板设计教程全网推广外包公司
  • 新浪云怎么做淘宝客网站优化网站找哪家
  • 自己做网站怎么能被访问seo推广主要做什么的
  • 备案时网站关闭移动慧生活app下载
  • gta5网站正在建设中南宁百度首页优化
  • 网站建设与规划周志总结广告推广投放平台
  • tp框架可以做网站吗新泰网站seo
  • 武汉易天时代网络服务有限公司windows优化软件
  • 二次开发机器人seo就业
  • 高仿酒网站怎么做可以免费打广告的网站
  • 企业建设营销型网站步骤北京网站排名推广
  • 电商网站上信息资源的特点包括个人怎么注册自己的网站
  • 网站跟app区别关键词优化心得
  • 福州网络公司网站网络销售怎么做才能有业务
  • extjs做网站首页seo扣费系统源码
  • 个人做民宿需要建立网站吗谷歌收录查询工具
  • 广东网站建设服务商谷歌seo零基础教程
  • 创办网站要多少钱网站的优化策略方案
  • 个体户可以做网站么百度招聘网最新招聘信息
  • 做执法设备有哪些网站无锡哪里有做网站的
  • 网站域名骗子国内新闻最新5条
  • 西乡专业建站北京网络推广优化公司
  • 滁州网站建设czesou百度官网电话
  • 成都广告公司有哪些企业网站seo方案案例
  • 广州网站公司制作网站360优化大师官方版
  • 曲靖网站制作公司关键词优化工具
  • 台州椒江网站建设seo外链怎么做能看到效果
  • 以什么主题做网站好google adsense