<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ctg168的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ctg168</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ctg168]]></copyright><item><title><![CDATA[spring “ expected single matching bean but found 2“ 问题一例]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/108161421</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/108161421</guid><author>ctg168</author><pubDate>Fri, 21 Aug 2020 23:41:29 +0800</pubDate><description><![CDATA[// 这个是正确的
@MapperScan("com.terry.demo.mapper")
public class PuaiApplication {

    public static void main(String[] args) {
        SpringApplication.run(PuaiApplication.class, args);
    }

}


// 这个是罪魁祸首
@MapperScan("com.terry.demo")
public class PuaiAp.]]></description><category></category></item><item><title><![CDATA[js中继承的几种用法总结(apply,call,prototype)]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/105279335</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/105279335</guid><author>ctg168</author><pubDate>Thu, 02 Apr 2020 21:11:58 +0800</pubDate><description><![CDATA[js中继承的几种用法总结(apply,call,prototype)
call()方法的作用和 apply() 方法类似，区别就是call()方法接受的是参数列表，而apply()方法接受的是一个参数数组。
本文参照：js中继承的几种用法总结(apply,call,prototype) 原文链接
js原型（prototype）实现继承
function Person(name, age) {
  ...]]></description><category></category></item><item><title><![CDATA[树莓派3B+插入电源后状态灯只有红灯常亮，无法接入屏幕！]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/104673035</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/104673035</guid><author>ctg168</author><pubDate>Thu, 05 Mar 2020 13:37:03 +0800</pubDate><description><![CDATA[树莓派3B+插入电源后状态灯只有红灯常亮，无法接入屏幕！

除了其他人说的这些之外：

1、确认内存卡插入正确；树莓派没有硬件上的损坏‘’

2、使用NOOBS方式安装系统，（虽然时间有点长，但是感觉是可以排除很多问题，比较适合我这种新手）；

3、如果使用NOOBS安装方式仍然进不去并且看不到屏幕显示，你可以考虑换一个电源接入！没错，我折腾了一下午结果就是因为插排的原因，上面插的东西比较多，电压...]]></description><category></category></item><item><title><![CDATA[微信小程序登录和授权 小白摸索的推荐使用方法和最佳实践]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/104632508</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/104632508</guid><author>ctg168</author><pubDate>Tue, 03 Mar 2020 14:47:59 +0800</pubDate><description><![CDATA[微信登录和授权 小白摸索的推荐使用方法和最佳实践
参考链接：https://www.cnblogs.com/kenshinobiy/p/9118024.html
之前的问题

开发者在首页直接调用 wx.getUserInfo 进行授权，弹框有会使得一部分用户放弃小程序的使用。
开发者没有处理用户拒绝弹框的情况，有部分小程序强制要求用户授权头像昵称等信息才能继续使用小程序。
用户没有很好的方式重新...]]></description><category></category></item><item><title><![CDATA[centOS7上面安装wkhtmltopdf的记录]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/104359972</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/104359972</guid><author>ctg168</author><pubDate>Mon, 17 Feb 2020 16:12:28 +0800</pubDate><description><![CDATA[Using username “terry”.
Last login: Sun Feb 16 21:46:27 2020 from 192.168.31.134
[terry@MiWiFi-R4AC-srv ~]$ su
密码：
[root@local terry]#
[root@local terry]# pwd
/home/terry
[root@local terry]# cd /usr/l...]]></description><category></category></item><item><title><![CDATA[在centos7上安装mariaDB 和 初始化 全程记录]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/104275193</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/104275193</guid><author>ctg168</author><pubDate>Wed, 12 Feb 2020 11:12:19 +0800</pubDate><description><![CDATA[#安装mariaDB 和 初始化 全程记录#
[terry@/home/terry]$sudo yum install mariadb-server
[sudo] password for terry:  
Loaded plugins: fastestmirror, langpacks  
Loading mirror speeds from cached hostfile  
base: mi...]]></description><category></category></item><item><title><![CDATA[微信小程序云开发踩坑记]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/103599039</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/103599039</guid><author>ctg168</author><pubDate>Wed, 18 Dec 2019 16:07:30 +0800</pubDate><description><![CDATA[一、云函数可本地调试，无需每次上传了再看云端的console.log('xxx')

二、如果使用真机调试则本地调试无效，必须将云函数上传上去才有效果！

三、本地调试的时候，env的值是undefined，如果你要指定某个环境，建议用如下方式:




// 两个env的id
const test_env = 'l4-test-20191121';
const prod_env = 'l4-...]]></description><category></category></item><item><title><![CDATA[[转]Nginx配置文件详解]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/96326484</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/96326484</guid><author>ctg168</author><pubDate>Wed, 17 Jul 2019 16:53:48 +0800</pubDate><description><![CDATA[######Nginx配置文件nginx.conf中文详解#####

#定义Nginx运行的用户和用户组
user www www;

#nginx进程数，建议设置为等于CPU总核心数。
worker_processes 8;

#全局错误日志定义类型，[ debug | info | notice | warn | error | crit ]
error_log /usr/local/n...]]></description><category></category></item><item><title><![CDATA[Intellij IDEA 调试Spring Boot 项目时，调试启动到一半就停止的问题。]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/89768228</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/89768228</guid><author>ctg168</author><pubDate>Fri, 03 May 2019 00:12:43 +0800</pubDate><description><![CDATA[最近使用Intellij IDEA 调试Spring Boot 项目时，调试启动到一半就停止了，就像下面这样：


2019-05-03 00:00:19.154  INFO 8076 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (htt...]]></description><category></category></item><item><title><![CDATA[TypeScript 学习笔记：属性索引器]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/78366805</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/78366805</guid><author>ctg168</author><pubDate>Fri, 27 Oct 2017 16:57:44 +0800</pubDate><description><![CDATA[export interface StringValidator {
    isAcceptable(s: string): boolean;
}

const lettersRegexp = /^[A-Za-z]+$/;
export class LettersOnlyValidator implements StringValidator {
    isAcceptable(s: stri]]></description><category></category></item><item><title><![CDATA[TypeScript 类型映射的妙用：]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/78365399</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/78365399</guid><author>ctg168</author><pubDate>Fri, 27 Oct 2017 15:25:53 +0800</pubDate><description><![CDATA[//==========================
// 知识点：映射类型
class People {
name: string;
age: number;
height: number;
address: string;
}

// 用途:
// 1、可空类型的定义： 
// 按照下方这样创建一个People的实例的话，类的每个属性都可以返回空.
type Nul]]></description><category></category></item><item><title><![CDATA[TypeScript的映射类型]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/78364688</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/78364688</guid><author>ctg168</author><pubDate>Fri, 27 Oct 2017 14:39:00 +0800</pubDate><description><![CDATA[映射类型

一个常见的任务是将一个已知的类型每个属性都变为可选的：
interface PersonPartial {
    name?: string;
    age?: number;
}


或者我们想要一个只读版本：
interface PersonReadonly {
    readonly name: string;
    readonly age: number;]]></description><category></category></item><item><title><![CDATA[TypeScript笔记：类的静态部分、实例部分及Interface实现实例]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/78355240</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/78355240</guid><author>ctg168</author><pubDate>Thu, 26 Oct 2017 16:16:55 +0800</pubDate><description><![CDATA[TypeScript接口构造的定义及使用方法。]]></description><category></category></item><item><title><![CDATA[TypeScript 的索引签名 的笔记]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/78354847</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/78354847</guid><author>ctg168</author><pubDate>Thu, 26 Oct 2017 15:53:21 +0800</pubDate><description><![CDATA[先看下这段代码：


class Animal {
    type: string;
}
class Dog extends Animal {
    name: string
}

class AnimalArray {
    dog: Dog;
    readonly [index: number]: Dog;
    readonly [index: string]: Dog;
]]></description><category></category></item><item><title><![CDATA[openfire + sqlserver ，以及现有系统的账户集成]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/53517545</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/53517545</guid><author>ctg168</author><pubDate>Thu, 08 Dec 2016 14:19:50 +0800</pubDate><description><![CDATA[我要说的重点就是



1、安装完成之后，openfire的控制台不需要进行任何配置，下面所有的配置可以通过数据库脚本直接搞定。

2、那个conf文件夹里面，也不需要进行任何修改！



总的来讲，如果你要集成现有账户：

只需要修改ofProperty这个表就行了，配置方面不用作其他修改！！！



ONLY DATABASE!!!

ONLY DATABASE!!!

ONLY DAT...]]></description><category></category></item><item><title><![CDATA[Android 日期 Calendar 关于时间段的操作]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/52935001</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/52935001</guid><author>ctg168</author><pubDate>Wed, 26 Oct 2016 15:46:11 +0800</pubDate><description><![CDATA[根据一个传递过来的日期，得到指定类型的时间段：例如，传递过来一个日期，并指定一个类型(周、月份、季度、半年、年),返回一个Timespan，包含开始日期和结束日期.]]></description><category></category></item><item><title><![CDATA[Android开发之多线程编程Thread和Runnable使用]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/51498023</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/51498023</guid><author>ctg168</author><pubDate>Wed, 25 May 2016 14:22:18 +0800</pubDate><description><![CDATA[本文系转载，原帖地址为： http://blog.youkuaiyun.com/mad1989/article/details/38234759本例非常清晰的展示了Thread和Runnable的作用和用法，包括多线程数据同步，对作者表示由衷感谢，一字不差的转载过来了。




Android可有两种方式实现多线程，一种是继承Thread类，一种是实现Runnable接口；前者只要继承了Thread]]></description><category></category></item><item><title><![CDATA[Android照相并返回照相结果的最终代码]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/51218850</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/51218850</guid><author>ctg168</author><pubDate>Fri, 22 Apr 2016 13:21:56 +0800</pubDate><description><![CDATA[下面是两个大坑：
1、要使用 MediaStore.EXTRA_OUTPUT  方法，传递uri，如果不使用MediaStore.EXTRA_OUTPUT 方式，那么，在onActiveResult里面(不管任何方法)传递过来的照片就是缩略图。
2、要使用FileDir，先创建要给File对象，然后使用Uri.fromFile(fileDir)传递给intent.putExtra，如果直接创建]]></description><category></category></item><item><title><![CDATA[安卓异步复制文件对话框的实现，从手机移动整个文件夹到外置存储卡]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/49659953</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/49659953</guid><author>ctg168</author><pubDate>Thu, 05 Nov 2015 11:24:10 +0800</pubDate><description><![CDATA[本例实现了将APP的数据从手机内存移动到外置存储卡。
主要知识点如下：
1、获得APP的数据存储位置：
 
    File[] files = ContextCompat.getExternalFilesDirs(getBaseContext(), null);
File dirPhone = files[0];
File dirSDCard = files[1];


上面的fil]]></description><category></category></item><item><title><![CDATA[android 如何显示模态的 DialogFragment。]]></title><link>https://blog.youkuaiyun.com/ctg168/article/details/49494251</link><guid>https://blog.youkuaiyun.com/ctg168/article/details/49494251</guid><author>ctg168</author><pubDate>Thu, 29 Oct 2015 17:23:22 +0800</pubDate><description><![CDATA[如果你要从一个activity里面创建一个DialogFragment，在DialogFragment里面执行一个进度条（当然可以使用ProgressDialog，但是自己做不是更漂亮？），可能你会这样：


     FragmentTransaction ft = getFragmentManager().beginTransaction();
        CopyDialogFra]]></description><category></category></item></channel></rss>