对象比较,使用java.util.Objects 的equals方法
方法的实现是(a==b)||(a!=null&&a.equals(b))
如果a==b,直接返回true,如果对象不相等,则先判断a是否为null,再用equals与b比较,防止抛出a为null的异常
包装类值比较,使用equals方法,不要使用==,Integer类型的值在-128到127是在IntegerCache.cache里产生,并且会复用已有对象,其他区间的对象会直接在对上产生,并不会复用已有对象
1、assert <boolean表达式>
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出AssertionError,并终止执行。
2、assert <boolean表达式> : <错误信息表达式>
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出java.lang.AssertionError,并输入<错误信息表达式>。
Integer a = 1,等价于Integer a = Integer.valueOf(1);
Integer类内部维护了一个IntegerCache类,用数组维护-128到127之间的Integer值,除非显示声明了java.lang.Integer.IntegerCache.high的值,具体怎么声明,还没有找到。。。
一开始加载Integer类的时候,就初始化了IntegerCache类,Integer.valueOf()方法,如果传入的值是-128到127,会赋值IntegerCache中对应数组的值,如果不在此区间,会重新new一个Integer对象,所以用==会返回false。
Map遍历foreach
1 现在如果没有对方账户名的入参ganjuzijihaolajihaolajia,就根据配置的白名单账户名模糊查询
2 如果有入参,先得去配置表查询,是否模糊匹配到了配置,如果匹配到了,则根据入参模糊查询,没有匹配到,就还是根据配置的白名单账户名模糊查询
3 js判断undefined
直接用变量==undefined,如果变量为null,也会满足条件,可以用typeof(obj)==undefined来判断。
4 antd select组件取消问题
select清空选项,获取到的value是为undefined。
5 antd select多选
添加属性 mode=”multiple”
6日志log.info(“xxx{}”,e);
可以打印完整错误信息。
7 mybatis xml小于号
<
8 java数组转list
ArrayList<String> arrayList=new ArrayList<String>(Arrays.asList(array));
9 idea mybaitis插件
free mybatis plugins
10 mysql联合唯一索引
一但联合索引一个字段为null,则即便其他所有字段相同也不会引发索引冲突
11 ~ linux代表当前用户根目录
12 mybatis 表和实体映射
<setting name="mapUnderscoreToCamelCase" value="true" />
加上这句配置,会自动将表字段映射为相对应的驼峰式命名的类字段。
13 antd日期绑定,清空
//日期选择
dateChange = (startDate, dateString) => {
this.setState({
startDate: dateString[0],
endDate: dateString[1]
})
}
<RangePicker style={{width: "100%"}} placeholder={['开始日期', '结束日期']}
disabledDate={this.disabledDate} onChange={this.dateChange}
format="YYYY-MM-DD"
value={this.state.startDate===undefined||this.state.endDate===undefined||this.state.startDate===""||this.state.endDate===""
?null:[moment(this.state.startDate, "YYYY-MM-DD"), moment(this.state.endDate, "YYYY-MM-DD")]}
/>
14 IDEA spring的xml配置文件加载不到properties属性问题
project structure->facets->spring 把xml加进去。
15 qps
每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准
16 es搜索引擎
17 explain sql
18 分库分表
19 LRU是Least Recently Used的缩写,即最近最少使用,常用于页面置换算法,是为虚拟页式存储管理服务的。
20 mysql存储引擎
11种
21 MVCC,Multi-Version Concurrency Control,多版本并发控制
22 mysql xa事务
23 savepoint
24 进程通信
25 mysql命令
show databases;
use 数据库名;
show tables;
26 dml ddl
27 ConcurrentHashMap为何不支持null键和null值
28 mysql优化
force index
29 mysql 索引类型type为range数量过大索引失效
198224 27432 26740
sql使用索引类型type为range时,数据量为198224
查询结果条数27884失效 14.067%
查询结果条数27845 不失效 14.047%
capitalDetailDao.selectSearch
30 sql 增删改字段
31 mybatis xml if字符串比较
32 BigDecimal setScale
33 事务
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT @@tx_isolation;
34幂等
35 重试机制mq
36 mysql 后台线程
purge_thread
37 脏页undo页
undo log,redo log,binary log
38 innodb_flush_log_at_trx_commit
39 mysql 远程连接
40 lsn checkpoint
checkpoint
41查看当前选择数据库
42 mysql查看线程池
43 mysql线程池和连接池的区别
select * from information_schema.processlist where db = '数据库名称'
44 事务开启
@Transactional
45 各类索引
46 sql优化
表数据量200w。
执行时间7s
select d.id,b.id,b.balance,b.trade_date,b.capital_account from (select max(a.id) as id from t_capital_detail a
where a.capital_account in ('0151014170000119',
'3003573787') and
a.trade_date < '2019-07-01' group by a.capital_account ) d
left join t_capital_detail b on d.id=b.id ;
执行计划
执行时间74秒
explain
select * from (
select @i:=@i+1 as xh,balance,capital_account from t_capital_detail
where
trade_date <'2019-07-01'
and capital_account in ('0151014170000119',
'3003573787'
)
order by trade_date desc ,colum_num desc,trade_time desc,id desc) a
group by a.capital_account;
执行计划
select
d.accout_company_type,d.company_name,d.sheet_name,d.channel_name,d.bank_address,d.channel_account,d.channel_desc,d.currency_type,e.balance,d.status,d.organize_name,d.channel_type,e.id,e.trade_date,e.trade_datetime
from t_channel_config d
left join
(select a.* from (
select @i:=@i+1 as xh,capital_account,balance,id,trade_date,concat(trade_date," ",trade_time)
trade_datetime,trade_time from
t_capital_detail,(select @i:=0)t1
where is_deleted=0
and trade_date BETWEEN '2019-07-01' and '2019-07-02'
ORDER BY trade_date desc,colum_num desc ,trade_time desc,id desc) a GROUP BY capital_account)e
on e.capital_account=d.channel_account
where d.is_deleted=0 and d.status!="2" and balance is null;
explain select * from (
select @i:=@i+1 as xh,balance,capital_account from t_capital_detail
where capital_account in ('95200078801500000327','95200078801500000579') and
trade_date <'2019-07-01'
order by trade_date desc ,colum_num desc,trade_time desc,id desc) a
group by a.capital_account;
explain select * from
t_capital_detail
group by capital_account;
explain
select @i:=@i+1 as xh,balance,capital_account from t_capital_detail a left join (
select max(id) id from t_capital_detail where
trade_date < '2019-07-01' group by capital_account ) b on a.id=b.id;
explain
select d.id,b.id,b.balance,b.trade_date,b.capital_account from (select max(a.id) as id from t_capital_detail a
where a.capital_account in ('0151014170000119',
'3003573787',
'3003573841',
'3003573884',
'0412041209300310209',
'0502126109000066825',
'0506250209200014907',
'0509021009300010201',
'051300101003800000630',
'0513001010090200202020013',
'7071600000396',
'0710426041015200055392',
'0710426041015200060068',
'0713250000000269',
'0713290000000272',
'0720616011015200008378',
'08213001040013469',
'08213001040013667',
'08301201000007390',
'102476695349',
'1040121000087458',
'10460301040044400',
'10460301040044401',
'110060635018800045890',
'110060635146600005644',
'11014998210003',
'11050101960000000181',
'110909225110802',
'110909225132301',
'111653515597',
'1196004',
'1202026219800032384',
'1202026219900170991',
'12050178560100000876',
'1209270009200031202',
'1222355',
'1229069',
'122907844010108',
'122907844010111',
'122907844010202',
'122907844010307',
'122907844010310',
'122907844010401',
'122907844010506',
'122907844010614',
'122907844010705',
'122907844010813',
'122907844010904',
'122909739810201',
'122909739910701',
'122909740010601',
'122910546010201',
'12513001040027961',
'12513001040029116',
'126061010000003814',
'12625001040003777',
'12630101040027009',
'13050110545000000073',
'13050161520800001191',
'13050161543800000057',
'13050162140000000067',
'13050162560800000339',
'13050163550800000489',
'13050164520800000158',
'13050166860800000692',
'13050169520800000160',
'13050169520800000304',
'13050170510800000873',
'13050171510800000507',
'1306290000000480',
'134061518293',
'13512701040007381',
'13513301040002984',
'137494000012017003354',
'139248460323',
'14032801040011689',
'14050110066100000525',
'14050162590800000078',
'14050162590800000195',
'14050163890800000070',
'14050172830800000342',
'14050172920800000529',
'141000240012016013277',
'14370401040005847',
'15050163664200000494',
'15050163665300000392',
'15050164663900000120',
'15050164663900000197',
'15050171667600000253',
'15050171667600000607',
'151899991010003092929',
'151899991010003236532',
'15302001040011651',
'15322001040011651',
'15610078801400000237',
'15611301040007752',
'15766001040030209',
'15810078801700000113',
'16090101040013218',
'1616020609200129276',
'16325101040014494',
'163646138052',
'16704101040011301',
'17234901040012509',
'17301501040002605',
'17570101040012862',
'17680501040013678',
'17731301040010116',
'1803015709200095080',
'1803015709200117397',
'1805022209250068413',
'18111901040007077',
'1812020309200129119',
'1814060309200061779',
'1818001209200119934',
'18242901040012723',
'18496001040007139',
'18643301040007168',
'18681901040012176',
'188612010109014785',
'19036101040025482',
'196235409672',
'19647701040008551',
'20000031538400101073723',
'20000034718400022236703',
'20000609919010300000139',
'20000611380210300000114',
'2008031409000035622',
'201000164233532',
'201000200864787',
'20106701040005270',
'2012031109083845121',
'21050142580100000037',
'21050148470100000030',
'21050163050400000444',
'21050164860800000513',
'21050164860800000544',
'21050167004100000043',
'21050167004100000076',
'21050168914200000088',
'21050168914900000372',
'21050172060100000458',
'21050172060100000565',
'21050174120800000519',
'21050174120800000547',
'21250164006100000176',
'21810078801000000084',
'22050161314500000116',
'22050166624600000403',
'226801000011075242658',
'230201201090044383',
'23050162540000000246',
'23050162540000000296',
'23050168515100000522',
'23050168520000000100',
'23050186535100000191',
'23050186595100000437',
'23467001040007837',
'23610078801400000368',
'24010078801600000152',
'2402018119200216884',
'2402018141000000720',
'248201201020000146',
'2506061309200219788',
'2506061309200221556',
'2515100809024809574',
'261159952093',
'26410078801000000259',
'26410078801800000059',
'281000015968248',
'2900000210120100110243',
'2900000210121800040718',
'2900000211420100001681',
'2900001010120100013568',
'2900001010121800006295',
'2905030120010000808',
'30160188000208894',
'3101040160001497210',
'3101040160001497509',
'31050166360000002593',
'31050179470000000304',
'3110810045810001015',
'3110810045810001026',
'3110810045810001027',
'32050159563600000136',
'32050161717200000057',
'32050161717200000103',
'32050162853600000194',
'32050162853600000994',
'32050164263600000294',
'32050165863600000229',
'32050165863600001076',
'32050171173600000224',
'32050171173600001372',
'32050172513600000530',
'32050172513600000723',
'32050174383600000125',
'32050174513600000970',
'32050175093600000388',
'32050175303600001110',
'32050176153600000553',
'32050176183600000105',
'32250199759100000899',
'326008607018170089525',
'33001617495052502967',
'3301040160001319857',
'3301040160001320079',
'33050161678200000496',
'33050161749500000145',
'33050161749500000262',
'33050162874300000065',
'33050162874300000203',
'33050163806309686868',
'33050164914200000082',
'33050164914200000163',
'33050165354800000096',
'33050166360000000265',
'33050167623900000350',
'33050167673500000649',
'33050167675800000083',
'33050168360000000208',
'33050169616400000176',
'33050170627000000323',
'33050170627000000383',
'3305026174950000004',
'3310008080120100007355',
'34050148880800000202',
'34050168580800000219',
'34050168580800000336',
'34050172940800000247',
'34050173520800000465',
'34050173520800000616',
'34050174860800000111',
'345702000018880024273',
'35050163243300001559',
'35050163243300002605',
'35050164249000000328',
'35050166810700000917',
'35050166810700001248',
'35050168610700001153',
'35050168635200000155',
'35050169610700000744',
'35050169610700001239',
'35050189500000000246',
'35150198080100000598',
'35700890018010046994',
'357008980018010046994',
'3602004419200380235',
'3602004419200382314',
'3602004419200382438',
'36050152017400000096',
'36050183015600000258',
'364899991010003052787',
'364899991010003082068',
'368876399550',
'37050163924100000134',
'37050164670100000243',
'37050168604600000158',
'37050168606000000121',
'37050170610100000453',
'37050170610100000505',
'37050181660100000168',
'37050182220100000299',
'37050182880100000121',
'37970188000276430',
'37970188000921181',
'38050101040040144',
'38090188000104344',
'381876432150',
'3901130009000323065',
'39052001040013182',
'410100193962270',
'41050168283700000044',
'41050172560809666666',
'411899991010003719157',
'415899991010003059789',
'42050115004100000120',
'42050162738600000827',
'42050164635500000076',
'42050168220800000561',
'42250133160100000366',
'42250143160200000090',
'43050163570800000265',
'43050163570800000299',
'43050165405000000205',
'43050166928600000090',
'43050168614300000186',
'43050172883600000242',
'43050175333600000232',
'44050110147500000290',
'44050110148700000139',
'44050110765900000022',
'44050143190100000293',
'44050162623600000044',
'44050164643700000508',
'44050164643900000365',
'44050165060100000232',
'44050166863700000027',
'44050166863700000097',
'44050167021300000326',
'44050167021300000422',
'44050168866100000063',
'44050168866100000110',
'44050169004200000207',
'44050171863500000425',
'44050172863900000078',
'44050172863900000114',
'44050174863400000388',
'44050176030100000251',
'44050177770800000384',
'44050177770800001663',
'44050178230100000217',
'44135201040013122',
'44161601040001422',
'44546601040019933',
'44588001040023879',
'45050110067500000229',
'45050110110000000235',
'45050110258800000379',
'45050160466700000237',
'45050162377200000403',
'45050162795800000332',
'45050163511100000064',
'45050164740100000474',
'45050167610200000295',
'45050167610200000340',
'45050169090600000099',
'45050169090600000114',
'45050175375500000157',
'45050175375600000469',
'46050100433600000230',
'46050100513600001825',
'50050106360000000907',
'50100001110092160',
'50133105511608304',
'50673401040000669',
'509271813278',
'51010078801700000331',
'51050110092000000060',
'51050110203400000091',
'51050164730400000173',
'51050165773709001215',
'51050169004600000340',
'51050173623600000465',
'5107300001004149',
'51074',
'51075',
'52050145373600000450',
'52050162604000000158',
'52050163363600001598',
'528772093041',
'53050161543600000457',
'53050164613800000157',
'53050165863700000289',
'535903046410301',
'54050110205500000580',
'54050110205500000582',
'5572010204068324',
'577330000018880039782',
'583166000018010048137',
'600448471',
'61050162680000000135',
'61050168411100000262',
'61050169661100000484',
'61050186550000000075',
'61050186550000000269',
'62050138000300000054',
'62050138000300000060',
'630083213',
'630195132',
'630467357',
'630635789',
'631899991010003106527',
'638900354410602',
'64050112240000000084',
'66100078801100000099',
'66666666',
'69120078801700000203',
'70180078801900000067',
'722111703018010073126',
'722111703018010073603',
'74110154800000760',
'751211812060001',
'751211812200001',
'751211905310001',
'76900188000350804',
'77040188000114878',
'800011038429',
'800011038496',
'800231214708014',
'802170101421019252',
'8025100000001527',
'808060301421004157',
'8111501012500532853',
'820000000001903570',
'82050078801300000132',
'8564',
'857110010121303711',
'858012010106194953',
'8888888022269672',
'8888888037382114',
'8888888160570410',
'8888888205424078',
'8888888209303203',
'8888888224302149',
'8888888240501963',
'8888888261538498',
'8888888431005782',
'8888888448244762',
'8888888457986162',
'8888888465649091',
'8888888469138026',
'8888888642463291',
'8888888652525351',
'8888888701947283',
'8888888704037504',
'8888888706897723',
'8888888721312096',
'8888888780794382',
'88888888',
'8888888819532407',
'8888888892361625',
'8888888912752118',
'8888888939831333',
'8888888965481219',
'8888888976378578',
'8888888987613740',
'95180078801100000411',
'95180078801100000445',
'95180078801200000270',
'95180078801300000305',
'95180078801300000338',
'95180078801500000478',
'95180078801800000189',
'95200078801000001146',
'95200078801000001315',
'95200078801100000563',
'95200078801100000860',
'95200078801100000932',
'95200078801100001145',
'95200078801200001247',
'95200078801300001144',
'95200078801400000671',
'95200078801400001309',
'95200078801500000149',
'95200078801500000327',
'95200078801500000579',
'95200078801500001088',
'95200078801500001143',
'95200078801600000574',
'95200078801600000590',
'95200078801600000662',
'95200078801700000859',
'95200078801800000679',
'95200078801900000163',
'95200078801900000464',
'95200155300001755',
'95200155300001771',
'95200155300001798',
'95200155300001827',
'95200155300001894',
'95200157440000014',
'95200157440000022',
'95200159200001687',
'95200159750000149',
'95201455300000436',
'95201455300000493',
'9595106441806006',
'9595106441877000',
'98280078801000000440',
'98280078814800000634',
'98280078814900000461',
'98460078801100000341',
'990101209004101',
'TEST1111111111',
'TEST1234567789',
'TEST12345678877',
'TEST123456789',
'TEST8888888888888',
'TESTCHES123545456565334',
'TESTXUZHOU12345678903',
'baoli@souche.com',
'ceshi-zhangyang@souche.com',
'cheche@souche.com',
'dev@souche.com',
'dscfyc@souche.com',
'dscpay@souche.com',
'dscpph@souche.com',
'dscxls2@souche.com',
'dscxls@souche.com',
'fangjing@souche.com',
'financelease@souche.com',
'knight@souche.com',
'iuniu@souche.com',
'qukuailian@souche.com',
'repay1@souche.com',
'repay2@souche.com',
'repay3@souche.com',
'rongrong@souche.com',
'rzzlfyc@souche.com',
'sdsj2@souche.com',
'sdsj@souche.com',
'sousou@souche.com',
'tangechefx@souche.com',
'tangecherz@souche.com',
'tangwei@souche.com',
'test001',
'tgcpph@souche.com',
'tgcsc@souche.com',
'xianJin',
'xinlingshoutm@souche.com',
'xlstyg@souche.com',
'xuechebao@souche.com',
'yingxiao@souche.com',
'zhibao@souche.com',
'zuzu@souche.com') and
a.trade_date < '2019-07-01' group by a.capital_account ) d
left join t_capital_detail b on d.id=b.id ;
select max(a.id) as id from t_capital_detail a
where
a.trade_date < '2019-07-01' group by a.capital_account
explain
select * from (
select balance,capital_account from t_capital_detail
where
trade_date <'2019-07-01'
and capital_account in ('0151014170000119',
'3003573787',
'3003573841',
'3003573884',
'0412041209300310209',
'0502126109000066825',
'0506250209200014907',
'0509021009300010201',
'051300101003800000630',
'0513001010090200202020013',
'7071600000396',
'0710426041015200055392',
'0710426041015200060068',
'0713250000000269',
'0713290000000272',
'0720616011015200008378',
'08213001040013469',
'08213001040013667',
'08301201000007390',
'102476695349',
'1040121000087458',
'10460301040044400',
'10460301040044401',
'110060635018800045890',
'110060635146600005644',
'11014998210003',
'11050101960000000181',
'110909225110802',
'110909225132301',
'111653515597',
'1196004',
'1202026219800032384',
'1202026219900170991',
'12050178560100000876',
'1209270009200031202',
'1222355',
'1229069',
'122907844010108',
'122907844010111',
'122907844010202',
'122907844010307',
'122907844010310',
'122907844010401',
'122907844010506',
'122907844010614',
'122907844010705',
'122907844010813',
'122907844010904',
'122909739810201',
'122909739910701',
'122909740010601',
'122910546010201',
'12513001040027961',
'12513001040029116',
'126061010000003814',
'12625001040003777',
'12630101040027009',
'13050110545000000073',
'13050161520800001191',
'13050161543800000057',
'13050162140000000067',
'13050162560800000339',
'13050163550800000489',
'13050164520800000158',
'13050166860800000692',
'13050169520800000160',
'13050169520800000304',
'13050170510800000873',
'13050171510800000507',
'1306290000000480',
'134061518293',
'13512701040007381',
'13513301040002984',
'137494000012017003354',
'139248460323',
'14032801040011689',
'14050110066100000525',
'14050162590800000078',
'14050162590800000195',
'14050163890800000070',
'14050172830800000342',
'14050172920800000529',
'141000240012016013277',
'14370401040005847',
'15050163664200000494',
'15050163665300000392',
'15050164663900000120',
'15050164663900000197',
'15050171667600000253',
'15050171667600000607',
'151899991010003092929',
'151899991010003236532',
'15302001040011651',
'15322001040011651',
'15610078801400000237',
'15611301040007752',
'15766001040030209',
'15810078801700000113',
'16090101040013218',
'1616020609200129276',
'16325101040014494',
'163646138052',
'16704101040011301',
'17234901040012509',
'17301501040002605',
'17570101040012862',
'17680501040013678',
'17731301040010116',
'1803015709200095080',
'1803015709200117397',
'1805022209250068413',
'18111901040007077',
'1812020309200129119',
'1814060309200061779',
'1818001209200119934',
'18242901040012723',
'18496001040007139',
'18643301040007168',
'18681901040012176',
'188612010109014785',
'19036101040025482',
'196235409672',
'19647701040008551',
'20000031538400101073723',
'20000034718400022236703',
'20000609919010300000139',
'20000611380210300000114',
'2008031409000035622',
'201000164233532',
'201000200864787',
'20106701040005270',
'2012031109083845121',
'21050142580100000037',
'21050148470100000030',
'21050163050400000444',
'21050164860800000513',
'21050164860800000544',
'21050167004100000043',
'21050167004100000076',
'21050168914200000088',
'21050168914900000372',
'21050172060100000458',
'21050172060100000565',
'21050174120800000519',
'21050174120800000547',
'21250164006100000176',
'21810078801000000084',
'22050161314500000116',
'22050166624600000403',
'226801000011075242658',
'230201201090044383',
'23050162540000000246',
'23050162540000000296',
'23050168515100000522',
'23050168520000000100',
'23050186535100000191',
'23050186595100000437',
'23467001040007837',
'23610078801400000368',
'24010078801600000152',
'2402018119200216884',
'2402018141000000720',
'248201201020000146',
'2506061309200219788',
'2506061309200221556',
'2515100809024809574',
'261159952093',
'26410078801000000259',
'26410078801800000059',
'281000015968248',
'2900000210120100110243',
'2900000210121800040718',
'2900000211420100001681',
'2900001010120100013568',
'2900001010121800006295',
'2905030120010000808',
'30160188000208894',
'3101040160001497210',
'3101040160001497509',
'31050166360000002593',
'31050179470000000304',
'3110810045810001015',
'3110810045810001026',
'3110810045810001027',
'32050159563600000136',
'32050161717200000057',
'32050161717200000103',
'32050162853600000194',
'32050162853600000994',
'32050164263600000294',
'32050165863600000229',
'32050165863600001076',
'32050171173600000224',
'32050171173600001372',
'32050172513600000530',
'32050172513600000723',
'32050174383600000125',
'32050174513600000970',
'32050175093600000388',
'32050175303600001110',
'32050176153600000553',
'32050176183600000105',
'32250199759100000899',
'326008607018170089525',
'33001617495052502967',
'3301040160001319857',
'3301040160001320079',
'33050161678200000496',
'33050161749500000145',
'33050161749500000262',
'33050162874300000065',
'33050162874300000203',
'33050163806309686868',
'33050164914200000082',
'33050164914200000163',
'33050165354800000096',
'33050166360000000265',
'33050167623900000350',
'33050167673500000649',
'33050167675800000083',
'33050168360000000208',
'33050169616400000176',
'33050170627000000323',
'33050170627000000383',
'3305026174950000004',
'3310008080120100007355',
'34050148880800000202',
'34050168580800000219',
'34050168580800000336',
'34050172940800000247',
'34050173520800000465',
'34050173520800000616',
'34050174860800000111',
'345702000018880024273',
'35050163243300001559',
'35050163243300002605',
'35050164249000000328',
'35050166810700000917',
'35050166810700001248',
'35050168610700001153',
'35050168635200000155',
'35050169610700000744',
'35050169610700001239',
'35050189500000000246',
'35150198080100000598',
'35700890018010046994',
'357008980018010046994',
'3602004419200380235',
'3602004419200382314',
'3602004419200382438',
'36050152017400000096',
'36050183015600000258',
'364899991010003052787',
'364899991010003082068',
'368876399550',
'37050163924100000134',
'37050164670100000243',
'37050168604600000158',
'37050168606000000121',
'37050170610100000453',
'37050170610100000505',
'37050181660100000168',
'37050182220100000299',
'37050182880100000121',
'37970188000276430',
'37970188000921181',
'38050101040040144',
'38090188000104344',
'381876432150',
'3901130009000323065',
'39052001040013182',
'410100193962270',
'41050168283700000044',
'41050172560809666666',
'411899991010003719157',
'415899991010003059789',
'42050115004100000120',
'42050162738600000827',
'42050164635500000076',
'42050168220800000561',
'42250133160100000366',
'42250143160200000090',
'43050163570800000265',
'43050163570800000299',
'43050165405000000205',
'43050166928600000090',
'43050168614300000186',
'43050172883600000242',
'43050175333600000232',
'44050110147500000290',
'44050110148700000139',
'44050110765900000022',
'44050143190100000293',
'44050162623600000044',
'44050164643700000508',
'44050164643900000365',
'44050165060100000232',
'44050166863700000027',
'44050166863700000097',
'44050167021300000326',
'44050167021300000422',
'44050168866100000063',
'44050168866100000110',
'44050169004200000207',
'44050171863500000425',
'44050172863900000078',
'44050172863900000114',
'44050174863400000388',
'44050176030100000251',
'44050177770800000384',
'44050177770800001663',
'44050178230100000217',
'44135201040013122',
'44161601040001422',
'44546601040019933',
'44588001040023879',
'45050110067500000229',
'45050110110000000235',
'45050110258800000379',
'45050160466700000237',
'45050162377200000403',
'45050162795800000332',
'45050163511100000064',
'45050164740100000474',
'45050167610200000295',
'45050167610200000340',
'45050169090600000099',
'45050169090600000114',
'45050175375500000157',
'45050175375600000469',
'46050100433600000230',
'46050100513600001825',
'50050106360000000907',
'50100001110092160',
'50133105511608304',
'50673401040000669',
'509271813278',
'51010078801700000331',
'51050110092000000060',
'51050110203400000091',
'51050164730400000173',
'51050165773709001215',
'51050169004600000340',
'51050173623600000465',
'5107300001004149',
'51074',
'51075',
'52050145373600000450',
'52050162604000000158',
'52050163363600001598',
'528772093041',
'53050161543600000457',
'53050164613800000157',
'53050165863700000289',
'535903046410301',
'54050110205500000580',
'54050110205500000582',
'5572010204068324',
'577330000018880039782',
'583166000018010048137',
'600448471',
'61050162680000000135',
'61050168411100000262',
'61050169661100000484',
'61050186550000000075',
'61050186550000000269',
'62050138000300000054',
'62050138000300000060',
'630083213',
'630195132',
'630467357',
'630635789',
'631899991010003106527',
'638900354410602',
'64050112240000000084',
'66100078801100000099',
'66666666',
'69120078801700000203',
'70180078801900000067',
'722111703018010073126',
'722111703018010073603',
'74110154800000760',
'751211812060001',
'751211812200001',
'751211905310001',
'76900188000350804',
'77040188000114878',
'800011038429',
'800011038496',
'800231214708014',
'802170101421019252',
'8025100000001527',
'808060301421004157',
'8111501012500532853',
'820000000001903570',
'82050078801300000132',
'8564',
'857110010121303711',
'858012010106194953',
'8888888022269672',
'8888888037382114',
'8888888160570410',
'8888888205424078',
'8888888209303203',
'8888888224302149',
'8888888240501963',
'8888888261538498',
'8888888431005782',
'8888888448244762',
'8888888457986162',
'8888888465649091',
'8888888469138026',
'8888888642463291',
'8888888652525351',
'8888888701947283',
'8888888704037504',
'8888888706897723',
'8888888721312096',
'8888888780794382',
'88888888',
'8888888819532407',
'8888888892361625',
'8888888912752118',
'8888888939831333',
'8888888965481219',
'8888888976378578',
'8888888987613740',
'95180078801100000411',
'95180078801100000445',
'95180078801200000270',
'95180078801300000305',
'95180078801300000338',
'95180078801500000478',
'95180078801800000189',
'95200078801000001146',
'95200078801000001315',
'95200078801100000563',
'95200078801100000860',
'95200078801100000932',
'95200078801100001145',
'95200078801200001247',
'95200078801300001144',
'95200078801400000671',
'95200078801400001309',
'95200078801500000149',
'95200078801500000327',
'95200078801500000579',
'95200078801500001088',
'95200078801500001143',
'95200078801600000574',
'95200078801600000590',
'95200078801600000662',
'95200078801700000859',
'95200078801800000679',
'95200078801900000163',
'95200078801900000464',
'95200155300001755',
'95200155300001771',
'95200155300001798',
'95200155300001827',
'95200155300001894',
'95200157440000014',
'95200157440000022',
'95200159200001687',
'95200159750000149',
'95201455300000436',
'95201455300000493',
'9595106441806006',
'9595106441877000',
'98280078801000000440',
'98280078814800000634',
'98280078814900000461',
'98460078801100000341',
'990101209004101',
'TEST1111111111',
'TEST1234567789',
'TEST12345678877',
'TEST123456789',
'TEST8888888888888',
'TESTCHES123545456565334',
'TESTXUZHOU12345678903',
'baoli@souche.com',
'ceshi-zhangyang@souche.com',
'cheche@souche.com',
'dev@souche.com',
'dscfyc@souche.com',
'dscpay@souche.com',
'dscpph@souche.com',
'dscxls2@souche.com',
'dscxls@souche.com',
'fangjing@souche.com',
'financelease@souche.com',
'knight@souche.com',
'iuniu@souche.com',
'qukuailian@souche.com',
'repay1@souche.com',
'repay2@souche.com',
'repay3@souche.com',
'rongrong@souche.com',
'rzzlfyc@souche.com',
'sdsj2@souche.com',
'sdsj@souche.com',
'sousou@souche.com',
'tangechefx@souche.com',
'tangecherz@souche.com',
'tangwei@souche.com',
'test001',
'tgcpph@souche.com',
'tgcsc@souche.com',
'xianJin',
'xinlingshoutm@souche.com',
'xlstyg@souche.com',
'xuechebao@souche.com',
'yingxiao@souche.com',
'zhibao@souche.com',
'zuzu@souche.com' )
order by trade_date ,colum_num ,trade_time ,id ) a
group by a.capital_account;
explain
select
d.accout_company_type,d.company_name,d.sheet_name,d.channel_name,d.bank_address,d.channel_account,d.channel_desc,d.currency_type,e.balance,d.status,d.organize_name,d.channel_type,e.id,e.trade_date
from t_channel_config d
left join
( select b.id,b.balance,b.trade_date,b.capital_account from (select max(id) as id from t_capital_detail
where
trade_date ='2019-06-01' group by capital_account) a
left join t_capital_detail b on a.id=b.id)e
on e.capital_account=d.channel_account
where d.is_deleted=0 and d.status!="2";
explain
select
d.accout_company_type,d.company_name,d.sheet_name,d.channel_name,d.bank_address,d.channel_account,d.channel_desc,d.currency_type,e.balance,d.status,d.organize_name,d.channel_type,e.id,e.trade_date,e.trade_datetime
from t_channel_config d
left join
(select a.* from (
select @i:=@i+1 as xh,capital_account,balance,id,trade_date,concat(trade_date," ",trade_time)
trade_datetime,trade_time from
t_capital_detail,(select @i:=0)t1
where is_deleted=0
and trade_date='2019-07-01'
ORDER BY trade_date desc,colum_num desc ,trade_time desc,id desc) a GROUP BY capital_account)e
on e.capital_account=d.channel_account
where d.is_deleted=0 and d.status!="2"
AND (
d.channel_account ='上海浦东发展银行'
or right(d.channel_account,4) = '上海浦东发展银行'
or d.company_name='上海浦东发展银行'
or d.channel_name LIKE concat("%上海浦东发展银行%")
or d.bank_address LIKE concat("%上海浦东发展银行")
or d.organize_name LIKE concat("%上海浦东发展银行")
)
47 java.util.Date日期格式为:年月日时分秒
java.sql.Date日期格式为:年月日
java.sql.Time日期格式为:时分秒
java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒)
48 sql in条件
包含字查询会导致外层索引失效
49 sql新增字段
alter table t_compensatory_detail add COLUMN paid_substitute_ovd_int_big decimal(10, 2) NULL DEFAULT NULL COMMENT '已还代偿利息罚息(单位:元)' after paid_substitute_ovd_int;
50 truncate
truncate 表名
51 mysql innodb double write
52 hash索引 b+数索引
53 innodb 体系结构
1 后台线程
-
- master thread
- io thread
- purge thread
- page cleaner thread
- 内存
2.1缓冲池
2.2 lru list,free list,flush list
- 重做日志缓冲
- 额外的内存池
show variables like 'innodb_flush_neighbors';
show variables like 'innodb_fast_shutdown';
show variables like 'innodb_read_io_threads';
show variables like 'innodb_write_io_threads';
show variables like 'innodb_purge_threads';
show variables like 'innodb_buffer_pool_size';
show variables like 'innodb_buffer_pool_instances';
show variables like 'innodb_old_blocks_pct';
show variables like 'innodb_old_blocks_time';
54 checkpoint
55 antd getFieldDecorator使用
const {getFieldDecorator} = this.props.form;
{getFieldDecorator('range-picker', {
rules: [{type: 'array', required: true, message: 'Please select time!'}],
})
(<RangePicker style={{width: "100%"}} placeholder={['开始日期', '结束日期']}
disabledDate={this.disabledDate} onChange={this.dateChange}
format="YYYY-MM-DD"
/>
)}
const FromList = Form.create()(CustomerRepaymentPlan);
ReactDom.render(<MainLayout><FromList/></MainLayout>, document.querySelector("#content"));
56 js获取两个日期相差天数
var s1 = new Date(this.state.startDate.replace(/-/g, "/"));
var s2 = new Date(this.state.endDate.replace(/-/g, "/"));//
var days = s2.getTime() - s1.getTime();
var time = parseInt(days / (1000 * 60 * 60 * 24));
console.log('****'+time);
57 master thread
58 innodb特性
59 sql字段别名不能带()
60 maven包引用
在最外面的项目引用了,还得在子项目里引用,才是真正引用了,会在maven列表下显示。
61 mybatis xml判断list长度大于0
financialProductCode.size()>0
62 js往数组头部加元素,删除元素
array. Unshift();
array.splice() 指定位置操作数组
array.splice(1,1) 删除下标为1的元素
63 mysql更新前一百条数据
update 表名set 字段=1 limit 100; 对的
update 表名set 字段=1 limit 0,100; 这样会报错
还不知道为什么
64 js string 转int
parseInt
65 js判断数组是否包含指定元素
indexOf
66 json对象转java对象
LoanRecordDetailDO loanRecordDetailDO = (LoanRecordDetailDO)JSONObject.toJavaObject(entry,LoanRecordDetailDO.class);
67 antd Modal组件修改底部按钮样式
<Modal
title="是否放款拒绝"
visible={this.state.refuseVisible}
okText="放款拒绝"
onOk={this.refuseLoan}
onCancel={this.refuseCancel}
footer={[
<Button key="back" onClick={this.refuseCancel}>取消</Button>,
<Button key="submit" style={{color:"white",backgroundColor:"red"}} onClick={this.refuseLoan}>放款拒绝</Button>,
]}
>
68 antd select 组件可输入
<Select
optionFilterProp="children"
showSearch
filterOption={(input, option) =>
option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
</Select>
69 表连接
表 A union 表B
70 localDate类型对于dubbo接口的影响
在低版本的dubbo(2.5.3)中调用dubbo接口,可能会发生rpcException.----failed to send message
-----原因解析:在我们使用的dubbo中,一般使用的是dubbo协议,而在dubbo协议中默认使用的序列化协议是hessian协议来序列化的,在低的版本中,hessian序列化,对Java8中的LocalDateTime这种类型序列化是存在bug的,序列化失败,从而在dubbo内部会抛出异常 rpcException,关键字信息 failed to send message,
----- 解决办法:
1:将dubbo版本升级到2.5.6或者更高可以解决
2:在序列化的时候指定自己的序列化方式----重写序列化的实现,HessianConfig.
71 Java8中Date和LocalDate互相转化
Date 转localDate
Date date = new Date();
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
// atZone()方法返回在指定时区从此Instant生成的ZonedDateTime。
LocalDate localDate = instant.atZone(zoneId).toLocalDate();
localDate 转Date
ZoneId zoneId = ZoneId.systemDefault();
LocalDate localDate = LocalDate.now();
ZonedDateTime zdt = localDate.atStartOfDay(zoneId);
Date date = Date.from(zdt.toInstant());
72 mysql doubelwrite
mysql在内存中维护了一个2mb的doublewrite buffer,刷新脏页的时候,并不是直接写入磁盘,而是通过memcpy函数先写doubelwrite buffer中,然后通过buffer分两次依次写到到共享表空间的128个页,一次1mb,最后马上通过fsync函数写到磁盘中。
73 iops
io每秒处理量
74 like索引不失效的情况
like 'name%' 只加后%会用到索引的
75 js正则
正数
/^(?!(0[0-9]{0,}$))[0-9]{1,}[.]{0,}[0-9]{0,}$/
匹配非数字和非.
/[^\d\.]/g
76 java读写文件
77 mysql字符串转整型输出
convert(字段名unsigned integer)
78 sql分数排名
select e.*,CONVERT(c.xh, UNSIGNED INTEGER) as Rank from (select Score from Scores d order by Score desc) e left join
(select @i:=@i+1 as xh,a.* from (select Score from Scores group by Score order by Score desc) a,(select @i:=0) b ) c
on c.Score=e.Score
select e.*,CONVERT(c.xh, UNSIGNED INTEGER) as Rank --@i取出来会是带小数的形式,不知道为什么,就先转换成整型
from
(select Score from Scores d order by Score desc) e --先根据分数排好序
left join --然后再左连接表排名
(select @i:=@i+1 as xh,a.* from --@i排序,i=i+1,从1开始
(select Score from Scores group by Score order by Score desc) a, --先group by 分数,去除相同分数按照分数排名
(select @i:=0) b ) c
on c.Score=e.Score
79 笛卡尔积
80 sql左连接 右连接 外连接 内连接
81 SQL中左连接on and条件和where条件执行先后顺序
82 String对象
String x=new String("");
if (x != null && x != "") {
System.out.println(111);
}
83 linux view 命令高亮关键字
:match Search /关键字/
84 linux view 跳到文件开头和文件结尾
shift+g文件结尾
gg文件开头
85 mysql连接报错mysql包版本问题,mysql8
[ERROR][2019-07-31 23:15:15,917][com.alibaba.druid.pool.DruidDataSource]create connection SQLException, url: jdbc:mysql://localhost:3306/wuzhi?useunicode=true&characterEncoding=utf8&useSSL=true, errorCode 0, state 08S01
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 96 milliseconds ago. The last packet sent successfully to the server was 92 milliseconds ago.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:988)
at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:164)
at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:4894)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1661)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1228)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:806)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1470)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1533)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2333)
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1514)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:961)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:149)
... 21 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
at sun.security.validator.Validator.validate(Validator.java:260)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1496)
... 29 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)
... 35 more
86 CountDownLatch,ExectorService,ThreadPoolExecutor
87 mysql 查找单一主键 _rowid
88 varchar存储单位
varchar(20) 20个字节=20B
1KB=1024B;1MB=1024KB=1024×1024B。
1B(byte,字节)= 8 bit(见下文);
1KB(Kilobyte,千字节)=1024B= 2^10 B;
1MB(Megabyte,兆字节,百万字节,简称“兆”)=1024KB= 2^20 B;
1GB(Gigabyte,吉字节,十亿字节,又称“千兆”)=1024MB= 2^30 B;
89 mysql repeat 函数
重复拼接REPEAT(str,count)str为需要重复的字符串,count为次数
90 查看mysql表的情况
SHOW TABLE STATUS LIKE '表名’
91 mysql varchar最大存储空间
并不是65535,而是65532,因为有其他额外开销。
Mysql 8.0.11最大是65499编码为latin1的情况下
Varchar最长是对于整行数据varchar类型的字段,即所有varchar类型的长度加起来不能超过最大值。
92 mysql查看版本
select version() from dual;
93 mysql左连接条件放置位置放在on的后面,不是放在where中
select
*
from
t_loan_record a LEFT JOIN t_loan_record_detail b ON a.loan_batch_no = b.loan_batch_no and b.transaction_serial_no!='合计'
而不是
select
*
from
t_loan_record a LEFT JOIN t_loan_record_detail b ON a.loan_batch_no = b.loan_batch_no
where b.transaction_serial_no!='合计'
94 联合索引生效情况
95 查看数据库表除去view
select * from information_schema.Tables where table_type='BASE TABLE' and table_schema=DATABASE();
DATABASE() 当前选择的数据库
96 mysql 分区
97 不断插入表的数据到原来的表,主键自增的情况
insert 表(select 0,字段1,字段2….字段n)
0所在的字段为自增主键的位置
98 java运算符 与(&)、非(~)、或(|)、异或(^)
99 oltp olap
100 聚集索引和非聚集索引
101 排它锁(X锁)和共享锁(S锁)
102 sql like 百分号加在前面索引为什么失效
因为索引是b+树结构,b+树索引是有序的,比如text%会根据text去寻找以text开头的索引
103 >>> 无符号右移 numberOfLeadingZeros 二分
104 java对象转json对象 string,String json转json对象
JSONObject fromObject = JSONObject.fromObject(custoemr);
String string = fromObject.toString();
JSONObject dataObject=JSONObject.parseObject("{"a":"1"}");
105 dubbo接口指定ip访问
<dubbo:reference 标签里加上url="dubbo://127.0.0.1:29014">
106 Caused by: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
日期判断的时候加入了空字符串的比较,去掉就可以了
<if test="paymentFinishTime != null and paymentFailReason != ''">
, payment_finish_time = #{paymentFinishTime}
</if>
107 dubbo接口重试和超时机制
对dubbo熟悉的人对下面的配置一定不会陌生:
<dubbo:reference id="xxxx" interface="xx" check="true" async="false" retries="1" timeout="2000"/>
上面设置需要关注的几个地方:
1.check=true--系统在启动时就会去检查对应的dubbo服务,不存在就报错导致启动失败,所以如果设置为true,就必须确保该服务提供者一定要在该应用启动之前启动,否则就会启动失败
2.async--false,表明该服务是同步调用而不是异步调用
3.retries="1" 重试一次,也就是最多尝试2次,如果失败就抛出异常
4.timeout="2000" 服务超时时间(单位为毫秒),客户端在调用该dubbo服务时会启动超时检测,如果达到2秒就会报超时异常,超时异常后客户端会尝试1次调用,不管失败与否都返回。
108 多个相同类型的bean,Autowired指定类型注入.
@Autowired
@Qualifier("qualifierServiceImpl2")