通用

通用htaccess将www重定向到非www

。_饼干妹妹 提交于 2020-01-16 05:06:04
遇到的问题: 我想将www.example.com重定向到example.com 。 以下htaccess代码可实现此目的: RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301] 但是,有没有一种方法可以以通用的方式而不用对域名进行硬编码? 解决方案: 解决方案一 RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 与迈克尔的相同,除了这一作品:P 解决方案二 但是,如果我们需要对单独的http和https执行此操作: RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] 解决方案三

# ConfigureAwait常见问题解答

怎甘沉沦 提交于 2020-01-14 00:34:50
原文: https://devblogs.microsoft.com/dotnet/configureawait-faq/ .NET 在七多年前在语言和类库添加了 async/await 。在那个时候,它像野火一样流行,不仅遍及.NET生态系统,而且还可以以多种其他语言和框架进行复制。在利用异步的其他语言构造,提供异步支持的API以及进行async/ await相关的基础架构方面的基本改进方面,.NET也实现了很多改进(特别是.NET Core的性能和支持诊断的改进) 。 但是, async/ await 依旧引起疑问的一个方面是 ConfigureAwait 在这篇文章中,我希望回答其中的许多问题。我希望这篇文章从头到尾都是可读的,并且是可以用作将来参考的常见问题解答(FAQ)列表。 要真正理解 ConfigureAwait ,我们需要提前一点开始… 什么是SynchronizationContext? System.Threading.SynchronizationContext 文档这样描述 SynchronizationContext :它在各种同步模型中提供传输同步上下文的基本功能。这并不是一个显而易懂的描述。 对于99.9%的情况, SynchronizationContext 仅是一种提供虚拟 Post 方法的类型,该方法需要委托以异步方式执行(还有各在

手打SQL语句?——来试试通用 Mapper吧

做~自己de王妃 提交于 2020-01-13 05:09:17
通用 Mapper是什么 在我们使用MyBatis中,我们需要写大量的SQL语句,包括最基本的一些增删改查,这些简单的SQL语句占用了大量的时间,却不得不写,这时我通用Mapper就出现了。 通用Mapper是一个可以实现任意 MyBatis 通用方法的框架, 项目提供了常规的增删改查操作以及Example 相关的单表操作 。 Github地址 通用Mapper支持的集成 快速入门 导入依赖 创建实体类 通用 Mapper 中,默认情况下是 将实体类字段按照驼峰转下划线形式的表名列名进行转换 创建Mapper 说明 标识主键 @Id 表明该字段是主键 如果实体类中没有一个标记 @Id 的字段, 当你使用带有 ByPrimaryKey 的方法时, 所有的字段会作为联合主键来使用,也就会出现类似 where id = ? and username = ? and password = ? 的情况。 主键策略 @KeySql ( useGeneratedKeys = true ) 表明该字段支持主键的取回(只能在主键上配置) 当执行完插入语句后可以马上将主键取回 注意:当使用主键策略时需保证数据库主键是自增列 当我们在Mapper上继承通用Mapper后继承的方法 通用Mapper也提供了其他拓展的接口 通用Mapper的其他注解 . @Transient 一般情况下

python带有通用参数的通用装饰器

笑着哭i 提交于 2020-01-09 01:43:09
# -*- coding:utf-8 -*- # 带有通用参数的通用装饰器 def check_with_para(*args2, **kwargs2): def check(fn): def inner(*args, **kwargs): print("密码验证完毕,通过, args=%s,kwargs=%s"%(args, kwargs)) if "haha" == args2[0]: return fn(*args, **kwargs) elif "hehe" == args2[1]: print("这里可以做点其它不同的处理1") return fn(*args, **kwargs) else: print("这里可以做点其它不同的处理2") return fn(*args, **kwargs) return inner return check # 1. 先执行check_with_para("haha")函数, 返回check的引用 # 2. 再执行@check # 3. 使用@check对f1进行装饰 @check_with_para("haha") def f1(n1, n2): print("功能1执行中") return n1 + n2 @check_with_para("hehe", 1) def f2(n1, n2, n3): print("功能2执行中")

通用mapper踩坑

你。 提交于 2020-01-06 21:36:08
通用mapper踩坑 1.通用mapper只用于单表的增删改查。 2.定义bean是必须是pojo包装类,否则比如在插入数据时数据表会显示为空。 1.通用mapper只用于单表的增删改查。 2.定义bean是必须是pojo包装类,否则比如在插入数据时数据表会显示为空。 来源: CSDN 作者: 史蒂夫:王 链接: https://blog.csdn.net/napoluen/article/details/103847295

mybatis-plus一些通用方法

人走茶凉 提交于 2020-01-06 00:49:09
insert相关 boolean insert(T entity); //插入 boolean insertSelective(T entity); //选择性插入,null字段不插入 boolean insertBatch(List<T> entityList); //批量插入 delete相关 boolean deleteById(I id); //通过ID删除 boolean deleteByMap(Map<String, Object> columnMap); // 通过自定义MAP删除 boolean deleteSelective(T entity); //通过entity实体选择性删除,null字段不作为条件 boolean deleteBatchIds(List<I> idList); //批量删除 update相关 boolean updateById(T entity); //通过ID更新 boolean updateSelectiveById(T entity); //通过ID选择性更新,null字段不更新 boolean update(T entity, T whereEntity); //通过whereEntity实体构造where条件进行更新 boolean updateSelective(T entity, T whereEntity); /

