发表于: 2017-11-04 22:47:09

1 831


一.今日完成

1.参考师兄日报和任务代码,完成任务7代码,以下是项目结构:

其中,把第三方API作为工具类,使用基于XML配置方式把它们装配到Spring IoC容器,来自动完成类的初始化和依赖注入工作.这里采用属性注入方式.并且创建一个独立的配置文件,避免整合进核心业务层Spring 容器配置文件后带来的后者结构臃肿,修改繁琐的弊端.同时在web.xml中,需要通过contextConfigLocation参数指定第三方AIP配置文件路径,保证可以该模块被添加到业务层的Spring 容器中.


2.在部署运行本项目时候,采用在pom.xml文件中配置jetty插件方式,其中遇到一个有意思的问题,下面是jetty的版本发布情况:

本项目实际配置:

<!-- jetty插件 -->
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.7.v20170914</version>
<configuration>
<scanIntervalSeconds>3</scanIntervalSeconds>
<webApp>
<contextPath>/</contextPath>
</webApp>
<httpConnector>
<port>8080</port>
</httpConnector>
</configuration>
</plugin>

maven工具栏生成的图标式功能选项:

起初,参考了陈雄华的博客(https://my.oschina.net/stamen/blog/495479)来配置jetty:

<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.5</version>
<configuration>
<!-- 解决jetty会锁定WEB项目下的文件,不让人更改的弊端 -->
   <webDefaultXml>src/main/resources/jetty/webdefault.xml</webDefaultXml>
<webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>
<scanIntervalSeconds>3</scanIntervalSeconds>
<contextPath>/</contextPath>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8080</port>
</connector>
</connectors>
</configuration>
</plugin>

显而易见,后一种配置方式和实际部署起来功能比前者差许多,属于被淘汰的技术了.


3.了解学习Base64算法原理以及编码解码

(1) Base64编码,是一种基于用64个可打印字符来表示二进制数据的表示方法。它通常用作存储、传输一些二进制数据编码方法,也是MIME中一种可打印字符表示二进制数据的常见编码方法.它只是定义用可打印字符传输内容一种方法,并不会产生新的字符集.

具体来说,转换方式可以分为四步:

i将每三个字节作为一组,一共是24个二进制位。

ii.将这24个二进制位分为四组,每个组有6个二进制位。

iii.在每组前面加两个00,扩展成32个二进制位,即四个字节。

vi.根据下表,得到扩展后的每个字节的对应符号,这就是Base64的编码值。


(2) 转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6个bit,按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/中的字符作为编码后的输出。不断进行,直到全部输入数据转换完成。

如果最后剩下两个输入数据,在编码结果后加1个“=”;如果最后剩下一个输入数据,编码结果后加2个“=”;如果没有剩下任何数据,就什么都不加,保证资料还原的正确性。

 编码后的数据比原始数据略长,为原来的4/3。无论什么样的字符都会全部被编码,因此不像Quoted-printable 编码,还保留部分可打印字符。所以,它的可读性不如Quoted-printable编码!

(3) M的Ascii码是77,前六位对应值为19,对应base64字符是T,如此类推。其它字符编码就可以自动转换得到.


二.明日计划

1.完整梳理Spring MVC相关知识点,掌握其处理流程和各个模块如何配置使用;

2.开始任务8,首先学习了解RMI相关知识.


三.遇到问题

暂无.


四.收获

以上.


返回列表 返回列表
评论

    分享到