前言

开篇学习了 SpringBoot Helloworld 程序的编写,上手非常的快。现在来了解 SpringBoot 的自动配置特性以及 Configration 注解。

自动配置特性

上篇日志通过导入 spring-boot-web-starter ,它就会自动配置好 SpringMVC 以及相关的常用的组件,当然也包括我们常见的字符编码问题以及文件上传等等,这些都是默认配置好了的。但是只有在导入相关的 starter 的时候才会去加载相关的配置文件。

我们可以做一个测试,来查看 Spring MVC 相关的是如何自动配置的

>
JavaSpringBoot

初识 SpringBoot

Spring Boot可以轻松创建独立的、基于Spring的生产级应用程序,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

SpringBoot 不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。

>
JavaSpringBoot

直接给出结果,不行!!!

Access deined: You do not have permission push to this repository
fatal: Cou1d not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

起因

今天上午和舍友进行 git 的多人合作测试的时候,基本的项目配置以及用户名和邮箱都已经配置好,最后再次进行代码提交测试的时候提示权限不足的问题。

嗯?

尝试了很多次依然不行!

Git

起因

今天给“关于我”栏目添加 Aplayer 音乐播放器时,在做好基本的配置之后,开始做好试运行时。爆出了以下的错误。

估计是在安装 APlayer 安装错了,因为我用的是 cnpm 进行安装的。也有可能是 Hexo 生成的的过程中抽风了。

这个错误一直在控制台疯狂的输出。看似可怕,其实爆出的错误也就这一句。

Error: EMFILE, too many open files

官网的解释如是说:

虽然 Node.js 有非阻塞 I/O,同步 I/O 的数量仍被系统所限制,在产生大量静态档案的时候,您可能会碰到EMFILE 错误,您可试着提高同步 I/O 的限制来解决此问题

然后官网给出了一个命令

$ ulimit -n 10000

原本以为这就可以轻轻松松的解决,然而并没有。😱😱

HexoEMFILE

开幕雷击,你肯定见过这个或者类似填表格的场景。

没错,学校或者公司内部有时候需要安排填写一些信息,然后这些信息通过上传 excel 的方式将其导入到系统中。在此之前只知道通过 csv 文件来导入相关的信息。那 java 是如何读取或写入 excel 的呢?直接通过文件流去硬读肯定读到的是一堆乱码,所以我们用这个 “Apache POI” 来读和写我们的 excel。

同时 Apache POI 的使用也非常简单。

特别想吐槽把 python 吹上天的那些广告和培训机构,我依然还记得在 python 刚刚被吹上天的那个时期,说 python 什么都能干,其中不乏有 python 操作 excel。

以前一直认为只有 python 才可以操作表格,今天学完之后,java 也是可以操作 excel 表格的。

其实场景还是非常之多的,比如将期末考试的成绩进行导出到 excel ,这个操作其实也是非常之常见的咯。

怎么样,阿尔敏美不美😉😉

JavaexcelPOI

对于中间件还是比较好理解的,两者之间无法“沟通”,需要介入第三者,间接的使其沟通。不过在生活中有的时候还是不要介入奇奇怪怪的第三者比较好。

什么是中间件

举个很常见的例子,外交部发言人(简称发言人)要和外国的记者进行交流。外国记者需要提问,发言人需要回答他的问题。可是直接听取外国记者的问题似乎有些麻烦,那你知道是如何解决的呢?

没错,就是同声传译了。也就是说有一个翻译,那些外国人听到的都是那个翻译说的话,而不是直接听发言人说的话。

所以,上面的例子所提到的“同声传译”就叫做中间件。

在计算机领域中,中间件有以下的说法

中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。

人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必须要有一个通信中间件,即中间件 = 平台 + 通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。

中间件的概念似乎很难说清楚,确通过简单的例子就能够较好的理解。按照上面例子,好像能够对应的上的样子耶。

>
分布式中间件

起因

由于自己的电脑上有多个 SSH 的公钥和私钥,github 有一个 SSH key,自己的小站提交时也有一个 SSH key,然后今天想弄一个 gitee 的 SSH key,所以今天上午和下午放学之后一直都在折腾这件事情。今天在手机上操作自己的电脑,弄了一上午操作失败。

在学习如何管理自己的 key 时,同时也学到了 git 的相关命令,git 用起来真的挺好。

本来以为今天上午就能搞定,结果是下午放学之后才搞定的。挺想分享这段经过。

GitSecure Shell

⚠️⚠️本日志已被作者用于“厦门理工学院软件工程学院”《J2EE架构与程序设计》课程激励计划,其他同学请勿在任何的方式进行利用本篇日志。

写在前面

这些天在学习 AOP,也就是面向切面编程。在理解之前,对于 AOP 的相关概念有点感觉,但是使用方式不是很了解。在参考那几篇博客,也仅仅只是对 AOP 的各项通知进行了打印输出,并没有写出真正的场景。也许是写不出一个很好的例子吧。之前在学习 spring 的时候很痛恨 AOP 。

昨天下午再对 AOP 进行了一个复习,然后自己编写了一个切面来对中午学习的知识进行了一个巩固。在写完之后,对面向切面编程有一个新的认识,仿佛自己来到了一个新的世界一样。希望随着后面的学习,对 AOP 也越来越深入。今天总算是写完了。

话不多说,先对 AOP 的相关概念进行一个回顾吧。

对啦,话说什么样的汉堡比较好吃呢??🥰🥰🥰

img

图片来源于网络

>
JavaspringAOP

今天下午打算把 webui 那节课老师给的登录界面给做出来,后续在 j2ee 期末项目时候就直接用这个作为登录和注册的界面。省的再去找登录和注册的素材。

提供的东西

最终实现的效果预览图如下

一个 html 文件,内容如下

HTMLCSSwebui

这学期的期末项目将使用本学期所学技术,即使用 Spring + SpringMVC + MyBatis 的在线考试系统。

所需技术

本次期末项目采用以下技术,其中又分为前端部分和后端部分

后端部分

  1. Spring + SpringMVC + MyBatis
  2. Apache POI(处理word,excel)
  3. pageHelper(处理分页)
  4. JUnit(用于单元测试)
GitUMLssm