通用PE u盘装Ghost Win7系统

本秂侑毒 提交于 2020-01-01 22:32:45
http://www.tongyongpe.com/win7ghost.html 导读 通用pe工具箱是现在最老牌的的U盘装系统和维护电脑的专用工具之一,一键式制作、操作简单便捷,几乎100%支持所有U盘,不再为装机烦恼们,抓紧时间下载通用pe工具箱体验下吧。 准备工作 ①准备一个使用通用pe软件制作好的启动u盘一个(最好1G以上的空的U盘),关于如何使用通用pe制作u盘启动盘,大家可以点击查看链接查看: U盘启动盘制作详细图文教程 ; ②下载Ghost Win7系统镜像文件(大家可以到网上搜索 Ghost Win7系统下载 ,通常以ISO或GHO为后缀的镜像文件). 第一步:将Ghost Win7系统镜像包复制到U盘GHO文件夹内 将下载好的系统镜像包复制到u盘GHO文件夹内!如下图所示: u盘下的CHO文件夹 粘贴win7系统iso镜像包的操作 耐心等待其粘贴进度完成 复制Win7系统iso镜像包到u盘GHO文件夹内完成 第二步:重启电脑,在开机画面出来的时候按"快捷键"直接进入通用pe主窗口界面 ①当我们按快捷键后会弹出一个窗口,窗口里面会有几个选择,我们要找到并按上下方向键"↑↓"选择到u盘,然后按回车键进入通用pe主界面! (一般我们选择的时候可以看下其中一个选项是有关USB或者您u盘的品牌的英文名称,那便是我们的u盘了!) ②至于一键进入U盘启动的示例教程

【干货分享】通用工具类

不想你离开。 提交于 2019-12-29 03:47:07
项目实战中不论是业务编码还是通用编码,总会归纳出一些通用的工具类。 放入项目中一劳永逸,让兄弟姐妹们避免编写重复代码。 公司研发团队经过几个项目的洗礼,沉淀和积累了许多通用工具类。 自己抽空将这些散落在多个项目中精致优雅的工具类,归纳起来形成工程。 GitHub: https://github.com/OrsonEx/tool 因为公司研发团队人来人往,或因事离职、或新老交替.... 有些类几经打磨,已难辨出自谁手,但代码带着他/她当时的意愿一直静静躺在项目工程中。 工程使用 Maven 构建,其中仅仅引入 Apache-Common 的两个 jar。 <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency> 你可以将工程中的工具类单独粘贴到你的项目中,当然也可以整体输出为 jar(单独输出的 jar 只有79KB) 引入项目中。 工程类概览 ArrayUtil

asp.net abp模块化开发之通用树2:设计思路及源码解析

断了今生、忘了曾经 提交于 2019-12-25 22:09:29
一、前言 上一篇大概说了下abp通用树形模块如何使用,本篇主要分析下设计思路。 日常开发中会用到很多树状结构的数据,比如:产品的多级分类、省市区县,大多数系统也会用到类似“通用字典/数据字典”的功能,为系统各个地方提下拉框选择的数据源。abp提供了一个模块化系统,只要按它的约定就可以实现一个通用的树形数据的模块,这样公司的多个系统都可以使用,也可以用类似nuget的方式提供给别人使用。 先列举下它的功能 通过nuget方便安装和升级 配置简单 默认已经提供“通用字典”功能 实体、管理器、应用服务都是抽象类,结合泛型 狠容易扩展实现自己的树形结构 二、必备知识 这不是abp入门级的文章,是探讨系统模块化开发的一种思路。所以要求对abp有经验,完整看过abp文档,对涉及到的模块、依赖注入、启动配置、权限、菜单、本地化等等概念有清晰的认识 三、包和源码 源码地址: https://github.com/bxjg1987/abpGeneralModules nuget:Install-Package BXJG.GeneralTree -Version 1.0.2 在线地址: http://test.cqsifang.com/ 账号密码:admin zlj.com (别胡来,拜托...) 源码仓库中还有通用的文件模块、附件模块,后期会讲讲;nuget搜索bxjg可以找到这几个相关的包 四

java8下 枚举 通用方法

Deadly 提交于 2019-12-25 22:09:17
在项目中经常用到枚举作为数据字典值和描述的相互转化。 用法如下: public enum CommunicationParamsCom { COM_1(1, "COM1"), COM_2(2, "485端口1"), COM_3(3, "485端口2"), COM_31(31, "载波"); private int value; private String key; CommunicationParamsCom(int value, String key) { this.value = value; this.key = key; } public int getValue() { return value; } public String getKey() { return key; } public static CommunicationParamsCom getEnmuByValue(int value) { for (CommunicationParamsCom item : values()) { if (value == item.getValue()) { return item; } } return null; } public static CommunicationParamsCom getEnmuByKey(String key) { if