日记整理---->2016-11-21
2016-11-21简单的总结一下学到的知识点。作为一个目标而存在的东西,总是那么美丽而优雅。
一、PE中事务的编写
getTransactionTemplate().execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus arg0) {
getSqlMap().update("mt.updateSystemLimit",context.getDataMap());// 更新个人限额表
getSqlMap().update("mt.updateSystemLimitEnt",context.getDataMap());// 更新企业限额表
if(!"".equals(MinGuaranteeLimit)&&MinGuaranteeLimit!=null&&!"".equals(EarlyWarningLimit)&&EarlyWarningLimit!=null){
getSqlMap().update("mt.updateSystemLimitEnt",map2);// 更新企业垫资限额和保底限额
}
return null;
}
}
二、日志的控制级别
error>warn>info>debug。
在spring中,若要打印框架内部的日志。需要将jcl的日志框架改成slf能够识别的日志规范。在spring中使用logback,需要以下的jar包。
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback-version}</version>
</dependency> <dependency>
<groupId>org.logback-extensions</groupId>
<artifactId>logback-ext-spring</artifactId>
<version>${logback-spring-version}</version>
</dependency> <!-- 添加这个,可以打印spring内部的日志 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.21</version>
</dependency>
三、Vue中的v-bind:value和v-model
首先v-model只是一种语法糖,以下两种写法是等价的。
<input v-model="something">
<input v-bind:value="something" v-on:input="something = $event.target.value">
以下是一个例子,便于理解:value和v-model的区别。html部分的代码:
<div id="app">
<input :value="username" @input="updateUsername"><br>
<input v-model="username"><br>
<div>{{username}}</div>
</div>
- js的代码如下:
var password = "huhx";
new Vue({
el: "#app",
data: {
username: password,
},
methods: {
updateUsername: function(e) {
password = "name is huhx";
}
}
});
运行的效果如下:password的改变并不影响this.username,也就是输入框的内容。
aaarticlea/gif;base64,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6NQrX/m8ts279yJ9bYAnaEZSAH6EVkOLTo2OXZCRLhEAIfkEAQoAAAAsYgACAAcAEQCiAP8AAAAApsj/////hWMsepzTAAAAAAAAAxcoCir05RFAq7046827/0MYhENgAmaQAAAh+QQBFAAAACwoAAYABQAQAKMA/wAAAAD/13ev//8nAE////8MAAD//6/X//931/9PACcAJ3eTTwAAAAAAAAAAAAAEH7AAEICkdtbFQkCHklQCMVSGR5rrCZQu3M4ZdlU3EAEAIfkEARQAAAAsKwAGAAUAEACjAP8AAAAA/9d3r///JwBP////DAAA//+v1///d9f/TwAnACd3k08AAAAAAAAAAAAABB+wABCApHbWxUJAh5JUAjFUhkea6wmULtzOGXZVNxABACH5BAEUAAAALC0ABgAFABAAowD/AAAAAK/Xd6///ycAT////9f//08AJwAMAHfX/3fXrwAAAAAAAAAAAAAAAAAAAAQeEBQQgKR2VoBCMMqRVAIxbBRpqidQti8rZ9i1aUAEACH5BAEKAAAALDAABgAFABAAowD/AAAAAP/Xd6///ycAT////wwAAP//r9f//3fX/08AJwAnd5NPAAAAAAAAAAAAAAQfsAAQgKR21sVCQIeSVAIxVIZHmusJlC7czhl2VTcQAQAh+QQBCgAAACwzAAYABQAQAKMA/wAAAAD/13ev//8nAE////8MAAD//6/X//931/9PACcAJ3eTTwAAAAAAAAAAAAAEH7AAEICkdtbFQkCHklQCMVSGR5rrCZQu3M4ZdlU3EAEAIfkEAQoAAAAsYQADAAgAFAChAP8AAAAA////epzTAiPEbggr6/xcW6HS8MLM2+kIfJHIgaTXUWnYCZO7YSYYZlaFFQAh+QQBFAAAACxEAAcAJAAmAKEA/wD///8AAAAAAAACR4SPqQvh/ZicKNB7Ld5L8294ICeOWGlSaCqtbPeecTar9eTejZ44ls8LCofEYlGABCAFRKbReTQqpdAm9frERrPcrXCpTPIKACH5BAEUAAAALAYAAgCbAC4AowD/AHmb0v///6mpqaXH/qTG/QAAANPj/mSW6JKivU+v/wAndwAAAAAAAAAAAAAAAAT/EIhJq7046827/2AoSkNpnmiqrmzrvnAsz/Q0AHiu73zv/8CgcEgsGosD23HJbDqf0GBScIs6BdasNjutbo3Yr3g87JKJ4bN6bV4DF+74uC3npev4Jz2Pu/P/SEqAAAqDhmWCgH6HjDp7fIuNjY95kZKHlHiWl4OZdZucf55yoKF5o3GlpnWobqqrca1rr7BsibW4Z7K5vE1TCb3BWwkCBwgByMnKy8zNzs/Q0dLT1NXW1QgHBQHC3VEBBdve403g4lsG5Kbm3Ojqoexf6e+X8e70kvZa8/iM+ln8+hn6ZyWgQEAEoxg8yCchlIUM8Th8AjGinIlOKlp0g7GJxo1qRDoy+QiSjMglJEuKOXkkpcotLI24fJklJs114drd9AbO2LWfQIMKHUo0WjYABwgoXcq0qdOnUKNKnUq1qtWrWK8eABABACH5BAEKAAAALEQAHQAKABEAoQD/AP///wAAAAAAAAIjjGEByyDiHlOuLQottmjltmkeF4KjWKHfdJqp+yUIZT2QXQAAIfkEAQoAAAAsRwAeABAAEwCiAP8A////AAAAhGIrWjgBAAAAAAAAAAAAAzMYChrwMD4nK6S24ic66MKVhdIWkZEJoaLFTqMWl3Nat9XL3LB7LQ2JLgMYECuEI8cDSgAAIfkEARQAAAAsJAAJADYANQCkAP8A////AAAAd9f/TwAn//+vACd3/69P13cn1///T6//AAAnTwAA/9d3J3d3AE9PJwAAe53UhGIrJ3fXWjgBpcf+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfMgAARkQQxkqqZi675wLKsmuqpyruv0eeO7YHASOAAED9+PJWzKCgxFALGwLZ1Y2MGQCNSWpKxYhOB6lddxdtv9gtVZqJRq/cGxgQZE4EDb74CBgoOEhYaHiImKi4yNjo9BATACkDGSL5SVL5cumZotnDWenyMtoqSgpiejiCxMIkUCSKuQske2cgB0rIqXo2wAp46+LmUJwbTDIr9cyAO8icSmUbpV0K3LLnl7fc+P0rCT39mpmONH2uLK6Kib5O3l158RIhLwLhUiFPeunPe3lGTJ+0dQh62C7woOrCVwoaNRDhtB/DfxXkV4ng5atKWxUggAIfkEAQoAAAAsUwAiAAgAEQCiAP8A////AAAApcf+hGIrWjgBe53UAAAAAyMYChoAQrwoX6jP4nwz35oXih0JMmfpGYQIDIWrNpYDRbeQAAAh+QQBCgAAACwsAAkACwA1AKQA/wAAAAB31/9PACf//6/////X////r0/XdycAJ3cAACdPAABPr/8nAAAnd3cAT0//13cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgCAgAsQgjChppmN5okcQPGu7MACivOKRGCpe7heEEV0owi23S0EaAUeNRa1ar9isdostsAIjbwosEqPIALMLrTaxW+5wbBYXKXE6AdoHXI8QR3UAfEFod0x6YU9RgmYjb2NhX1yUlZaXWzJXaFScIjKgkY+in6QAnpyoj56nmjIhACH5BAEKAAAALFQAGwAIABgAogD/AAAAAP///6XH/nud1AAAAAAAAAAAAAMpCLHK8OFJOGWsCmd8axfgE0pCR5oiCpQYW7nQtXyaUGuENtztBNo/QAIAIfkEAQoAAAAsVQAUAAcAFwChAP8A////AAAAhGIrAiGUYQKr6+1QXGOCOmHYYgcLhuIoJkHifJMasanlLqwHeAUAIfkEARQAAAAsVAANAAgAFwCiAP8A////AAAAhGIrepzTAAAAAAAAAAAAAykoCirwDEonH613VltDeN5niRMJCeYzENu6oS/ZWBmQgpud3/pmhjZPAgAh+QQBFAAAACwGAAIAmwAuAKMA/wCpqan///95m9KmyP+kxv0AAADT4/5kluhWVlYAAAAAAAAAAAAAAAAAAAAAAAAE/xAcQqu9OOvNu/9gKIaHhAxoqq5s675wLM90bdfIUQxA7//AoHBILBqPyKRyqRwUdsyodEqtWo1O6DVq2Hq/YECWF0Z2y+g0cqwuntvwODsefNPv4Tm+Z9/7q3p7fX+ETIF4g4WKR4d3iYuQQo10j5GWPZNxlZeRmXCbnIuebaChhaNqpaZ/qGmqq3utaK+wd7JltLVyT2S6vm23v8JRTgcIw8hgOQIBzc7P0NHS09TV1tfNCdjb3N3bAszJ4lcB4AHj6FPl4X8C6Xvr5+3vePGE7vR09vP5cft++Pq1+bcnoMA0BPEYPFgm4Z2FDME4pAMxopeJcSpaJGfu3saGHT35ffyCEY7GkepCAkRJUmVBlhddKoS5pSTNXzZv6ornrafPn0CDCr3mDpzRo0iTKl3KtKnTp1CjSp1K1V0EACH5BAEUAAAALDIABgAGABAAowD/AAAAAP/Xd////6///ycAT///rycAANf//3fX/3e1d08AJ69PAAAAAAAAAAAAAAQiEAwAAp31UitZCAhgLAknFISlHJ+Juil1xsAM31ombbkVAQAh+QQBFAAAACw2AAYABQAQAKMA/wAAAAD/13ev//8nAE////8MAAD//6/X//931/9PACcAJ3eTTwAAAAAAAAAAAAAEH7AAEICkdtbFQkCHklQCMVSGR5rrCZQu3M4ZdlU3EAEAIfkEAQoAAAAsOQAGACIAGACjAP8AAAAA/////9d3r///JwBP//+vDAAA1///ACd3TwAnd9f/k08AAAAAAAAAAAAABFFQABCmvThrK+n+IDdVYZklTBAgZjsZykK65lAQMx0eaq5/NtwPIygCioKg79cT9JTDEDQKvC2plik207luu1sNOEwum8/otHq9QQaQ5h5FFQEAIfkEAQoAAAAsTgAOAA0AHQCiAP8AAAAA////qampe53UAAAAAAAAAAAAAzkIutLQYkkVp61W4ky59gzYiRtXZoQIDCoWvMAbjNL8TTb0OIoN+h4gR5ghWow4FbKmbIqWshhskgAAIfkEAQoAAAAsTQAbAAgAEgChAP8A////AAAAAAAAAiBEbggbCwJXdKI5aW+9mL9MgR23keLnlRqoHJmgRRBcAAAh+QQBFAAAACwGAAIAmwAuAKMA/wB5m9L///+pqamlx/6kxv0AAADT4/5kluiSor1Pr/8AJ3cAAAAAAAAAAAAAAAAE/xCISau9OOvNu/9gKEpDaZ5oqq5s675wLM/0NAB4ru987//AoHBILBqLA9txyWw6n9BgUnCLWnGCq3Z7nFa5zix4TNZ5y0wxeq09s4uLtxzqngfV9jyxru/h+4A9fIE5CoSHO4OHf4iBioSMjX2PgZGSeZSAlpdzmX2bnG+eeqCha6N5paZlqHaqq2Otc6+wXLK1uE+3ubxdEwm9wVsJAgcIAcjJysvMzc7P0NHS09TV1tUIBwUBwt1RAQXb3uNN4OJ6BuR25tzo6nPsfenvb/Hu9Gz2efP4aPp2/PqR+TcnoEAwBOUYPLgl4ZuFDK84ZAMx4rdw7fZZRIhR3kYuE0HXVPxYruM9klZCohmJ8ojKMixbFnkpsxbNmqvAGbvGs6fPn0CDRssG4ACBo0iTKl3KtKnTp1CjSp1KtSrVAwAiAAAh+QQBCgAAACw5AB0AGwAQAKEA/wD///8AAAAAAAACNpRhAsvNAQEMTLmLqbO4L91wXnaJowNWZ5cu5vqV8NUiMyrfT65LvF57wYK92Kbocx0Sw8ikAAAh+QQBCgAAACwsABwAFAARAKMA/wAzj///+P/McADMwP/f//8AAACMj/8z1f/f1f9zHAANHADy//+M4/8zwP8AEgAEXDDIGQS4ON8wOh8aIIziSA2SFYrYWRBqGLvwym7T8MbajIyPnW1WSAQUgtoq9jtwhEtMQ+DUKWWY5vPaaxWPSV5m5mAIFlAsToKqDFu51HvNkUcxhjwgb+iRRgIRACH5BAEUAAAALB4AGQAWABQApAD/ADOP///4/8zA/9///8xwAIzj/4VjLIyP//Lj/zPV/9/V///t//L//wAAALLt/8z4/zPA/yASAAASACAAAHNwALKP/zMqAE0SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWP4CEC4gGcaKqizuq+7SsHdEHfePDedo4DN2BAwPP9ULpT0UgYpJLCQM/XfCJrxkAViTIIBoVIIxFQCASM7YmBfDAKD7J2EfA6u1eIRIAo82lqQFcKAHR1f1p3SlcEFw0Wfn2JVkoQCQVefQR0dikGKBgOFVIUEwFiAgmBCVdZR4tKrq+CsbI0lDIuZwIAuyEAIfkEAQoAAAAsHgAZADAAEgCjAP8AAAAAM4//epzT//j/3////+3/3+3/jI//su3/zNX/AAAAAAAAAAAAAAAAAAAABE9wSCAHuDjrzXsnXiiOGkieXqACaoAJaJxusGxnrlbfd57tPJnvFezRirbhBYgkKQHMpuh5kKKeJuvoqdA6j94pJkFAQAuGcOepFre3q1YEACH5BAEKAAAALEcAGwA0ABYAogD/AP///wAAAIRiK1o4AQAAAAAAAAAAAANQGAoa8DDKSauF7urNY+5g6Ilk+JWodabs2IpCDMQC9qK1tN5d7vIhnw0YnOyIF+HjiKwoGc2eMcrxNRgLqlNLenI13q8lLKYMyh0COimjJQAAIfkEASgAAAAsdAAhACwAEACiAP8A////AAAAhGIrpcf+WjgBe53UAAAAA0YYChrwMMpJn7jgDuiq/5UwdWAJihJprhMaqWycjXI9p7bscnm8P7De58cQrohBIwWpLDGbw4kB+tlICFRPgbNoZC2YiyABACH5BAEKAAAALB4ACQAgADUAoQD/AP///wAAAAAAAAKlhI8QixvqIkvJNYmptgdn+FiZRz7QKUpg2UXgypScwaWuPMHviNOxypP5Qr8bbqZJKpfMpvMJjUqn1Kr1is0mBUcSk9v9KMFh15Jczm3T5jEbqRHAJqrXuTf6vtXxYli/B8iSd+cVJMiGmKZYpuX4CBkpOUlZWcV3cmVSgbXZsJTSMlOnZLLpafrJpIZKowra2uEquxo7a5uUOpt56klRJMr7o1EAACH5BAEKAAAALBcACQAIADUAoQD/AP///wAAAAAAAAJIjIFokXq9lmOyHkuvzhzIBobiSJbmKYRBCq6q8Cgwk6yxN1ezt+yR39vYOEOegQVB1pSKk/MJLd1qIlrLWLPSrJ4mtfvldowFACH5BAEUAAAALA8ADAAJADIAoQD/AP///wAAAAAAAAJFRG6YsdDHnoJNxkWd3rz7D4biyAkdY3LoCaTbqrasgEBoTdGM3eKIjuntcrbc7BgjKZfMplN1URhemsvUYY1SsdUsDlAAACH5BAEyAAAALAcACQAKADUAoQD/AP///wAAAAAAAAJQBIKmhrHaHmsJpjgdPrdy7UWb6EnmiabqyraC5ADvE89LXeIxYwh5T9EAQRUfUfdBUoZJ5lIG60WhtJb1is2WqqdddDOB3MbiMs98IH8yhgIAIfkEABQAqwAsCQAcAAEAEACg////AAAAAgSEjwkFACH5BAEUAAAALAcACQAKADUAogD/AAAAAP/Xd6///ycATycAACd31wAAAANNCCA0+oo5GButk8q77N2fp4mQUARoYHBs675wLM9A0NosDio62Wc1DOQ3FD6IRyNPGVycUgYcR3qhUqy0rFaWyt2+3vAUPBY3a6muIgEAIfkEAQoAAAAsEAAJAAUANQCiAP8AAAAAr////9d3JwBP////AAAAAAAAAzg4JND+TTEg47Kz0rsn/GAojkUTACVwpqe0mijsdu1SC3dOxyr/9qOg0BE4mYyjIhIIIz6WRmUxAQAh+QQBFAAAACwTAAwADAAyAKMA/wAAAAD/13cnAE+v//////8nd9f/r0931/8nACcnAAB3dycAAE8AAAAAAAAAAAAEa1CMFYIBOAt1DyMZJiQIIIHhaQ6oxq6t+Krp/IZ4ru987//AILCQC4SIOGMGGVJimBknAIqRUgFSCcWCTXEAHkKWBMvaxDXQyaxmscvHYjw5bwrv+Lx+zw9WsH9FTlJVdnRRcoiHhU2BFQERACH5BAEKAAAALBoADAANADIAowD/AAAAAK/////XdycAT////9d3J///rwAAT08AT08AAE+v/yd3dwAAAAAAAAAAAARpcBABJAUY2zpz3pvHUaEHduKhLICBXKIRBEwCi3iu73zv/8Agr4ALiIgiowfpUWaYGScGipECqADrSaDtWLqkCXg0/qZWrZe1IKPZ1sVjfDkX2u/4vH5/n0WtVU05UoBZgnWGdX6DfjMRACH5BAEeAAAALCEADAANADIApAD/AAAAAP///yd319f//69PAAAndwBPr9d3J///r3cnAP//1/+vT//Xd6///ycAT08AAAAAJycAAE8AJ0+v/3fX/09PT3evdwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWBIBJVQCMNQKoCxcGiq7oolkHEKxNQuJpMl4ejN0MhbLgCMgFx9Z7QqHRKrVqvPQEuENPGuCvvCqwSq8gpcwoNUAPYIpJpwBa0Xu/urHarA3Q8eWE/QUNsRQBHBGxKN0wHfl9dW5OSWJeYmZqbnFUBn29sZ2tRoKWiX6ijgltcnwEhACH5BAEUAAAALJkAFAAUAB0ApAD/APj5+0JDTRgYJMjJzAsLGEtMVywsOLKzuPDw8/T09+Hh49bW2CgoNOXl52FibDMzP+jo6s7O0qXH/nud1MLCyXqc0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAICCO4kCQaDoOwqm+wAC0sCrPbr2OtF6SPd2Nl4MNicJUIGhTJZioIykC3b0WgtcwIRJ4vYEwIGyJiRQFxEyNCpBkiQLhAFjQ22/0yVABGNgjbjxyIgQNAAx3gTUGDAAQeDAODQ8SkT6XmIuaJIKcIp6foZyjmhSfIxOiYmGlKiEAIfkEAQoAAAAsKAAUAIkAGACkAP8A+Pn7GBgkyMnMQkNNCwsYS0xXLi466Ojq4eHj1tbYsrO4Q0ROKCg0MzM/8PDzs7S8zs7SYWJswsLJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABckgII5kaZ5oqq5s675AEIjCAN94ru+6PAsEG29ILBpTM5kAEDw6n9DXLLZkCqPYLHQKEEyb2rB4x/V+r+O0GjlaykTgtXxeFr2tI+58j63bk2B6fINHfjFvD02ChIw8hoczCEGLjZU3j4ciCQSUlp4sfj4zBKScn6dSdl4xBRAADAt5qLMrSQFmBQMHAAm7drTAJ6JeuQEGEwAGsTHBzXlvDLkxAw0ACr6dzsFvxgoADr/a4n8yCA0SEeHj68Ls7iXZ787x8tv17yEAIfkEAR4AAAAspQAUAAwAEwCgAP8A////AihMgKl2umBcalE2eOfK0FXEYZpXhdhhnuk5MgwYfegr0zNM3ZKYukgBACH5BAAKAKsALCgAHAABABAAoAAAAAAAAAIEhI8JBQAh+QQBCgAAACwGABgAmwAYAKEA/wCpqan///8AAAACpUSOqcvtD6OctFogrN68+y8JGUCW5omm6sq27gvHchyIwYzn+s73bT3ypQTCovHoAt6QJCLzCfUpoc6o9QqbPqvYrtekZXK/5GsYOS6rmedjeg0Xto3vuF03L9bvfJqN2heYkye0J3iIQuhjiNho8LflKJmi2MM4GVjJc4nJp7nD2Wn3KVqKQ2qa+qIE0ur6CutBJEJba3uLm6u7y9vr+wscLExUAAA7AA==" alt="" />
如果在updateUsername方法中,加上this.username = e.target.value;那么第一个输入框的修改,会影响所有的内容显示。这也就是上述所说的v-model类似
- 如果加上以下的内容:
computed: {
username: function() {
return password + ", name";
}
},
运行的效果如下:修改两个输入框的内容,不改变this.username,而且this.username内容始终为:huhx, name。这说明了在渲染数据的时候,先是data里面的username,然后调用computed里面的username的get方法。
aaarticlea/gif;base64,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" alt="" />
四、关于pe加载文件的部分笔稿
XmlBeanDefinitionReader 这个不一样,这里开始了重写。
XmlBeanDefinitionReader
ApplicationConfigParser这个是解析的类 EntityResolver entityResolver = (EntityResolver)constructor0.newInstance(new Object[] { "pe-config.dtd", "/com/csii/pe/config/"})
tag-definitions.xml定义了pe的核心。
loadTagDefinitions Class parserClass0 = Class.forName("com.csii.pe.config.ApplicationConfigParser");
setParserClass(parserClass0);
Class class0 = Class.forName("com.csii.pe.config.DtdResolver");
Constructor constructor0 = class0.getConstructor(new Class[] {
java.lang.String.class, java.lang.String.class
});
EntityResolver entityResolver = (EntityResolver)constructor0.newInstance(new Object[] {
"pe-config.dtd", "/com/csii/pe/config/"
});
setEntityResolver(entityResolver);
logger.info("using entity resolver:" + entityResolver);
}
五、对于js中装包的理解
首先js的代码如下:
function funTest() {
var outerParam = "huhx";
innner("123456");
function innner(str) {
console.log("hello world " + outerParam + ", " + str);
}
return function() {
innner("linux");
outerParam = "chenhui";
console.log(outerParam);
}
}
- funTest():
hello world huhx, 123456
- funTest()():
hello world huhx, 123456
hello world huhx, linux
chenhui
- var test = new funTest(); test();
hello world huhx, 123456
hello world huhx, linux
chenhui
六、伪元素的基本使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
span:before {
content: "I love you, "
}
span:after {
content: "I hate you.";
color: red;
}
</style>
</head>
<body>
<p><span id="test">周长风</span></p>
<script type="text/javascript">
var ele = document.getElementById("test").innerText; // 周长风
alert(ele);
</script>
</body>
</html>
页面显示效果:
七、toString和String强制转换的区别
Object obj = null;
System.out.println(obj.toString()); // 抛出空指针异常:java.lang.NullPointerException
System.out.println((String)obj); // null
八、 抢火车票程序思路
1、访问12306网站,查询余票。通过console可以得到请求的url以及请求数据。 2、在项目中通过okhttp发送请求,可以得到返回的数据。 3、转换成json对象,对数据进行解析处理。 4、得到你想要的信息,根据要求判断是否发送邮件通知。 5、开启一个定时任务,不断的轮询火车票的状态,重复上述的操作。
一、访问12306网站:在console里面得到url为:参数2017-01-17是出发日,SHH是出发地上海,WHN是目的地武汉,ADULT是单选框选中的普通。
https://kyfw.12306.cn/otn/leftTicket/queryA?leftTicketDTO.train_date=2017-01-17&leftTicketDTO.from_station=SHH&leftTicketDTO.to_station=WHN&purpose_codes=ADULT
对url进行组装:
final String path = url + "queryA?leftTicketDTO.train_date=" + time + "&leftTicketDTO.from_station=" + from + "&leftTicketDTO.to_station=" + to + "&purpose_codes=" + purpose;
返回的数据在12306上显示大概如下:
二、通过okhttp发送的get请求,得到返回的数据:
Runnable runnable = new Runnable() {
@SuppressWarnings("deprecation")
@Override
public void run() {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
List<InputStream> inputStreams = new ArrayList<>();
inputStreams.add(new ByteArrayInputStream(CER_12306.getBytes()));
SSLSocketFactory sslSocketFactory = getSocketFactory(inputStreams);
builder.sslSocketFactory(sslSocketFactory);
OkHttpClient client = builder.build();
Request request = new Request.Builder().url(path).build();
try {
Response response = client.newCall(request).execute();
ResponseBody body = response.body();
String string = body.string(); // 请求返回的数据
// 对返回的数据进行分析处理
getInfoFromResponse(string);
System.out.println("string " + string);
body.close();
} catch (IOException e) {
e.printStackTrace();
}
}
};
三、对返回的数据做解析处理。
private static void getInfoFromResponse(String string) {
boolean isEmailSend = true;
JSONObject jsonObject = JSONObject.parseObject(string);
String httpStatus = jsonObject.getString("httpstatus");
StringBuilder builder = new StringBuilder();
if (StringUtils.isEmpty(httpStatus) || !httpStatus.equals("200")) {
return;
}
@SuppressWarnings("unchecked")
List<Map<String, Map<String, String>>> dataObject = (List<Map<String, Map<String, String>>>) jsonObject.get("data");
System.out.println(dataObject.size());
builder.append(getInfoMessage(dataObject, isEmailSend));
if (isEmailSend) {
SendMailUtils.sendMail(emailTo, "<span>" + builder.toString() + "</span>");
}
}
四、针对解析处理的结果,看是否要发送邮件通知。
public static void sendMail(String to, String message) {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.qq.com");
props.put("mail.smtp.port", 465); // 这个需要
props.put("mail.smtp.auth", "true");
props.put("mail.from", EMAIL_SEND_FROM);
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
Session session = Session.getInstance(props, auth);
MimeMessage msg = new MimeMessage(session);
Address address;
try {
address = new InternetAddress(EMAIL_SEND_FROM);
msg.setFrom(address);
msg.setRecipients(Message.RecipientType.TO, to);
msg.setSubject("胡红翔");
msg.setSentDate(new Date());
String html = "<html><body>" + message + "</body></html>";
msg.setText(html, "utf-8", "html");
Transport.send(msg);
} catch (Exception e) {
e.printStackTrace();
}
}
五、开启定时任务
// 定时任务
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.scheduleAtFixedRate(runnable, 0, watiTime, TimeUnit.MINUTES);
六、接收的邮件通知如下:不够人性化,但是数据都有,后续处理好说。
七、过程中遇到的问题
1、使用okhttp发送https请求时,会涉及到证书的知识。这方面不是很了解 2、线程中关于是否发送邮箱的变量isEmailSend有些不好把握,关于线程方面有待提高。
八、过程中学到的知识:
1、okhttp发送https请求,了解了一些关于证书的知识 2、定时任务的另外一种写法。
友情链接
日记整理---->2016-11-21的更多相关文章
- 2017/11/21 Leetcode 日记
2017/11/21 Leetcode 日记 496. Next Greater Element I You are given two arrays (without duplicates) num ...
- 【读书笔记】2016.11.19 北航 《GDG 谷歌开发者大会》整理
2016.11.19 周六,我们在 北航参加了<GDG 谷歌开发者大会>,在web专场,聆听了谷歌公司的与会专家的技术分享. 中午免费的午餐,下午精美的下午茶,还有精湛的技术,都是我们队谷 ...
- U3D笔记11:47 2016/11/30-15:15 2016/12/19
11:47 2016/11/30Before you can load a level you have to add it to the list of levels used in the gam ...
- 【转载】webstorm11(注册,激活,破解,码,一起支持正版,最新可用)(2016.11.16更新)
很多人都发现 http://idea.lanyus.com/ 不能激活了 很多帖子说的 http://15.idea.lanyus.com/ 之类都用不了了 最近封的厉害仅作测试 选择 License ...
- 微信iphone7、 ios10播放视频解决方案 2016.11.10
2016.11.10日更新以下方法 微信最新出同层播放规范 即使是官方的也无法解决所有android手机的问题. 另外iphone 5 .5s 某些手机始终会弹出播放,请继续采用 “以下是老的解决办法 ...
- FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM
FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM T.. = Timeline support 支持时间轴 .S. = Slice t ...
- ”耐撕“团队 2016.3.21 站立会议3 2 1 GO!
”耐撕“团队 2016.3.21 站立会议 时间:2016.3.21 ① 17:20-17:45 ②17:55-18:10 总计40分钟 成员: Z 郑蕊 * 组长 (博客:http://www ...
- 打印出1,11,21,31,41。。。。。。的shell脚本
打印出1,11,21,31,41......的shell脚本 方法一:#!/bin/bash ;i<;i=i+));do echo $i #cat -n /etc/services | sed ...
- 最新的 cocoapods 安装与使用(2016.11)
cocoapods简介: cocoapods 是iOS的类库管理工具,可以让开发者很方便集成各种第三方库,而不用去网站上一个个下载,再一个个文件夹的拖进项目中,还得添加相关的系统依赖库.只需要安装好c ...
- China Intelligent Office Summit(2018.11.21)
时间:2018.11.21地点:中关村软件园国际会议中心
随机推荐
- Lua------------------unity关于lua的使用
关于Lua在Unity 中的使用 对于手机游戏,如果可以在线更新以实现bug修复.新功能添加等等,其好处自不必多说. 通过C#的反射机制,也可以实现某种程度上的脚本级更新,具体可以参考 http: ...
- python模块之 - subprocess执行unix/linux命令
subprocess模块提供了一种一致的方法来创建和处理附加进程,与标准库中的其它模块相比,提供了一个更高级的接口,subprocess模块用来生成子进程,并可以通过管道连接它们的输入/输出/错误,以 ...
- R语言igraph 包-构建网络图
igaph 是一个项目,目标是建立一条简单,易用的网络分析工具,有 R, python, C/C++ 等语言的具体实现: 项目主页: http://igraph.org/ 在R语言中,对应的就是 ig ...
- Yii2 session的使用方法(1)
yii2打开session use yii\web\Session; $session = Yii::$app->session; // check if a session is alread ...
- Docker命令之 run
docker run :创建一个新的容器并运行一个命令 语法 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS说明: -a stdin: 指定 ...
- spark 非常好的学习内容
http://homepage.cs.latrobe.edu.au/zhe/ZhenHeSparkRDDAPIExamples.html
- Django系列之form渲染表单后css样式丢失
最通用的form写法 我们经常看各大网站上写这样的form写法 class SYSAdminPhysicalForm(forms.ModelForm): ''' this form for idc's ...
- Android开发学习笔记-显示对话框
private void ShowUpdateDialog() { Log.i("version", "shengji"); AlertDialog.Build ...
- js九九乘法表的应用
<html> <head> <meta charset=utf-8" /> <title>js九九乘法表</title> < ...
- 九个PHP很有用的功能
1. 函数的任意数目的参数 你可能知道PHP允许你定义一个默认参数的函数.但你可能并不知道PHP还允许你定义一个完全任意的参数的函数 下面是一个示例向你展示了默认参数的函数: // 两个默认参数的函数 ...